Java基础语法

Java基础语法

六月 06, 2019

This is java入门的基础

1
$ Java基础语法

02.01_Java语言基础(注释概述及其分类)(掌握)
A:什么是注释
B:注释的分类及讲解
文档注释目前不讲,说后面讲解
不知妻美刘强东、普通家庭马化腾、悔创阿里杰克马、北大还行撒贝宁;一无所有王健林、下周回国贾跃亭、名下无房潘石屹、顺便赚钱丁三石、顺丰不快王卫兄

注释的作用
    A:解释说明程序
    B:帮助我们调试错误

02.02_Java语言基础(关键字的概述和使用)(掌握)
A:什么是关键字
被Java语言赋予特定含义的单词
B:关键字的特点
组成关键字的字母全部小写
C:常见关键字
public static void class等
D:关键字的注意事项
goto和const作为保留字存在,目前并不使用,类似Editplus这样的高级记事本,针对关键字有特殊的颜色标记,非常直观

02.03_Java语言基础(标识符的概述和组成规则)(掌握)
A:什么是标识符
就是给类,接口,方法,变量等起名字时使用的字符序列
B:标识符的组成规则
英文大小写字母
数字字符
$和_ C:标识符注意事项
不能使用关键字
不能数字开头
区分大小写

02.04_Java语言基础(标识符中常见的命名规则)(了解)
见名知意
A:包
最好是域名倒过来,要求所有的字母小写
B:类或者接口
如果是一个单词首字母大写
如果是多个单词每个单词首字母大写(驼峰标识)
C:方法或者变量
如果是一个单词全部小写
如果是多个单词,从第二个单词首字母大写
D:常量
如果是一个单词,所有字母大写
如果是多个单词,所有的单词大写,用下划线区分每个单词

02.05_Java语言基础(常量的概述和使用)(掌握)
A:什么是常量
在程序执行的过程中其值不可以发生改变
B:Java中常量的分类
字面值常量
自定义常量(面向对象部分讲)
C:字面值常量的分类
字符串常量 用双引号括起来的内容 String str=“helloworld”;
整数常量 所有整数 int类型 int a = 10;
小数常量 所有小数 double 2.3 12.0
字符常量 用单引号括起来的内容,里面只能放单个数字,单个字母或单个符号
布尔常量 较为特殊,只有true和false
空常量 null(数组部分讲解)

D:案例演示
    用输出语句输出各种常量。null不演示

02.06_Java语言基础(进制概述和二,八,十六进制图解)(了解)
A:什么是进制scale
进制:就是进位制,是人们规定的一种进位方法。 对于任何一种进制–X进制,就表示某一位置上的数运算时是逢X进一位。二进制就是逢二进一, 八进制是逢八进一,十进制是逢十进一,十六进制是逢十六进一。
例如一周有七天,七进制,一年有十二个月,十二进制
B:十进制的由来
十进制的由来是因为人类有十个手指
C:二进制的由来
其实二进制来源与中国,请看史料记载
18世纪德国数理哲学大师莱布尼兹从他的传教士朋友鲍威特寄给他的拉丁文译本《易经》中,读到了八卦的组成结构,惊奇地发现其基本素数(0) (1),即《易经》的阴爻yao- -和__阳爻,其进位制就是二进制,并认为这是世界上数学进制中最先进的。20世纪被称作第三次科技革命的重要标志之一的计算机的发明与应用,其运算模式正是二进制。它不但证明了莱布尼兹的原理是正确的,同时也证明了《易经》数理学是很了不起的。
D:八进制的由来
任何数据在计算机中都是以二进制的形式存在的。二进制早期由电信号开关演变而来。一个整数在内存中一样也是二进制的,但是使用一大串的1或者0组成的数值进行使用很麻烦。

    所以就想把一大串缩短点,将二进制中的三位用一位表示。这三位可以取到的最大值就是7.超过7就进位了,这就是八进制。 
E:十六进制的由来
    但是对于过长的二进制变成八进制还是较长,所以出现的用4个二进制位表示一位的情况,四个二进制位最大是15,这就是十六进制。
F:不同进制表现同一个数据的形式特点
    进制越大,表现形式越短

02.03_Java语言基础(不同进制数据的表现形式)(掌握)
A:二进制的数据表现形式
由0,1组成。以0b(b可以大写也可以小写)开头(JDK1.7版本可以表示二进制了)
B:八进制的数据表现形式
由0,1,…7组成。以0开头
C:十进制的数据表现形式
由0,1,…9组成。整数默认是十进制的
D:十六进制的数据表现形式
由0,1,…9,a,b,c,d,e,f(大小写均可)。以0x开头
E:案例演示
输出不同进制表现100的数据。
0b100
0100
100
0x100

02.04_Java语言基础(任意进制到十进制的转换图解)(了解)
A:任意进制到十进制的转换原理conversion
系数:就是每一位上的数据。
基数:X进制,基数就是X。
权:在右边,从0开始编号,对应位上的编号即为该位的权。
结果:把系数*基数的权次幂相加即可。
B:画图练习
二进制–十进制
八进制–十进制
十六进制–十进制

02.05_Java语言基础(十进制到任意进制的转换图解)(了解)
A:十进制到任意进制的转换原理
除积倒取余
B:画图练习
十进制–二进制
十进制–八进制
十进制–十六进制

02.06_Java语言基础(快速的进制转换法)(了解)
A:8421码及特点
8421码是中国大陆的叫法,8421码是BCD代码中最常用的一种。在这种编码方式中每一位二值代码的1都是代表一个固定数值,把每一位的1代表的 十进制数加起来,得到的结果就是它所代表的十进制数码。
B:通过8421码的方式进行二进制和十进制的相互转换
C:二进制到八进制的简易方式
D:二进制到十六进制的简易方式

