- IDEA创建新的项目Create New Project ——选择空项目empty project——next——new name——加载——左上角file选择new选择module——next——新名字——src右键new选择java class——创建新名字(HelloWorld)
- project structure——project里版本选择当前下载版本(Java 配置环境)*
注释
- 单行注释 //后加注释
- 多行注释 /**/中间加注释
- Java doc文档注释/** */
标识
关键字
- 所有标识符都是以a-z大小写字母, 美元符号$, 下划线_ 开始的(不可以用#%*…)
- 不能以关键字取名
- 大小写分明
- 不使用中文.拼音
数据类型
- 强类型语言 慢但更安全
- 弱类型语言
string:字符串
int数字
分号结尾
Java是一种强类型语言(要求变量的使用要严格符合规定, 所有变量必须先定义后才能使用*)
类型
-
基本类型 primitive type
八大基本数据类型:整数类型
- byte
- int(最常用)
- short
- long(在数字后加L)
小数类型
- float(小数后加F)
- double
字符类型
- char(一个字)
字符串类型
string(string不是关键字, 是一个类)
布尔值
- boolean (只有true和false两个值)
1byte(B)=8bit
1024B=1KB
1024KB=1MB
1024MB=1G
1024G=1TB
- 引用类型 reference type
- 类
- 接口
- 数组
预: String代码与boolean拓展
- String
输入代码String
计算出来答案如下图
- boolean
boolean flag = “true”;
if (flag==true){if flag为真执行的代码}
if(flag){同上}
类型转换
字符串都可以进行加减乘除的运算, 但是都需要转换为同一类型
-
强制类型转换 : (类型)变量名;由高到低
int i = 128;
byte b = (byte)i;
此处int i强制转换为byte i, 但是byte最大值为127, 则输出结果为-128(这种情况叫做内存溢出)
-
自动转换 由低到高
int i = 128;
double b = i;
由低转换为高则不需要写括号.类型, 此处输出结果为128和128.0 -
注意事项
- 两种转换方式不能对boolean进行转换;
- 不能把对象类型(i; b)转换为不相干的类型;
- 从高容量到底容量强制转换的过程中, 可能出现精度问题(double——>int),和内容溢出
下图为精度问题, 所以字母本质都是数字, a为97, 前置转换为int后输出为97+1=98; 输出时int强制转换为char, 则输出内容变为a后面的数字b⬇️
int的最大值为20_0000_0000, 在int强制转换为long之前要先把int的对象类型强制转换为long; 否则会先以int计算在转换为long, 输出就会有精度问题⬇️
- assic表
- JDK8在输入较大的数字时, 可用下划线分割, 切下划线不会被识别输出
变量
- 每个变量都有类型, 类型可以是基本类型(byte, char, int, long, short, double, float, Boolean), 可以是引用类型(String)
- 变量名必须是合法的标识符($, a~z)
- 变量声明是完整的语句加分号结尾
- 书写格式 数据类型 变量名=值
可以用逗号隔开来声明多个同类型变量
-
变量作用域
- 类变量: static
- 实例变量: String, int
在类{}内使用, 方法{}外, 从属于对象 - 局部变量: 在一个方法{}内使用, 必须声明和初始化值
-
变量:属性
- 如果不自行初始化, 基础类型默认值为0, 0.00 (u0000), boolean的默认值为false (实例变量)
- 如果不自行初始化, 除了基础类型, 其他类型(String) 默认值都为null
- main方法
public static void main(String[] args){ 局部变量 } - 其他方法
public void add(){} - 变量为自己
例如demo08, 从属于demo08, 得到一个new demo08就可以定义它的值
常量
特殊的变量, 它的值被设定后, 在程序运行过程中不允许被改变final 常量名=值, final为修饰符, 不存在先后顺序.
static final double pi = 3.14;
final static double pi = 3.14;
变量的命名规范
- 所有变量, 方法, 类名全都见名知意(英文单词)
- 类变量, 方法名和局部变量: 单词驼峰原则, 除了第一个单词外, 后面的单词首字母大写(lastName)
- 常量: 大写字母加下划线(MAX_VALUE)
- 类名: 首字母大写和驼峰原则(GoodMan)
基本运算符
IDEA新建包
-
operator
- % 模运算, 取余(加减乘除是一元运算符)
- ++,— 自增.自减(一元运算符)
int b = a++; 先赋值b=a, 输出b=3, 然后再加一b=4(先用后自增, 增了);
int c = ++a; 先自增后加一, 输出为5, 再赋值给a, a=5(先自增后用);
a就是c运算后赋的值,b++的值为4,但是先赋的值是3(输出就为3了),这时a自增1,变成了4;到c的时候先自增后在加1,最后的结果就是5了,最后又赋值给了a,a最后的结果就是5 - 幂运算 二的三次方
double pow = Math.pow(2,3);
system.out.println(pow);
答案是8.0
-
逻辑运算符
- && 与, 两者全为true才能输出true
- || 或, 两者其中之一为true则输出true
- ! 非, 取反
短路运算
int a=5;
boolean b=(a>7)&&(a++>5);
如果&&前括号里为false的话, 后面括号里的则不会计算
-
位运算符
- << 二进制运算0001变成0010, 1乘2
-
相反除以2
-
扩展赋值运算符
- +=
int a=10;
int b=20;
System.out.println(a+=b);
预算结果为39, a+=b意为a+b; a-=b意为a-b
- +=
-
字符串连接符 “+”
int a=10;
int b=20;
System.out.prinln(“”+a+b); 运算结果为1020
System.out.println(a+b+“”); 运算结果为30 -
条件运算符 ?:三元运算符
X ?Z:Y
意思是如果X为true, 则结果为Z; 相反为Y
包机制
不同文件夹内分别可以出现同样名字的文件
想使用使用包(class)内的内容则 import. package.file.class
package.file.* 星会导入这个包下所有的类
要避免命名重复
进制
-
十进制: D
- 由0~9十位数字组成, 十进一
- 十进制转换为二进制(D——>B), 十进制的数字除以二, 直到不能再除。例如十进制54转换为二进制110110
-
二进制: B
- 由0和1两个数字组成, 计算机的运行
- (十进制转换为二进制0——0, 1——1, 2——10, 3——11, 4——100, 5——101, 6——110, 7——111, 8——1000, 9——1001, 10——1010)
- 二进制转换为十进制(B——>D), 从右向左每个位数上的数字乘2的(从右往左数)第几个数次幂, 所有数的和。例如: 二进制1000为1乘2的三次方+0乘2的二次方+0乘2的一次方+0乘2的零次方。
- 十六进制: H
- 电脑颜色都是由十六进制存储的(#FFFFFF,#ffad2a)
- 二进制转换为十六进制:
0~9,10——A, 11——B, 12——C, 13——D, 14——E, 15——F, 16——10 - 二进制转换为十六进制: 1101111B——>H, 从右往左四个数为一个单位计算, 1111为1乘2的0次方+1乘2的1次方+1乘2的2次方+1乘2的3次方=1+2+4+8=15=F; 110看作0110, 为6, 则1101111B——>6FH
- 十六进制转换为二进制: A1H——>B, 1为0001; A在十进制中为10, 10除以二为5余0, 5除以二为2余1, 2除以二为1余0, A则为1010。A1H转换为10100001B