me的java笔记
用DOS窗口编译执行java文件
javac.exe 编译(把java文件编译为class文件。在DOS窗口javac +文件名)
java.exe 运行 (把class文件运行)
检验是否可使用java.exe
先cd命令切到文件目录,再java+文件名(不用加class)
注意! classpath环境配置之后,只会在该目录下查找(最好不要配置。path,java_home)
注释:
1.单行注释 如: //坎坎坷坷 (只注释这一行双斜线后面的)
2.多行注释 如: /*坎坎
坷坷
*/
3.多行注释且注释信息会被提取 /**
*作者:哈哈
*/
标识符:
标识:类名,方法名,常量名,接口名,变量名。
命名规则:
1·只能有数字、字母、下划线_、美元符号¥组成(注意:_cal五 中文是可以的,最好不用)
2·不能由数字开头
3·关键字不能做标识符,如class、main等
4·严格区分大小写
5·无长度限制
规范:
1·用拼音就用拼音,用英语就用英语
2·见名思意(如,age 年龄)
3·类名(首字母大写 Tracc{},TraccKitt{}),变量/方法名(首字母小写,后面还是大写,seaFoodShop,sea),
常量名(全部大写,单词与单词之间加下划线_ AGE_AGE,AGE)
变量
字符单引号;字符串双引号
java变量必须先声明再赋值;
同一范围内不能重名,不能重复声明
数据类型
1·基本数据类型
整数型 byte,short,int,long;(占用字节不同,分别是1、2、4、8)
字符型 char;
浮点型 float,double;(4,8)
布尔型 boolean 只有true和false;
2·引用数据类型
字符串型 String";
final int a = 4;(final表示最终定义,常量)
3·进制转换
???
4·编码
ASCLL编码:('A' 97 , 'a' 65 , '0' 48)
ISO-8859-1(国际标准,不支持中文)
GBK(支持中文,韩文;GB2312<GBK<GB18030,简体)
BIG5 台湾繁体
unicode(utf8,utf16,utf32,统一)
5·转义字符
tab键 -- \t
换行符 -- \n
空字符 -- \0
注意 System.out.println() 换行 ;System.out.print()不换行 ;
System.out.println('\'') 输出的是一个单引号'
System.out.println('\\') 输出的是一个反斜杠\
System.out.println("\"test\"") 输出的是"test"
\u后面的是unicode编码
类型转换与计算
1·数值型转换
整数型默认为int
long x=1000L(int转换为long)
byte x=128(错误的)
byte x=(byte)300 (可以,不过x=44,因为转为二进制为00000001 00101100 去掉前面1)
2·字符与数值转换
char c=97(输出为a)
原码、补码和反码
计算机底层存储是以二进制补码进行的
正数:
原码、补码和反码是统一个。
负数:
原码 :1000 0001
反码(符号位不变,其他位取反) :1111 1110
补码(反码+1):1111 1111
byte x = 150(输出为-106 ,150二进制为1001 0110,负号 补码取原码 1110 1010为-106)
byte、short 、char 先各自转换为int再运算,char a= 'a' ;byte b= 1;short s= (short)(a+b)
int a=4,char b=a 输出不了是4
int a =10/3 输出为3 ;int a=1/2 输出为0;
10%3=1, 5%3=2;
float和double 存储取近值(float当为double,float f=1.01F)
boolean sex =1 错误;boolean sex =true 正确
运算符
1·++(和--运算规则一样)
当++出现在变量后,会先赋值,再自加1.如a=10,b=a++;b=10,a=11。
当++出现在变量前,会先自加1,再赋值.如a=10,b=++a;b=11,a=11。
2·逻辑运算(与(&),或(|),非(!)和短路与(&&),短路或(||))
特点:要求两边是布尔类型
& :只有一个false,就是false(一假则假)
| :只要有一个是true,就是true(一真则真)
!:!true=false
短路与和短路或
&&:和&一样,一假则假,如果前面出现假,后面的则不执行,短路与的效率高。
| |:和 | 一样,一真则真,出现真则后面的不需要运行。
3·扩展赋值运算符(+=,-=,*=,/=)
int k=1,byte a; a=a+k ,错的;a+=k,可以;
4·三目运算
boolean sex=true;char c=sex?'男' : ' 女',c='男'。
控制语句
1·分支语句(if switch)
if结构:
if(){}
if(){} else{}
if(){} else if(){} else if(){}
if(){} else if(){} else if(){} else{}
switch结构:
switch(值){
case 值1:break;(如果不写break;即使值是值1,执行完值后会执行值2)
case 值2:break;
default;(case没有匹配成功,执行此语句,不是必须的)
}
switch(值){
case 值1:case 值2:break;case3:break;(case并列)
}
2·循环语句(for,while,do.while)
没什么好写的
3·折断语句(break,continue,return)
break(打断最近的循环语句;switch中)
continue(打断符合条件的循环语句,继续下一个循环语句)
特殊用法———break a;和————continue a;
a:for(){
b:for(){
if()break a; (直接打断a的循环,continue一样)
}
}动力节点
return
打断方法;
JVM三块的主要内存,栈内存,堆内存,方法区内存
方法区最先有数据:方法区存放代码片段,存放class字节码。
栈内存:方法调用时,该方法需要的内存空间在栈中分配,存局部变量
堆内存:
!!!study from:b站up主——动力节点