黑马程序员--Java基础--02-基础语法1
来源:互联网 发布:网络励志名言 编辑:程序博客网 时间:2024/05/01 12:43
<span style="font-size:14px;">------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------</span>
一、关键字和标识符
1.关键字
1).概念:被Java语言赋予特定含义的单词。
2).关键字特点:组成关键字的字母全部小写。
3).关键字注意事项:main是一个被虚拟机识别的特殊标识符,不是
关键字;goto和const作为保留字存在,目前并不使用;类似Notepad++这样的高级记事本,针对关键字有特殊的颜色标记,非常直观。
常用关键字如下图:
2.标识符
1).概念:就是给类,接口,方法,变量等起名字时使用的字符序列,由英文大小写字母、数字字符、$和_组成。
2).命名规则:不能以数字开头、不能是Java中的关键字、不能使用特殊符号(_和$可以使用)、区分大小写。
3).命名规范:
◆包名 -> com.itcast.XXX> 公司域名反写 + 包说明
格式: “.”分隔
包名小写
◆类名 ----> 所有单词首字母大写
◆变量和方法命名 -----> 驼峰式命名,第一个单词首字母小写,其余单词首字母大写
◆常量:static修饰的常量
A、所有字母大写
B、多个单词组成,单词间使用"_" ----- MAX_VALUE
◆最重要:见名知意
二、进制以及进制转换
学习完进制能使我们对计算机底层的运算有直观的理解。
1.进制:一种计数的方式。
A、计算机存储数据,使用的是许多二进制位存储,每个二进制位是一个Bit
B、计算机中将8个bit作为最小的存储单元,称之为字节 ---- byte。
2.进制的的种类及由来
1).十进制:人有十个手指
2).二进制:电信号来的 ---- 开关
3).八进制、十六进制的由来:由于二进制表示不方便,所以产生八进制和十六进制。
A、八进制将三个二进制位合成一位
B、十六进制将四个二进制位合成一位,10、11、12、13、14、15分别用a、b、c、d、e、f表示。
3、原码、反码和补码
数值编码:在计算机内部表示二进制数的方法称为数值编码。
正数:源码反码补码都一样,都是一个数的二进制数的表示,如:10的原、反、补码都是0000 1010(按一个字节计算的).
负数:原码 ---- 标志位是1,计数位和正数一样
反码 ---- 计数位取反,1变0,0变1
补码 ---- 反码基础之上 +1
注:计算机底层的运算都是基于补码进行的。
4.进制的转换
1).十进制转二进制:用十进制数除以二进制数得商取余数,然后在用得到的商除以2一直到商为0为止,把得到的所有余数取反序。
如十进制数10转二进制:
10/2=5---余0
5/2=2----余1------------>余数取反序即1010.
2/2=1----余0
1/2=0----余1
2).二进制转十进制
A、计算每个bit,然后相加
B、每个bit的数字 = bit上值 * 2(N - 1) ---- (N从右向左数的位数)
计算负数的十进制:
A、减1
B、反码
C、计算出十进制数字
D、取正数的负数形式
3).二进制转八、十六进制
00 | 001 | 010 --> 12 二进制转八:将每三位二进制数转换成十进制变成八进制的一位,从右到左依次放在八进制对应的位上。
1 2
0000 | 1010 --> a 二进制转十六进制:将每四位二进制数转换成十进制变成八进制的一位,从右到左依次放在十六进制对应的位上。
a
4).八、十六进制转二进制
按照二进制转八、十六进制的方式反向操作。
5).十进制转八、十六进制
原理同十进制转二进制。
6).八、十六进制转十进制
原理同二进制转十进制。
7).八、十六进制间的相互转换
都需先转成十进制,再通过十进制进行转换。
5、打印对应进制数字
语法:
1).直接声明数字,在Java中默认是十进制
2).要表示其他进制数字,可以给数字加标记
八进制 ---->数字前加 0
十六进制 -->数字前加 0X ----> X 大小写无所谓
3).JDK1.7之前不能表示二进制
JDK1.7以及以后:
二进制 ----> 数字前加0b
4).注意事项:取值必须在当前进制的范围内,否则不能通过编译
三、常量和变量
1、变量
变量:数据的载体、载体上的数据可变(类似于:超市的价格标签,标签上的价格可变)。
程序中变量的体现: A、由若干bit组成的一块内存空间; B、改变bit上的标记。
2.变量的创建: A、声明格式:数据类型 变量名; B、给变量赋值:变量名 = 变量值;//将变量值赋值给变量名(所指向的内存)
上述两步可以合为一步,声明的同时赋值:数据类型 变量名 = 变量值。
变量使用的注意:方法内的变量(局部变量)如果之声明,不初始化,那么不可用。
3.常量:不可变的数据。有些数据一旦创建,逻辑上就不可以改变 : 圆周率、e
A、使用final修饰 ---- 为内存更改设置权限。
B、字面值常量 ------- 字面值:别名,这块内存只能通过值称呼、常量:这块内存无法调用,无法修改。
C、在java中,如果使用整数,没显示的标记数据类型,那么默认分配四个字节。
4、变量类型
使用不同的数据类型目的:考虑取值范围、资源节约按照需求,进行分析,对数据灵活的进行空间分配。在Java中,数据类型被固定了,分为两大类:A、基本数据类型B、引用类型。
1).八大基本数据类型(取值范围)
整型:
byte ----- 1个字节8bit -----最小值:-2^7 = -128 最大值:2^7 - 1 = 127
short ----- 2个字节16bit ----最小值:-2^15= -32768 最大值:2^15 - 1 = 32767
int ------- 4个字节32bit ---- 最小值:-2^31 最大值:2^31-1
long ------ 8个字节64bit ---- 最小值:-2^63 最大值:2^63-1
浮点型: ---- 涉及到自然指数和存储结构,取值范围比较大
float ----- 4个字节32bit
double ---- 8个字节64bit
字符型:
char ------ 2个字节16bit(无符号 --- 没有负数)1111 1111 1111 1111 ----- 65535
布尔:
boolean --- true/false --- 标志位 1个bit ---- 一般都是一个byte
2).赋值操作
<span style="font-family:Microsoft YaHei;font-size:14px;">/**为基本数据类型赋值A、为基本类型赋值,变量值必须在取值范围之内B、如果变量值是整型,默认int型(四个字节) --- 为什么? 出于受用以及内存大小的考虑隐式转换 ---- 1、整型字面值常量转换成其他类型 2、浮点型不存在隐式转换为了方便查看输出语句,使用字符串拼接打印信息 "XXX" + 数据字符串拼接数据是由使用限制的,运算符时会讲。 */class Var02{public static void main(String[] args){//byte num1 = 128;//可能损失精度byte num1 = 1;System.out.println(num1);short num2 = 123;System.out.println(num2);int num3 = 1234;System.out.println(num3);//程序报错---为什么?//默认整型四个字节,但是数字太大//解决:使用标记 ---- 后缀L或l//告知编译器:不要按默认的四个字节分配,而是分配八个字节//变量值在int取值范围之内不用特殊声明//建议:以后只要声明long类型数据,那么变量值就 + Llong num4 = 100000000000L;System.out.println(num4);/*在Java中浮点型,默认是double类型1、声明float数据时,double转float可能损失精度2、不存在隐式转换解决:做标记 --- + F/f 告知编译器按4个字节分配*/float num5 = 5.0F;//将double ---> floatSystem.out.println("num5 = " + num5);double num6 = 6.0;System.out.println("num6 = " + num6);float num7 = 5;//将int ---> floatSystem.out.println("num7 = " + num7);/**char类型数据的存储 ---- 1、底层bit2、无符号 --- 没有标志位3、char本质就是数字4、char的数字和字符之间有映射关系97 --- a98 --- b 编码表查找对应关系不同的编码表对应关系不同*/char c1 = 'a';System.out.println("c1 = " + c1);char c2 = '中';System.out.println("c2 = " + c2);char c3 = 97;System.out.println("c3 = " + c3);boolean b1 = true;boolean b2 = false;System.out.println("b1 = " + b1);System.out.println("b2 = " + b2);}}</span>
3).精度排序 ---- 取值范围排序 ----- A、内存大小有关 B、存储结构有关
整型:byte < short < int < long;
浮点型:float < double
综合排序:
byte < short < int < long < float < double
char ---- [0,2^16-1]
short ---- [-2^15, 2^15-1]
char和short无法排序
char和byte无法排序
char和int ---- char完全属于int
4).强制类型转换
数据类型转换:
A、低精度转高精度绝对安全 ---- 向上转型
B、高转低可能出问题 ----- 向下转型
5).基本数据类型运算-----隐式转换
两种隐式转换 - A、 当参与运算的数据 <= int 时,结果自动转为 int
B、 当参与运算的数据 > int时,运算结果自动转型为参与运算的最高精度的数据类型
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
- 黑马程序员--Java基础--02-基础语法1
- 黑马程序员--02 JAVA语法基础篇
- 黑马程序员02JAVA基础语法
- 黑马程序员-JAVA基础语法1
- 黑马程序员java基础语法1
- 黑马程序员---java基础语法1
- 黑马程序员---基础语法【java】
- 黑马程序员---Java基础语法
- 黑马程序员---java基础语法
- 黑马程序员---java---基础语法
- 黑马程序员 java基础语法
- 黑马程序员 java语法基础
- 黑马程序员-Java基础语法
- 黑马程序员--java基础语法
- 黑马程序员---Java基础语法
- 黑马程序员-Java语法基础
- 黑马程序员--java基础语法
- 黑马程序员-java基础语法
- Jquery取得iframe中元素的几种方法Javascript Jquery获取Iframe的元素、内容或者ID,反之也行!
- Java常见报错解决办法
- 快排算法精解
- 百度2015简答题
- 总结X
- 黑马程序员--Java基础--02-基础语法1
- 基金知识入门理解
- Android百分比布局支持库
- 必学高级SQL语句
- 基于物理渲染的基础理论
- 在Windows平台上安装Node.js及NPM模块管理
- const
- Android图片缓存
- php+redis