梦开始的地方: Hello World
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转义字符
变量
-
变量是程序的基本组成单位 基本要素:类型+名称=值
-
变量相当于内存中一个数据存储空间的表示,你可以把变量看作是一个房间的门牌号,通过门牌号我们可以找到房间,而通过变量名可以访问到变量(值)
-
变量在同一类型范围内不能重名,可以在同一类型范围内不断变化
类型 | 占用内存空间 | 范围 |
---|---|---|
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 |
Java数据类型
整数类型
-
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))); }
字符类型
-
字符类型是用单引号( ‘’ )括起来的单个字符,例如: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);//韩
-
ASCII (ASCII编码表一个字节表示, 一个128个字符,实际上一个字节可以表示256个字符,只用128个)
-
Unicode (Unicode编码表固定大小的编码使用两个字节来表示字符,字母和汉字统一都是占用两个字节,这样浪费空间)
-
utf-8 (编码表,大小可变的编码字母使用1个字节,汉字使用3个字节)
-
gbk (可以表示汉字,而且范围广, 字母使用1个字节,汉字2个字节)
-
gb2312 (可以表示汉字,gb2312 < gbk)
-
big5码 (繁体中文,台湾,香港)
布尔类型
boolean pass=true;
if (pass){
System.out.println("通过考试");
}else{
System.out.println("未通过考试");
}
基本数据类型转换
-
自动类型转换
int num = 'a';//char - >int 97 double d = 80;//int - >double 80.0
-
有多种类型的数据混合运算时,系统首先将所有数据转换成容量最大的那种数据类型,然后进行计算
int n1 = 10
; //okfloat d1 = n1 + 1.1;
//错误,n1 + 1.1 => 结果类型是doubledouble d1 = n1 + 1.1;
//对float d1 = n1 + 1.1F;
//对 ,n1 + 1.1F => 结果类型是float -
当我们把精度(容量)大 的数据类型赋值给精度(容量)小的数据类型时,就会报错,反之就会进行自动类型转换
-
当把具体数赋给 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
-
-
强制类型转换
-
基本数据类型和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';//换行
-