02.07_Java语言基础(原码反码补码)(了解)
A:为什么要学习原码反码补码?code
后面要学习强制类型转换,如果不知道有原反补会看不懂结果
B:有符号数据表示法的几种方式
原码
就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
通过一个字节,也就是8个二进制位表示+7和-7【byte】
0(符号位) 0000111
1(符号位) 0000111
反码
正数的反码与其原码相同;
负数的反码是对其原码逐位取反,但符号位除外。
-7: 反码: 1 1111000
补码
正数的补码与其原码相同;
负数的补码是在其反码的末位加1。
-7 补码: 1 1111001

C:计算机运算时都是以补码方式进行。 

02.08_Java语言基础(原码反码补码的练习)(了解)
A:已知原码求补码(先取反获得反码,再+1得到补码)
0b10110100 反码: 0b11001011 补码: 0b11001100
B:已知补码求原码(逆操作,先-1得到反码,再取反获得源码)
0b11101110 反码: 0b11101101 源码:0b100010010 -18
C:求 -15(byte)的补码
15: 8 + 4 + 2 + 1: 0b0000 1111
-15 原码: 0b1000 1111
反码: 0b1111 0000
补码: 0b1111 0001

02.09_Java语言基础(变量的概述及格式)(掌握)
A:什么是变量variable
在程序执行的过程中,在某个范围内其值可以发生改变的量
B:变量的定义格式
数据类型 变量名 = 变量值;
C:为什么要定义变量
用来不断的存放同一类型的常量,并可以重复使用

02.10_Java语言基础(数据类型的概述和分类)(掌握)
A:为什么有数据类型datatype
Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间
B:Java中数据类型的分类
基本数据类型
引用数据类型
面向对象部分讲解
C:基本数据类型分类(4类8种)
整数型
byte 占一个字节 -128到127
short 占两个字 -2^152^15-1
int 占四个字节 -2^31
2^31-1
long 占八个字节 -2^632^63-1
浮点型
float 占四个字节 -3.403E38
3.403E38 单精度 注意:float表示范围比long更大
double 占八个字节-1.798E3081.798E308 双精度
字符型
char 占两个字节 0
65535
布尔型
boolean
boolean理论上是占八分之一个字节,因为一个开关就可以决定是true和false了,但是java中boolean类型没有明确指定他的大小

02.11_Java语言基础(定义不同数据类型的变量)(掌握)
A:案例演示
定义不同基本数据类型的变量,并输出
赋值时候注意float类型,long类型

02.12_Java语言基础(使用变量的注意事项)(掌握)
A:案例演示
a:作用域问题
同一个区域不能使用相同的变量名
b:初始化值问题
局部变量在使用之前必须赋值(可以先声明后赋值,也可以定义的同时赋值)
c:一条语句可以定义几个变量
int a,b,c…;

02.13_Java语言基础(数据类型转换之隐式转换)(掌握)
A:案例演示conversion
a:int + int
b:byte + int
B:Java中的默认转换规则
取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算
C:画图解释byte+int类型的问题

02.14_Java语言基础(数据类型转换之强制转换)(掌握)
A:强制转换问题
int a = 10;
byte b = 20;
b = a + b;
B:强制转换的格式
b = (byte)(a + b);
C:强制转换的注意事项
如果超出了被赋值的数据类型的取值范围得到的结果会与你期望的结果不同

02.15_Java语言基础(面试题之变量相加和常量相加的区别)(掌握)
A:案例演示
面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由。
byte b1 = 3;
byte b2 = 4;
byte b3 = b1 + b2;
从两方面去回答这个题
b1和b2是两个变量,变量里面存储的值都是变化的,所以在程序运行中JVM是无法判断里面具体的值
byte类型的变量在进行运算的时候,会自动类型提升为int类型
byte b4 = 3 + 4;
3和4都是常量,java有常量优化机制,就是在编译的的时候直接把3和4的结果赋值给b4了

02.16_Java语言基础(long与float的取值范围谁大谁小)(了解)
进行混合运算的时候,byte,short,char不会相互转换,都会自动类型提升为int类型,其他类型进行混合运算的是小的数据类型提升为大的
byte,short,char – int – long – float – double

long: 8个字节
float:4个字节
IEEE754
4个字节是32个二进制位
1位是符号位
8位是指数位
    00000000   11111111
    0(代表0)到255(无穷大)
    1到254 【整体-127】
    -126到127
23位是尾数位

A:它们底层的存储结构不同。
B:float表示的数据范围比long的范围要大
    long:2^63-1
    float:3.4*10^38 > 2*10^38 > 2*8^38 = 2*2^3^38 = 2*2^114 > 2^63-1

02.17_Java语言基础(字符和字符串参与运算)(掌握)
A:案例演示
System.out.println(‘a’);
System.out.println(‘a’+1);

    通过看结果知道'a'的值是多少,由此引出ASCII码表
B:ASCII码表的概述
    记住三个值:
        '0'  48
        'A'  65
        'a'  97
C:案例演示
    System.out.println("hello"+'a'+1);
     System.out.println('a'+1+"hello");
D:+在有字符串参与中被称为字符串连接符
    System.out.println("5+5="+5+5);
    System.out.println(5+5+"=5+5");

02.18_Java语言基础(char数据类型)(掌握)
A:char c = 97; 0到65535
char c1 = 2;
char c2 = 3;
char c3 = 4;
B:Java语言中的字符char可以存储一个中文汉字吗?为什么呢?
可以。因为Java语言采用的是Unicode编码。Unicode编码中的每个字符占用两个字节。中文也是占的两个字节
所以,Java中的字符可以存储一个中文汉字