第三章:
8种基本数据类型:long,int,short,byte;float,double;char(String不是基本数据类型)
长整型数值后缀L或者l。在java中,所有的数值类型所占据的字节数与平台无关。
Java没有任何无符号数(unsigned)形式的int,long,short,byte类型。
下面是整形数值类型的取值范围和占用字节数:
类型 | 存储需求 | 取值范围 |
int | 4字节 | -2_147_483_648~2_147_483_647 |
short | 2字节 | -32_768~32_767 |
byte | 1字节 | -128~127 |
long | 8字节 | -9_223_372_036_854_775_808~9_223_372_036_854_775_807 |
float类型的数值有一个后缀F或者f,很少情况下使用float。
下面是浮点数据类型所占用的字节数和取值范围:
类型 | 存储需求 | 取值范围 |
float | 4字节 | 大约+-3.402_823_47E+38F(有效位数为6~7位) |
double | 8字节 | 大约+-1.797_693_134_862_315_70E+308(有效位数为15位) |
编码方式:Unicode编码。
码点:指一个编码表中的某个字符对应的代码值。(后面会提到)
中间很多介绍略去。
String:
子串:stringName.substring(),返回一个新的字符串
拼接:String.join(拼接之间的东西,待拼接的字符串……)、
重复:stringName.repeat(int times);
关于字符串池的理解:读这个文章(第一篇文章)
java字符串为什么时不可变的:读这个文章(第二篇文章)
使用equals方法检测两个字符串是否相等。
空串,null串的区别。
StringBuilder,StringBuffer:读这篇文章(第三篇文章)
总而言之就是StringBuilder的性能高于StringBuffer,但是StringBuilder并没有对方法加同步锁,因此是非线程安全;StringBuffer虽然性能较低,但是是线程安全的。两个类的API一样。
读取输入:
Scanner in = new Scanner(System.in);
文件的输入输出:
Scanner in = new Scanner(Path.of("myfile.txt"),StandardCharsets.UTF_8);
PrintWriter out = new PrintWriter("myfile.txt",StandardCharsets.UTF_8);
大数:
可以查阅相关的API。
java程序设计语言总是采用按值调用。(书本P121)
调用构造器的具体处理步骤:
1.如果构造器的第一行调用了另一个构造器,则基于所提供的参数执行第二个构造器;
2.否则:
a)所有的数据字段初始化为默认值;
b)按照在类声明中出现的顺序,执行所有的字段初始化方法和初始化块。
3.执行构造器主题代码。
import与c++中#include 的区别:
两者并没有什么共同之处。 在c++中,必须使用#include来加载外部特性的声明,这是因为,除了正在编译的文件以及在头文件中明确包含的文件,c++编译器无法查看任何其他文件的内部。 java编译器则不同,可以查看其他文件的内部,只要告诉它去哪里查看即可。
后续内容会使用markDown来写。
原文:https://www.cnblogs.com/godwang/p/14640190.html