Java学习笔记一:基础知识
一、常用DOS命令
mkdir 创建文件夹
del 删除文件 支持模糊匹配 *.docx
cd 切换路径 cd …回到上级目录 cd \ 直接回到根目录
cls 清屏
exit退出DOS命令窗
tab键快捷列目录 空格自动补全
dir 查看当前路径下所有文件
ipconfig /all
ping IP地址(104.193.88.123) ping 域名(www.baidu.com)
ping 地址 -t可以一直ping 测试网络是否稳定
二、Java注释
// 单行注释
/*
多行注释
*/
/**
*文档注释
*Javadoc注释
*/
三、public class
public修饰的类有且只能有一个,且必须与源文件同名
public class Main {
}
四、标识符
-
命名规程:只能由数字、字母、下划线、$构成;
不能含有空格,且不能以数字开头;
不能使用关键字;
严格区分大小写。-
类名/接口名:首字母大写有,后面每个单词首字母大写
UserName UserAge方法名/变量名:首字母小写,后面每个单词首字母大写
findName identifyGender常量名:全部大写,单词之间用下划线衔接
USER_AGE USER_NAME
-
五、变量
1、变量三要素:变量类型、变量名、变量值
2、同一个域中,变量不能重复声明,变量名不能重复(不同类型也不可重复)
3、可以一行同时声明多个变量,但只有最后一个变量被赋值
int a, b, c = 100;
//a、b、c被定义为int型,但只有c被赋值为100,a和b未被初始化
4、变量的分类:
局部变量:在方法体中声明的变量;
局部变量只在方法体中有效,方法体执行结束该变量的内存释放。
成员变量:在方法体之外声明的变量
5、变量的作用域
变量的有效范围 —>大括号内
在大括号内声明的变量,在该{ }外无法被访问
不同的作用域中,变量名可以重复
六、数据类型
1、
第一种:基本数据类型
整数型:byte(1字节),short(2),int(4),long(8)
浮点型:float(单精度,4字节),double(双精度,8字节)
布尔型:boolean(1)
字符型:char(2)
-
任意一个浮点型都比整数型空间大
double > float容量 > long容量 > int -
java中任何一个浮点型数据默认当作double类型处理,数据后加F/f是float类型
float a = 10.0F;
float b = (float)3.14; // 强制类型转换,编译通过但可能损失精度
第二种:引用数据类型
字符串型 String
财务软件方面的高精度类型 java.math.BigDecimal
其他
2、取值范围:
byte:【-128,127】
short:【-32768,32767】
int:【-2147483648,2147483647】
char:【0,65535】 采用unicode编码(utf-8 utf-6 utf-32)
3、整数型的4种编写方式
十进制 int a = 10;
八进制 int a = 010; 01开头
十六进制 int a = 0x10; 0x开头
二进制 int a = 0b10; 0b开头
4、整数型的字面量/数据默认被当做int类型处理,若想定义为long类型,在字面量后面添加L/l
一般使用大写L,小写l容易与数字1混淆
5、自动类型转换:小容量直接赋值给大容量
long a = 20; // int赋值给long
强制类型转换:大容量转换成小容量,使用强制类型转换符(int),可能造成损失(直接删除前面的4个字节)
long x = 100L; int y = (int)x;
当整数型字面量没有超出byte取值范围,则这个字面量可以直接赋值给byte类型的变量
byte a = 1; byte b = 127; // byte c = 128 报错:不兼容的类型
short类型同理
当整数赋值给char类型变量时(取值范围内),会自动准换为char字符型,输出一个字符
char x = 97; // —> a 97对应的字符是a
超出取值范围时,需要强制转换,输出一个未知字符
char b = (char)65536 // —> ?
6、byte,short,char混合运算
byte,short,char做混合运算时,各自先转换成int类型再做运算
byte a = 1;
short b = 2;
char c = ‘a’; // a对应97
int x = a + b + c; // —> x = 100
多种数据类型做混合运算时,最终的结果类型是“最大容量”对应的类型。(byte,short,char混合运算除外)
int类型计算结果仍是int类型
int a = 10 / 3; // a --> 3
7、原码/反码/补码
计算机在任何情况下都是采用二进制补码的形式存储数据的
正数:原码、反码、补码是同一个
15 原码 00001111 反码 00001111 补码 00001111
负数:反码–符号位不变,其余各位取反;补码–反码加 1。
-15 原码 10001111 反码 11110000 补码 11110001
int a = 150;
byte b = (byte)a;
// 输出 ==> -106
/*
150 原码/反码/补码 00000000 00000000 00000000 10010110
转换为byte后 10010110(补码)–> 反码 10010101 --> 原码 11101010
–> 十进制为-106
*/
七、转义字符 “\”
\t 表示制表符tab
\n 换行符
输出‘字符:
System.out.println(‘’‘); System.out.println("’“);也可以
输出\字符:
System.out.println(‘\’);
打印带“”的字符串
System.out.println(”“test”"); (可以用中文的双引号)
\u 表示后面是一个字符的unicode编码
System.out.println(‘\u4e2d’); ==> 打印出“中”
八、运算符
1、算数运算符
n++ 先做赋值,再自加1;
int n = 10; // 11
int x = n++; // 10
++n 先自加1,再赋值;
int n = 100; //101
int y = ++n; //101
2、关系运算符
所有的关系运算符的运算结果都是布尔类型(true/false)
关系运算符中如果有两个符号,符号中间不能有空格。
3、逻辑运算符
逻辑运算符两边要求都是布尔类型,最终运算结果也是布尔类型
true & true ==> true
短路与&& 和 逻辑与& 的区别:
当使用短路与&&时,左边的表达式为false时,右边的表达式不再执行。
两者运算结果一致,短路与&&效率更高。
当需要两边表达式都执行时,选择使用逻辑与&
4、赋值运算符
赋值运算符包括基本赋值运算符(=)和扩展赋值运算符(+= -= *= /= %=)
m += 10; // 相当于 m = m + 10;
使用扩展赋值运算符时,不会改变运算结果类型(可能会造成精度损失)
byte a = 100;
a += 199;
// 相当于a = (byte)(a + 199); // 输出44 (int299强转为byte类型)
5、条件运算符(三目运算符)
语法格式:
布尔表达式?表达式1:表达式2
true --> 表达式1
false --> 表达式2
6、字符串连接运算符 +
遵循从左往右拼接原则
int a = 10;
System.out.println("a = " + a); // --> a = 10