基本数据类型的转换
自动类型转换规则
- 精度小–>精度大
char–>int–>long–>float–>double
byte–>short–>int–>long–>float–>double
比如: int a=‘c’//正确
-
byte,short和char不能自动转换,但是三者可以相互运算,先换为Int类型
比如:
1 2 3 4 5
byte a=126; byte b=1; short c=1; int d=a+c;//正确 byte e=a+b;//错误,只能是int
强制类型转换规则
- 使用时加上强制类型转换符()
- 细节
基本数据类型和String类型的转换
-
基本->String:
加上"“即可,如:
1 2 3 4 5 6 7
int a=100; float b=10.1f; boolean c=true; String s1=a+""; String s2=b+""; String s3=c+""; System.out.println(s1+""+s2+""+s3+"");//10010.1true
需要注意的是,基本数据类型不一定在String中能找到对应,如hello就不能转换为int类型
-
String->基本
调用parse xx方法即可
1 2 3
String s="1234"; int convert_s=Integer.parseInt(s);//1234 //double,float,long,byte,boolean,short等同理
怎样取出字符串的首字符?
char s_first=s.charAt(0);
JAVA中的数组
使用细节
- 数组是多个相同数据类型的组合。
- 数组中可以放基本类型/引用类型,但是不能混用。
- 数组本身属于引用类型,数组型的数据本质上是对象。
赋值机制
-
值传递:对于基本数据类型(如int, float, char等),Java使用值传递。也就是说,当你将一个基本类型的变量作为参数传递给方法时,传递的是该变量的一个副本,方法内部对该副本的修改不会影响原变量。
-
引用传递:对于引用类型(包括数组,对象等),Java使用引用传递。传递的是对象的引用(即对象在内存中的地址),而不是对象本身。这意味着在方法内部对对象的修改会影响到原对象。
-
两者区别:
-
引用重新赋值:虽然传递的是对象的引用,但如果在方法内部将这个引用重新指向另一个对象,那么这种更改不会影响原始引用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
public class Test { public static void main(String[] args) { int[] array = {1, 2, 3}; modifyArray(array); change(array); for (int i : array) { System.out.print(i + " "); // 输出:10 2 3 } } public static void modifyArray(int[] arr) { arr[0] = 10; // 修改数组的第一个元素 } public static void change(int[] arr){ arr = new int []{4,3,2,1}; } } //结果中数组array的第一个元素被改变。 //但是后面没变,因为change方法中new int 的数组只在其作用域内赋值,不会改变main方法的元素
数组在默认情况下是引用传递,赋的值是地址。
如:
|
|