1.标识符
概念: 在程序中给类,方法,变量取的名称叫做标识符
规范: 字母,数字,下划线,$符号
注意: 不能以数字开头,也不能是关键字,严格区分大小写(一般定义常量就是大写)
软性建议:
1)类名:每个单词首字母大写(大驼峰)
2)方法名:首字母小写,后面每个单词首字母大写(小驼峰)
3)变量名:与方法名规则相同
2.数据类型
和c语言不一样的是,字节类型是1byte,而char类型是2byte
长整型:long
为了区分long和int,在long类型的数据后面加上大写的L
一个汉字字符是两个字节 c语言使用的是阿斯克只支持英文字符,但Java使用的是Unicode编码是两个字节能支持汉字
so ,在c里面 char为1字节
在Java里面 char为2字节
3.类型转换
1) 不同的数字类型的变量之间赋值,表示范围更小的类型能隐式转换成范围较大的类型.
2) 如果需要把范围大的类型赋值给范围小的,需要强制类型转换,但可能精度丢失.
3) 将一个字面值常量进行赋值的时候,Java会自动针对数字范围进行检查.
4)强制类型转换不一定能成功,不相干的类型不能互相转换.
4.类型提升
不同类型的数据之间相互运算时,数据类型小的会被提升到数据类型大的.
1) int和long之间
int会被提升为long
2) byte和byte的运算
java">byte a = 10;
byte b = 20;
byte c = (byte)(a + b);
对于short,byte这种比4个字节小的类型.会提升成四个字节的int,再运算
5.Java的字符串类型(c没有的 依靠指针数组)
1. 字符串类型概述
在 Java 中,字符串是一系列字符的序列,Java 提供了 String
、StringBuilder
和 StringBuffer
这三个类来处理字符串。
String
类
String
类是 Java 中最常用的字符串类,它位于 java.lang
包下,所以使用时无需额外导入。String
对象一旦被创建,其值就不能被改变,也就是说 String
是不可变的。
java">public class StringExample {public static void main(String[] args) {// 创建一个 String 对象String str = "Hello";System.out.println(str);}
}
StringBuilder
类
StringBuilder
类位于 java.lang
包下,它表示可变的字符序列。StringBuilder
是非线程安全的,适用于单线程环境下频繁修改字符串的场景,其操作效率比 String
高。
java">public class StringBuilderExample {public static void main(String[] args) {// 创建一个 StringBuilder 对象StringBuilder sb = new StringBuilder("Hello");// 追加字符串sb.append(" World");System.out.println(sb.toString());}
}
StringBuffer
类
StringBuffer
类同样位于 java.lang
包下,它也是可变的字符序列。与 StringBuilder
不同的是,StringBuffer
是线程安全的,适用于多线程环境下频繁修改字符串的场景,但由于线程安全的实现会带来一定的性能开销,所以其操作效率相对 StringBuilder
较低。
java">public class StringBufferExample {public static void main(String[] args) {// 创建一个 StringBuffer 对象StringBuffer sb = new StringBuffer("Hello");// 追加字符串sb.append(" World");System.out.println(sb.toString());}
}
2. String
类的常用方法
1).length()
方法
用于返回字符串的长度。
java">public class StringLengthExample {public static void main(String[] args) {String str = "Hello";int length = str.length();System.out.println("字符串的长度是:" + length);}
}
2).charAt(int index)
方法
用于返回指定索引位置的字符。
java">public class StringCharAtExample {public static void main(String[] args) {String str = "Hello";char ch = str.charAt(1);System.out.println("索引为 1 的字符是:" + ch);}
}
3).substring(int beginIndex, int endIndex)
方法
用于返回从 beginIndex
到 endIndex - 1
的子字符串。
java">public class StringSubstringExample {public static void main(String[] args) {String str = "Hello World";String subStr = str.substring(6, 11);System.out.println("子字符串是:" + subStr);}
}
4).equals(Object anObject)
方法
用于比较两个字符串的内容是否相等。
java">public class StringEqualsExample {public static void main(String[] args) {String str1 = "Hello";String str2 = "Hello";boolean isEqual = str1.equals(str2);System.out.println("两个字符串是否相等:" + isEqual);}
}
3. StringBuilder
和 StringBuffer
类的常用方法
1).append(String str)
方法
用于在字符串末尾追加指定的字符串。
java">public class StringBuilderAppendExample {public static void main(String[] args) {StringBuilder sb = new StringBuilder("Hello");sb.append(" World");System.out.println(sb.toString());}
}
2).delete(int start, int end)
方法
用于删除从 start
到 end - 1
的字符。
java">public class StringBuilderDeleteExample {public static void main(String[] args) {StringBuilder sb = new StringBuilder("Hello World");sb.delete(6, 11);System.out.println(sb.toString());}
}
3).reverse()
方法
用于反转字符串。
java">public class StringBuilderReverseExample {public static void main(String[] args) {StringBuilder sb = new StringBuilder("Hello");sb.reverse();System.out.println(sb.toString());}
}
综上所述,String
适用于字符串不经常变化的场景,StringBuilder
适用于单线程环境下字符串频繁变化的场景,StringBuffer
适用于多线程环境下字符串频繁变化的场景。