java
作者:
w完整z
,
2024-10-05 17:16:48
,
所有人可见
,
阅读 2
java常用api以及注意知识
1:String a = "10"; int b = Integer.parseInt(a);
2:int a = 10; String b = a.toString();
3:double精度问题1可能是0.9999999999 这样除下去结果就可能会变成0,可以在计算前加一个1e-8
4:不可以int[] a; a= {1,2};可以 a = new int[10]; a先赋值在new int[10]会全变成0
5:没有赋初始值的都是0,没有new的默认长度就是0
6:访问字符: String a = "faf"; a.charAt(1)访问某个字符.
7: String a = "fasdf b c";
String[] b = a.split(" ");
System.out.print(Arrays.toString(b));
split进行分割,Arrays是把数组变成字符串
8:String a; a.indexOf("") 里面可以是字符或者字符穿,返回第一次出现的下标
9:a.compareTo("sfij") 大于里面返回正数,小于返回负数
10:a.trim() 去掉字符串前后的空格和回车
11:转换大小写a.toLowerCase() , a.toUpperCase()
12:字符串或者字符替换a.replace("ff","ee") 把所有ff换成ee
也可以用来删除字符或者字符串,将其用空格代替。
13:a.substring(1,3)返回子串 , 注意s是小写
14:a.toCharArray()转换成char数组,可以遍历,String没办法直接遍历
15:char + 整数 , 结果是int类型
16:StringBuilder sb = new StringBuilder("hello")
可变字符串sb.append("")可以直接在后面添加
sb只有setCharAt(索引,'字符')没有replace
想替换字符串只能先sb.delete(2,3);sb.insert(2,"cn");
StringBuilder还有sb.reverse()反转功能
17:a.length() 如果a是char就是a.length没有括号
18: while(sc.hasNext()) 输出多组数据,这个hasNext只要有下一组输入就会一直输入
19:char a = 'z';假设要加一变成a那么 (char)((a-'a' + 1) %26 + 'a')
如果直接(char)(c + 1) % 26 最后c+1是100多就不能%26
20:在java中如果直接相加两个char会转化成两个int类型相加最后的结果要(char)
21:equals里面只能是字符串不可以是字符
22:局部变量和全局变量重名时,优先使用局部变量
private static int x = 3;
private staic int f1()
{
int x = 2;
System.out.println(x);
} 输出的结果是2
23:方法参数是以值传递的形式传递的,也就是说,方法接收的是参数的副本。对于基本类型(如 int、char 等),传递的是值的副本;对于引用类型(如 StringBuilder、String 等),传递的是对象引用的副本,也就是地址。StringBuilder里面append是直接在原地址上进行修改
数组也是引用传递
24:Integer是对象类型,传入的虽然是引用但是也是引用的副本
Integer a , b;
swap(Interger c, Integer d) 实际交换的是c和d的引用
但是传入数组的话也是传引用
swap(int []a) 交换的话就是交换a里面的东西了
25:子类和父类同一个函数会优先调用子类
26:String和StringBuffer相互转换
StringBuffer sb = new StringBuffer().append("某")
String 某 = sb.toString()
27:负数右移最高位会补成符号位 -1是32个1 右移2位最高位还是补两个1还是-1
补码等于反码加一
28:定义一个对象Point a = new Point("cnm");
如果直接输出a默认调用toString函数,需要重写一下,否则调用的就是默认的toString