Java第一课
1.java的两个核心机制
java虚拟机---(以字节码为指令的CPU)---*.class
java编译器-->字节码-->类加载器进行验证-->虚拟机运行
垃圾回收机制(GC)
2.java编程语言(一门纯面向对象, 解释型语言)的特点:
1, 面向对象
1, 封装
2, 继承
3, 多态
2, 安全性
3, 跨平台
3.配置环境变量:
java_home
classpath
path
4.public class 类名 {
public static void main(String[] args) {
System.out.println(111);
}
}
需要注意的地方:
类名要与文件名保持一致(完全一样)
5.标识符:
凡是需要你自己命名的地方, 都叫标识符
java编程严格区分大小写
标识符的命名不能与关键字重复
保留字:goto const等
6.规则:
标识符由字母(大小写), _, $, 并且不能以数字开头
代码规范: 驼峰命名法
String empName
getElementById
7.四类八种:
整数型
byte 2的8次方(256) -127至128此为取值区间,一共是256个数 内存中占1个字节
short 2的16次方 内存中占2个字节
int 2的32次方 内存中占4个字节
long 2的64次方 内存中占8个字节
浮点型
float----有效数字7位(单精度浮点型) 内存中占4个字节
double----有效数字是16位(双精度) 内存中占8个字节
布尔型
boolean(只有两个值, true, false) 内存中占1个字节
字符型
char(单引号) 内存中占2个字节
字符串 String(双引号)
变量的赋值 char c = 'a'; char c = '字'; char c = 98; // ASII a char c = '\n'; char c = '\u0061'; unicode
定义一个整型变量默认为 long l = 123456; long l = 88888888888L; 需要在后面加L,大写的L,要根据其长度来确定;
类型转换:
double float long int char short byte
char short byte进行运算的时候, 取值默认为int
8. ^(异或运算符)
例子:
x是二进制数0101
y是二进制数1011
则结果为x^y=1110
0^0=0;0^1=1;1^0=1;1^1=0
只有在两个比较的位不同时其结果是1,否则结果为0
即“相同为0,不同为1”。
9.false&&true/false:...(短路运算符) 第一个表达式为false,则第二个表达式就不会执行
int a=5; int b=3; a < b && ++b ? "1" : "2"
++b:先自增再赋值
b++:先赋值再自增
System.out.println(b);
输出的值为3,&&为短路运算符,a<b不成立,后面的不会执行.
位运算符:>>(右移) <<(左移) >>>(无符号右移) 右移,左边空出的位以0填充 ,无论最高位为啥,都用0补.
规律: << : 其实就是乘以2的移动位数次幂;
>>:其实就是除以2的移动位数次幂;
5-->101 5转换成二进制 0000 0101
5<<2 左移两位 0001 0100
-5>>>2
负数转换为二进制的步骤:1.求出5的二进制
2.后取反,即1变0;0变1; 得出1111 1010
3.反码加1称为补码 1111 1011
右移为 0011 1110
例子:
a<<4 指把a的各二进位向左移动4位。如a=00000011(十进制3),左移4位后为00110000(十进制48);
左移就是: 丢弃最高位,0补最低位;
a=15,a>>2 表示把00001111右移为00000011(十进制3);
对于有符号数,在右移时,符号位将随同移动。当为正数时, 最高位补0,而为负数时,符号位为1;
如果最高位为0,右移后用0补空位;如果最高位为1,右移后用1补空位
3+5+"a"--->35a
字符串连接运算符:+(整个表达式中只要有一个是字符串, 那整个结果都是字符串)
需要注意的地方: 在输出的时候, 只要有一个参数是字符串, 整个输出结果都是字符串
三元运算符(表达式)(三目运算符):布尔值?值1:值2
进制转换