me的java笔记

me的java笔记

me的java笔记

用DOS窗口编译执行java文件

javac.exe 编译(把java文件编译为class文件。在DOS窗口javac +文件名)

java.exe 运行 (把class文件运行)

检验是否可使用java.exe

me的java笔记

先cd命令切到文件目录,再java+文件名(不用加class)

me的java笔记

注意! 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主——动力节点