java基础技术知识点总结——字符串、循环、方法参数
2017-05-06 16:45
561 查看
字符串:
String类是final的,意味着这个类不可继承,并且无法修改一个字符串的字符和大小。进行字符串操作时,例如String s = “hello”; s +=”world”;实际上s指向的字符串常量地址已被修改。
StringBulider和StringBuffer有什么区别:
StringBufferd支持并发操作,线性安全的,适合多线程中使用。
StringBuilder不支持并发操作,线性不安全的,不适合多线程中使用。
线性安全–>速度慢。
速度快–>线性不安全。
循环:
for each循环中,可以用来依次处理数组或者集合中的元素,其中集合表达式必须是实现了Iterable接口的类对象,例如ArrayList。方法参数:
在Java中,一个对象变量并没有实际上包含一个对象,而是保存了引用这个对象的地址值。 因为Java是按值传递,例如: 基本类型: int a = 1; exchange(a); public static void exchange(int b){//将a的值传递给b,此时b为1 b = b * 3;//此时b为3 } System.out.println(a);//但是a的值不受影响,还是为1。 而对象引用: class Person{ String name; double salary; public Person(String name,double salary){ this.name = name; this.salary = salary; } } public static void tripleSalary(Person x){ x.salary = x.salary * 3;//设置3倍薪水 } public static void exchange(Person a,Person b){ Person c = a; a = b; b = c; } public static void main(String[] args){ Person p = new Person("A",5000); tripleSalary(p);//此时A的薪水变成15000。 Person p1 = new Person("p1",2000); Person p2 = new Person("p2",4000); exchange(p1,p2);//方法调用后,p1仍旧是p1,并不会指向p2。 } 因为在tripleSalary(p)这个调用方法中,将p的值传递给了x,此时p的值(也就是引用对象的地址)和x指向了相同的一个地址,而在方法中,x针对salary这个字段进行了重新赋值,p的salary属性也随之进行了修改(因为指向了同一个对象)。 在exchange(p1,p2)调用过程中,将p1的值传递给a,将p2的值传递给b,然后a和b的值进行了互换,但是p1和p2的值却不会有任何改变,因为a和b只是交换了各自引用的对象地址,与p1和p2无关。
相关文章推荐
- java基础技术知识点总结——存储、数组、字段和方法
- java基础技术知识点总结——super、this关键字
- 【Java基础】总结java将字符串反转的7个方法
- java入门一DAY07------java基础 三大技术框架 三元运算 流程控制 方法总结
- java基础技术知识点总结——访问修饰符
- java基础技术知识点总结——基本数据类型、引用、常量
- java基础学习总结四(控制语句<顺序、选择、循环>、方法)
- java基础技术知识点总结——运算符
- java基础技术知识点总结——JDBC
- java基础之字符串常见方法总结
- java基础技术知识点总结——构造器的调用顺序
- 黑马程序员:Java基础总结----(小知识点)foreach循环
- java基础技术知识点总结——容器、迭代器
- java基础技术知识点总结——初始化
- java基础技术知识点总结——static关键字
- Java中常用字符串方法总结
- Java 面向对象(基础) 知识点总结I
- java中方法参数的一些总结(2)
- java判断字符串是否为空的方法总结
- 黑马程序员--Java基础加强--04.代码简化 书写规律III_数组参数【重载】【数组】【可变参数数组】【泛型可变参数数组】【个人总结】