一,计算机基础知识
1,注释
单行注释 //注释文字,可嵌套使用
多行注释 /* */ 不能嵌套使用
文档注释 /** */
2,标识符和关键字
goto和const是保留字,目前没用,但也要注意其是关键字。
标识符注意事项:
1,不能以数字开头
2,不能是java中的关键字
3,区分大小写
符号只能用$和_
3, 包,类或者接口,方法和变量,常量
包:(其实就是文件夹,用于解决相同类名问题),包名要求全部小写。
类或者接口:每个单词首字母都大写。
方法和变量:如何只有一个单词,则全小写;如果为多个单词,从第二个单词开始首字母大写。
常量:如何只有一个单词,则全大写;如果为多个单词,全大写,但每个单词都要用_分开。
4,Helloworld
class Helloworld {
public static void main(String[] args) {
System.out.pritln("你好,世界");
}
}
复制代码
二,进制运算&数据类型&变量
1,scale进制运算
二进制0b,八进制0,十六进制0x。在进制运算过程中,使用的是补码运算。
原码的最高为“0”表示正,“1”表示负。
正数的反码与原码相同,负数的反码对原码逐位取反,符号位除外。
正数的补码与原码相同,负数的补码是在反码的末位加1。
2,constant常量
字符串常量 System.out.println("abc"); 要用双引号括起来
整数常量 System.out.println(123);
小数常量 System.out.println(12.3);
字符常量 System.out.println(‘l’); 单引号括起来,单个字母/单个数字/单个符号,不能什么也不放,但可以放空格
布尔常量 System.out.println(true);
空常量 null
3,变量
1,基本数据类型 (1个字节=8个位)
(1)整数型
byte 占一个字节 -128~127
short 占两个字节 -2^15~2^15-1
int 占四个字节 -2^31~2^31-1
long 占八个字节 -2^63~2^63-1
(2)浮点型
float 占四个字节 单精度
double 占八个字节 双精度
(3)字符型
char 占两个字节 0~65535 (无复数类型)
(4)布尔型
boolean理论上占八分之一个字节,因为一个开关就可以决定是true或者flase了,但java中boolean类型没有明确指定它的大小。
4,数据类型的强制转换
byte b=(byte)(126+4); //(byte) 用于将输出结果强制转换位byte类型
System.out.println(b);
复制代码
输出结果分析:
126+4=130,转换为二进制位00000000 00000000 00000000 10000010
被强制转换为byte类型后变为10000010,此为-126的补码,将其-1,并除符号位外取反,结果为-126.
所以输出结果为-126,而不是130.
例题
byte b1=3;
byte b2=4;
byte b3=b1+b2;
System.out.println(b3);
/*
此处编译会出错,两个原因
1,byte与byte(或short,char)进行运算时会提升为int,两个int类型相加也是int类型。
2,b1,b2是两个变量,变量的值会变化,编译的时候没法确定里面的值,可能会超出byte的取值。
*/
byte b4=3+4;
System.out.println(b4);
/*
此处编译不会出错,因为java编译器有常量优化机制,int7被判断为在-128~127之间,能够直接输出。
*/
复制代码
转换大小数据(从小到大):
byte,short,char-------int----------long---------float-----------double
5,字符串的运算
System.out.println("hello"+'a'+1);//输出为helloa1,字符串用+与数据类型连接产生一个新的字符串
System.out.println('a'+1+"hello");//输出为98hello,先运算a+1,a的ascii码为97。
复制代码
6,a++,++a,赋值运算
a++,先赋值,再加1;++a,先加1,再赋值。
short s=1;s=s+1; //会报错,s+1被转换为了int型,不能赋值于short型
short s=1;s+=1; //不会报错,s+=1在此处相当于s=(short)(s+1)
复制代码