目录
1 hello world!
/**
* 功能:在控制台输出hello world
* @author wuzec
*
*/
public class Hello {
public static void main(String [] args) {
System.out.println("Hello, World");
}
}
2 变量
2.1 整数类型:byte、short、int、long
一般使用int类型定义整型变量。
2.2 浮点类型:float、double
一般使用double类型来定义浮点数。
2.3 字符类型:char
字符类型占用2字节的空间,可以将单个字符、转义字符、Unicode值赋值到char类型的变量中。
常用的转义字符:
2.4 布尔类型:boolean
布尔类型在内存中占 1 bit位,只有true和false两个值。
/**
* 功能:测试java中的变量类型
* @author wuzec
*
*/
public class VariableTest {
public static void main(String[] args) {
//整型变量
byte b1 = 10;
short s1 = 100;
int i1 = 1000;
long l1 = 10L; //long型变量,必须以"l"或"L"结尾
System.out.println(b1);
System.out.println(s1);
System.out.println(i1);
System.out.println(l1);
//浮点型变量
double d1 = 0.5;
float f1 = 12.3F;//定义float类型变量时,变量要以"f"或"F"结尾
System.out.println(d1);
System.out.println(f1);
//字符类型
char c1 = 'A';
char c2 = '\n'; //换行符
char c3 = '\u597d';//'好'的Unicode码
System.out.println(c1);
System.out.println(c2);
System.out.println(c3);//好
//布尔类型
boolean bool1 = true;//只有true和false两个值
System.out.println(bool1); //true
}
}
2.5 基本数据类型转换
容量小的类型自动转换为容量大的数据类型,转换过程如下所示:
当有多种数据类型混合运算时,系统首先将所有的数据转换成最大容量的数据类型,然后在进行运算。
/**
* 功能:基本数据类型转换
* @author wuzec
*
*/
public class VariableTest2 {
public static void main(String[] args){
char c1 = 'a';
byte b1 = 1;
int i1 = c1 + b1; //进行计算之前就将 char 和 byte 转化为 int
System.out.println(i1); //98
float f1 = c1 + b1;//进行计算之前就将 char 和 byte 转化为 float
System.out.println(f1); //98.0
}
}
2.6 强制类型转换
将容量大的数据类型转换为容量小的数据类型,使用强制转换符。但强制转换会造成溢出或截断。
/**
* 功能:强制类型转换及可能出现的情况
* @author wuzec
*
*/
public class VariableTest3 {
public static void main(String[] args){
//精度损失 1
double d1 = 1.5;
int i1 = (int)d1;//截断
System.out.println(i1);//1
//精度损失2
int i2 = 128;
byte b1 = (byte)i2;//溢出(符号位为负)
System.out.println(b1);//-128
//无精度损失
long l1 = 123;
short s1 = (short)l1;
System.out.println(s1);//123
}
}
2.7 需要注意的一些地方
整型常量默认为int类型,浮点型常量默认为double类型。
/**
* 功能:注意整型常量和浮点型常量的默认类型
* @author wuzec
*
*/
public class VariableTest4 {
public static void main(String[] args){
long l1 = 123;//若不加L或l 123为int类型
long l2 = 123L;//123为long类型
//float f1 = 1.1;//编译失败:1.1在此为double类型,无法赋值给float类型的变量
float f2 = 1.1f;//编译成功
}
}
3 进制
3.1 不同进制整数表示
不同进制的整数有以下四种表示方式
二进制(binary):0,1 ,满2进1.以0b或0B开头。
十进制(decimal):0-9 ,满10进1。
八进制(octal):0-7 ,满8进1. 以数字0开头表示。
十六进制(hex):0-9及A-F,满16进1. 以0x或0X开头表示。此处的A-F不区分大小写。
/**
* 功能:不同进制数的表示与输出
* @author wuzec
*
*/
public class Binarytest {
public static void main(String[] args){
int i1 = 0b110; //二进制
int i2 = 110; //十进制
int i3 = 0127; //八进制
int i4 = 0xA; //十六进制
//打印出的结果全为十进制数
System.out.println(i1);//6
System.out.println(i2);//110
System.out.println(i3);//87
System.out.println(i4);//10
}
}
3.2 原码、反码、补码
原码:直接将一个数值换成二进制数。最高位是符号位
负数的反码:是对原码按位取反,只是最高位(符号位)确定为1。
负数的补码:其反码加1。
正数的反码和补码与原码相同。
计算机最底层都使用补码来保存数据。
4 运算符
4.1算术运算符
/**
* 功能:测试++和--
* @author wuzec
*
*/
public class Test {
public static void main(String[] args) {
//(前)++ :先自增1,后运算
//(后)++ :先运算,后自增
int a = 1;
int b = a++;
System.out.println("a = "+ a + ", b = " + b);
int c = 1;
int d = ++c;
System.out.println("c = "+ c + ", d = " + d);
//(前)-- :先自减1,后运算
//(后)-- :先运算,后自减1
int a1 = 1;
int b1 = a1--;
System.out.println("a1 = "+ a1 + ", b1 = " + b1);// 0 1
int c1 = 1;
int d1 = --c1;
System.out.println("c1 = "+ c1 + ", d1 = " + d1);
}
}
4.2 赋值运算符
符号:=
扩展赋值运算符:+=、-=、*=、/=、%=
注意:扩展赋值运算符无法改变数据的原本类型。
4.3 比较运算符
4.4 逻辑运算符
&:逻辑与 短路与:&& 逻辑非:!
| :逻辑或 短路或: || 逻辑异或: ^
注意:逻辑运算符操作的都是boolean类型的变量。
4 .5 位运算符
4 .6 三目运算符
4.7 运算符的优先级
参考资料:
[1]尚硅谷宋康红java基础教程
[2]速学堂 https://www.sxt.cn/Java_jQuery_in_action/History_Direction.html