Java中的关键字:被Java 附于特定含义的单词
定义类:class
权限修饰符:
public:公共的 公开的
面向对象:封装---private:私有的,无法直接访问的
protected:受保护的(权限修饰符)
数据类型:
基本数据类型
byte
short
int
long
float
double
char
bolean
引用数据类型:类,接口,数组,等
定义类 class
class KeyWorld{
public static void main (String[] args ){
System.out.println("key world");
}
权限修饰符 静态修饰符 方法
}
标识符:给类 接口 变量 方法 等等起名字的字符序列 !起名字的时候,做到 "见名知意"
起名规则:
1)可以是英文字母
2)可以是数字字符(但是数字不能开头)
3)可以有_和$符号
Java中严格区分大小写
给包(package)起名字(字母全部是小写!)
单级包
com HelloWorld.java
多级包(一般:公司域名反写)
cn.bd.www (dian ---分包:子目录)
cn 文件夹
bd子文件夹
www 子文件夹
给类或者后面接口起名字的规则:驼峰命名法:
如果是一个单词:首字母大写 其余小写 class Hello
多个单词 每个单词首字母都大写 class HelloWord
给变量起名采用小驼峰命名法:
如果是一个单词:全部小写
如果是多个单词:第一个单词全部小写,其余每个单词的首字母都大写,其余字母小写
给常量命名
一个单词全部大写
多个单词 每个单词全部大写 每个单词之间用_(下划线)连接 MSG_PUBLLIC
注意事项:
1)数字不能开头
2)Java中严格区分大小写
3)关键字不能当作标识符
4)起名字要做到见名知意
5)不能出现特殊的其他符号
常量
常量:在程序的执行过程中 其值不发生改变的量
常量分为两大类:
字面值常量
字符串常量:使用双引号括起来的内容就是字符穿常量
字符常量:使用单引号括起来的单个内容
整数常量
小数常量
布尔常量
空常量
自定义常量:面向对象(继承的时候引入关键字final)
System.out.println("我爱高圆圆")
System.out.prinln('A')
字符常量:如果不参与运算,就是表示一个字符
但是如果参与预算,它去寻找ASCII码表的值
'a'------97
'A'-------65
'0'-------48
空常量-----引用类型:默认值--->null
String:特殊的引用类型(java提供的"字符串类")
小数常量
整数常量
进制
进制:数据进位的一种方式
x进制:逢x进一
进制的由来:
早期:电信号 使用1, 0 来表示 这个开关
计算机的一些数据:有很多符号表示 使用 1 0 这两个电信号无法满足要求
组织规定:使用8个这样的电信号来描述一个计算机符号
8bit:8个比特位表示这样的一个数据
一个字节:由8个bit 组成的
进制越大表示形式越短!
进制 ---属于常量的范畴
二进制:由0,1 组成 以0b开头 逢2进1
八进制:you 0 1 2 3 -----7组成 以0开头,逢8进一
十进制:(整数默认)
十六进制:由0 1 2 3 -----9 a b c de f组成
以0x开头,逢16 进一
进制之间的转换
任意进制转成十进制
位权展开法:系数*基数的全次幂相加 12345=1*10^4+2*10^3+3*10^2+4*10^1+5*10^0
系数:1 2 3 4 5
基数:10
权次幂:4 3 2 1 0
八进制0100=1*8^2+0*8^1+0*8^0=64
系数: 1 0 0
基数: 8
权次幂:2 1 0
十进制到任意进制的转换
规则: 使用当前十进制数据的基数,一直除到商为零,余数反转.
52十进制----变成八进制 064
52十进制----变成十六进制 0x34
52十进制----变成二进制 0b110100
8421码
1 1 1 1 1 1 1 1
128 64 32 16 8 4 2 1
8421码:快速转换法(二进制--十进制)
每一个二进制数据的数值都是1 都对应一个整数
十进制7转化成二进制就是0b111
十进制10转化成二进制就是0b1010
十进制11转换成二进制就是0b1011
需求 :x进制---->y进制
举例:二进制---->八进制
有符号位的数据表示法:
原码 反码 补码
计算机底层对数据进行计算:通过补码进行计算的!(一个数据:最高符号位(表示数据的正负)+数值位)
正整数
正整数的原码;计算出的二进制数据 0000 0111
正整数的最高符号位为0
正数的原码 反码 和补码都是一样的
负整数
负数的最高符号位是1
负数的反码:是在原码的基础上 符号位不变,数值位按位取反
负数的补码是:在反码的基础上 符号位不变 数值位末尾加1
变量
变量:在程序的执行过程中,其值不断变化的量
变量定义的三要素:
1)数据类型
2)变量名称
3)初始化值
格式:
数据类型 变量名称 =初始化值
数据类型的分类:
两大类
基本数据类型:四类八种
整数类型:默认int
字节类型 byte(-128~127)考点!
短整型 short
长整形long(定义是需要在末尾加上L)
浮点类型 默认(double)
float类型 (在定义float类型时需要在变量值的末尾加上f)
字符类型 char
布尔类型boolean
引用数据类型:类 接口 数组
定义变量的注意事项:
1)定义变量的时候不能重复定义(Java是一个强类型的语言,结构严谨)
2)在一个{}内:作用域 中有效 超过作用于域 则无法使用
3)一般情况下:为了保证格式更好看些,一行只定义一个变量
4)在定义变量的时候 必须初始化
Java中隐式类型提升(隐式转换)
byte short char 三者之间不转换,一旦参与运算则默认转换成int类型(考点)
!!!只要参与运算必定会转换数据类型,极易出错
面试题:
byte b, b1=3, b2=4;
1)b=b1+b2;
2)b=3+4;
问:以上两个当中哪个会编译失败?
答案:1
面试题:
byte b=130;
问:有问题吗
结果是多少?
答案:有问题 byte取值范围-127~128 byte b=byte(130)
结果是-126
计算机底层使用补码计算
补码 -->反码--.原码-->推出结果
130的补码是00000000000 00000000 00000000 10000010 ----截取:强制
截取之后得到补码是 10000010(最高位是1 表示是负数)---补码的末位减一,最高位符号位不变则其得到反码是10000001----->(最高位符号位不变按位取反则)得到原码是11111110---->转换成十进制(使用8421码 即除过最高位1得到一个7位数0000010=64+32+16+8+4+2+0=126) ----加上最高位符号位-负号则得到结果-126
(转换优先级先是int类型 其次是long类型 再者就是double)
基本数据类型数据类型一致则直接运算
如果数据类型不一致则要进行转换
Java中:显示类型转换(强制类型转换)
将大的类型----->小的类型
强制类型转换:一般不会使用,会损失精度 不仅适用于基本数据类型 也适用于引用数据类型