JAVA温习(2)
来源:互联网 发布:成都软件测试公司 编辑:程序博客网 时间:2024/06/07 18:14
1 ==和equals区别
对于八种基本数据类型的比较,比较的是他们的值。
对于复合数据类型的比较,比较的是他们在内存中的存储地址。JAVA的类对象都是继承自Object,Object定义了equals方法,比较的是对象的存储地址,但在String,Integer,Date类中方法被重写了,不再是比较地址。如果没有被重写,对象的equals方法和==是一样的,都是比较地址,因为原来的equals方法就是根据==实现的。
虚拟机中只有字符串常量是共享的,+和substring等操作产生的字符串是不共享的
即 String x="hello";
x=="hello";这是对的
x.substring(0,3)==hel;不对的
2String,StringBuilder,StringBuffer
创建字符串上速度String<StringBuffer<StringBuilder
StringBuilder线程非安全,StringBuffer线程安全
StringBuilder和StringBuffer比String快是因为他们只有一个对象,公用缓冲区,String每次都需要New一个对象,原来的对象被垃圾回收机制回收了
使用场景
1少量字符串 String
2单线程操作字符串缓冲区下操作大量数据 StringBuilder
3多线程操作字符串缓冲区下操作大量数据 StringBuffer
StringBuilder方法:
StringBuilder builder=new StringBuilder();builder.append("ssa");System.out.println(builder.toString());
3BigInteger,BigDecimal
方法add,subtract,multiply,divide.mod(加减乘除和加减乘除余数)参数BigInteger返回值BigInteger
compareTo(BigInteger i)返回值int相等0小于负数,大于正数
static BigInteger valueof(long x)
BigDecimal除了BigDecimal divide(BigDecimal i,RoundingMode mode)需要多一个参数舍入方式RoundingMode .HALF_UP四舍五入
4方法参数的使用情况
一个方法不能修改一个基本数据类型的参数(即数值和布尔值)
一个方法可以修改一个对象参数的状态。
一个方法不能实现让对象参数引用另一个新的对象
值传递(call by value):在参数传递的过程中,形参和实参是占据两个不同的内存空间,形参的存储内容只是对实参存储内容的一份拷贝。JAVA的对象参数就是这个原理,形参存储的内容只是和形参一样存储的对象的存储地址。
引用传递(call by reference):在参数传递的过程中,形参和实参是同一块存储空间,不分彼此。
- JAVA温习(2)
- Java基础温习 (2)
- JAVA温习课堂2
- Java温习(1)
- Java基础温习(1)
- Java基础温习 (3)
- java温习
- Java温习
- Java温习(基础语法一)
- Java基础温习
- Java基础温习
- java字符集基本概念温习
- JAVA温习课堂1
- JAVA温习课堂3
- JAVA温习课堂4
- JAVA温习课堂5
- JAVA温习课堂6
- JAVA温习课堂7
- JSONModel解析数据成Model
- git ssh key的修改和使用
- RAM、ROM和Flash ROM区别
- 值得推荐的C/C++框架和库
- iOS证书申请和APP上传到apple store
- JAVA温习(2)
- 在easyui的框架中,使用ajax实现批量上传图片到服务器
- Xenu's Link Sleuth 的使用
- 操纵浏览器的历史记录
- 1-介绍
- 文章标题
- Ajax——json
- Android Volley完全解析(三),定制自己的Request 转载:http://blog.csdn.net/guolin_blog/article/details/176127
- android WebView全面总结