public class Hello{
public static void main(String[] args) {
System.out.println("hello,world~");
}
}
一个源文件中最多只能有一个public类,其他类的个数不限,也可以将main方法写在非public类中,然后指定运行非public类,这样入口方法就是非public的main方法。 使用tab操作,实现缩进默认整体向右边移动,用shift+tab整体向左移 jdk=jre+Java开发工具 jre=jvm+核心类库
Java转义字符
- t:一个制表位,实现对齐的功能 n: 换行符 : 一个 ": 一个” ’: 一个‘ r: 一个回车 System.out.println(“你好r哈哈~”);
- 变量是程序的基本组成单位 基本要素:类型+名称=值 变量相当于内存中一个数据存储空间的表示,你可以把变量看作是一个房间的门牌号,通过门牌号我们可以找到房间,而通过变量名可以访问到变量(值) 变量在同一类型范围内不能重名,可以在同一类型范围内不断变化
| 类型 | 占用内存空间 | 范围 |
|---|---|---|
| byte [字节] | 1字节 | -128~127 |
| short [短整型] | 2字节 | -(2 ^15 ) ~ 2 ^15-1 -32768~32767 |
| int [整形] | 4字节 | -(2 ^31)~2 ^31-1 -2147483648~2147483647 |
| long[长整型] | 8字节 | -2^ 63~2 ^63-1 |
| 单精度float | 4字节 | -3.403E38~3.403E38 |
| 双精度double(常用) | 8字节 | -1.798E308~1.798E308 |
| 布尔类型boolean | 1字节 | true flase 无null |
| short int | -32786~32767 |
- 基本数据类型
-
#### 数值型
整数型类:存放整数(byte[1],short[2],int[4],long[8]) 浮点(小数)类型:(float[4],double[8]) -
#### 字符型(char[2]),存放单个字符 ‘a’
-
#### 布尔型(boolean[1]), 存放true flase
引用数据类型 - #### 类(class)
- #### 接口(interface)
- #### 数组([])
Java的整型常量默认为int型,声明long型常量需后加’l’或’L’ bit:计算机中最小的存储单位。byte:计算机中最基本的存储单元。1 byte=8 bit。 long类型有几个bit? [8*8=64bit] 浮点类型
尾数部分可能丢失,造成精度损失(小数都是近似值)。 Java的浮点型常量默认为double型,声明float型常量需后加’f’或’F’
double num1 = 2.7; //2.7
double num2 = 8.1/3; //接近2.7的一个小数,而不是2.7
if(num1 == num2){
System.out.println("相等")
}
if(Math.abs(num1 - num2)<0.000001){//比较两个数的差值的绝对值
System.out.println("差值非常小,到我的规定精度,认为相等~~~");
}
System.out.println(Arrays.toString(Math.abs(num1 -num2)));
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jTqvZTvf-1646561708965)(D:lwhDateTyporatypora小文件1.jpg)]
字符类型字符类型是用单引号( ‘’ )括起来的单个字符,例如:char c1=‘a’; char c2=‘中’; char c3=‘9’; 在Java中,char的本质是一个整数,在输出时,是unicode码对应的字符。 http.//tool.chinaz.com/Tools/Unicode.aspx char类型是可以进行运算的,相当于一个整数,因为他有对应的Unicode码 可以直接给char赋一个整数,然后输出时,会按照对应的unicode字符输出
char c1=97; System.out.println(c1);//a char c2='a'; System.out.println((int)c2);//97 char c3='韩'; System.out.println((int)c3);//38889 char c4=38889; System.out.println(c4);//韩
字符和码值的对应关系是通过字符编码表决定的(是规定好) 介绍下字符编码表[sublime测试]
- ASCIi (ASCII编码表一个字节表示, 一个128个字符,实际上一个字节可以表示256个字符,只用128个) Unicode (Unicode编码表固定大小的编码使用两个字节来表示字符,字母和汉字统一都是占用两个字节,这样浪费空间) utf-8 (编码表,大小可变的编码字母使用1个字节,汉字使用3个字节) gbk (可以表示汉字,而且范围广, 字母使用1个字节,汉字2个字节) gb2312 (可以表示汉字,gb2312 < gbk) big5码 (繁体中文,台湾,香港)
适于逻辑运算,一般用于程序流程控制:if条件控制语句 while、do-while、for循环控制语句
boolean pass=true;
if (pass){
System.out.println("通过考试");
}else{
System.out.println("未通过考试");
}
基本数据类型转换
自动类型转换
当java程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型,这个就是自动类型转换。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DVrjkIIq-1646561708967)(D:lwhDateTyporatypora小文件2.jpg)]
int num = 'a';//char - >int 97 double d = 80;//int - >double 80.0
有多种类型的数据混合运算时,系统首先将所有数据转换成容量最大的那种数据类型,然后进行计算
int n1 = 10; //ok
float d1 = n1 + 1.1; //错误,n1 + 1.1 => 结果类型是double
double d1 = n1 + 1.1; //对
float d1 = n1 + 1.1F; //对 ,n1 + 1.1F => 结果类型是float
当我们把精度(容量)大 的数据类型赋值给精度(容量)小的数据类型时,就会报错,反之就会进行自动类型转换int n2 = 1.1; //错误,double => int (byte,short) 和char之间不会相互自动转换 当把具体数赋给 byte 时。先判断该数是否在 byte 范围内,如果是就可以 byte short char 它们三者可以计算,在计算时首先转换为int 类型
byte b1 = 10; // 对,-128~127int n2 = 1; // n2 是intbyte = n2; //错误,如果是变量赋值,判断类型char c1 = b1; //错,byte不能自动转换为char byte short char 它们三者可以计算,在计算时首先转换为int 类型 , boolean不参与转换
byte b2 = 1; byte b3 = 2; short s1 = 1;short s2 = b2+ s1; // 错,b2 +s1 => intint s2 = b2+s1; //错,b2 +s1 => intbyte b4 = b2+b3; //错 b2+b3 => int 强制类型转换
自动转换类型的逆过程,将容量大的数据类型转换为容量小的数据类型,使用时要加上强制转换符(),但可能造成精度损失或溢出,格外要注意
int n1 = (int)1.9;
System.out.println("n1=" + n1);//造成精度损失
int n2 = 2000;
byte b1 = (byte)n2;
System.out.println("b1="+ b1);//造成数据溢出
基本数据类型和String类型的转换
基本数据类型 => String 将基本类型的值+" "即可
int a=1; String b= a + "";String => 基本数据类型 通过基本类型的包装类调用parseXX的方法即可 字符串 => 字符char 含义是指 把字符串的第一个字符得到解读 s.charAt(0) 得到s字符串的第一个字符
String s="123"; int num1 = Integer.parseInt(s); double num2 = Double.parseDouble(s); System.out.println(s.charAt(0)); char c1='n';//换行 char c2='t';//制表符 ctrl+d char c3='r';//回车 char c4='\';//输出 char c5='1';//换行 char c6='2';//换行 char c7='3';//换行
;
System.out.println(s.charAt(0)); char c1='n';//换行 char c2='t';//制表符 ctrl+d char c3='r';//回车 char c4='\';//输出 char c5='1';//换行 char c6='2';//换行 char c7='3';//换行 ```



