第二天
学习根据,毕向东视频02
2.java语言的基础组成
2.1关键字
2.2标示符
2.3注释
2.4常亮和变量
2.5运算符
2.6语句
2.7函数
2.8组数
=====
2.1
关键字
定义:被java语言赋予了特殊含义的单词
特点:关键字中所有字母都为小写
用于定义类型的关键字:
class,interface,byte,short,int,long,float,double,char,boolean,void
用于定于数据类型值的关键字
true,false,null
用于定于流程控制的关键字
if,else,switch,case,default,while,do,for,break,continue,return
用于定义访问权限修饰符的关键字
private,portected,public
用于定义类,函数,变量修饰符的关键字
abstract,final,static,synchronized
用于定义类与类之间关系的关键字
extends,implements
用于定义建立实例及引用实例,判断实例的关键字
new,this,super,instanceof
用于异常处理的关键字
try,catch,flnally,throw,throws
用于包的关键字
package,import
其他修士符关键字
native,strictfp.transient,volatile,assert
===========================
2.2
标识符
在程序中自定义的一些名称
由26个英文字母大小写,数字:0-9 ,符号_$组成
定义合法标识符规则:
1,数字不可以开头
2,不可以使用关键字
java中严格区分大小写
注意:在起名字的时候,为了提高阅读性,要尽量有意义
java中名称的规范
包名:多单词组成时所有字母都小写
xxxyyyzzz
类名接口名:多单词组成时,所有单词的首字母大写
XxxYyyZzz
变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。
xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线链接。
XXX_YYY_ZZZ
======
2.3
PASS
================
2.4常量与变量
常量表示不能改变的树脂
java中常量的分类
1,整数常量,所有整数
2,小数常量,所有小数
3,布尔型常量。较为特有,只有两个数值:true false
4,字符常量,将一个数字字母或者符号用单引号(‘’)标识
5,字符串常量,将一个或者多个字符用双引号标识
6,null常量,只有一个数值就是:null
对于整数,java有三种表现形式
十进制:0-9,满10进1
八进制:0-7,满8进1,用0开头标识。
十六进制:0-9,A-F,满16进1,用0x开头表示
8个二进制代表1个字节
N多字节代表1一些数据
在计算机内存或硬盘中,存放的都是二进制数据
3个二进制代表一位,为八进制
4个二进制代表一位,为十六进制
十进制与二进制之间的转换
十进制--》二进制
原理:对十进制数进行除2运算。
如果6变成二进制
6不断除2
余数从右往左写,没有余数写0
二进制--》十进制
原理:二进制乘以2的过程
如110
0乘2的0次幂+1乘2的一次幂+1乘2的2次幂
=6
128 64 32 16 8 4 2 1
相应对应相加,如果歼灭没数,默认0,哪个有1,就+那个数
如00110101=32+16+4+1=53
128+64+32+16+8+4+2+1=255
所以一个字节最大255
=========================
其他进制转换
十进制=90
二进制=0101-1010
4个二进制=一个十六进制
0101=5 1010=10
因为16进制中没有10为A,所以1010=A
所以90对应的16进制=0x5A
转成8进制
三个二进制代表一位
01011010
前面不够拿0补
001 011 010
对应1 3 2
==================================
负数的二进制表现形式.
6=110
-6:其实就是6的二进制取反+1
取反:讲二进制1变成0变成1
6=110=0000-0000 0000-0000 0000-0000 0000-0110
取反=1111-1111 1111-1111 1111-1111 1111-1001
再+1 ,1= 0000-0000 0000-0000 0000-0000 0000-0001
上下相加 1111-1111 1111-1111 1111-1111 1111-1010=-6
负数的二进制的最高位都是1
整数的二进制的最高位都是0
=====================
2.4变量
变量:就是讲不确定的数据记性存储
也就是需要在内存中开辟一个空间。
如果开辟空间呢?
就是通过明确数据类型,变量名称数据来完成。
名称:变量名
空间的类型:数据类型
java语言是强烈型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间
数据类型:
一基本数据类型:
1数字型:整数类型(byte,short,mt,long)
浮点类型(float,double)
2字符型:char
3布尔型:boolean
二引用数据类型
1类(class)
2接口(interface)
3数组([])
整数默认:int 小数默认:double
定义变量的格式:
数据类型 变量名 = 初始化值; (不要忘记分号)
如,定义一个int类型的变量,取值为4
int x = 4 ; (X是变量名,看情况取,也可随意取)
如果要换数据,比如吧4换成10只需要打
x = 10就可以了
int x = 4;
System.out.println("x");
x=10
System.out.println("x");
这样可以同时打出4和10
byte b = 2; (取值范围为-128-127;如果超出这个范围,系统会说可能损失精度)
short 最大范围32767
long l = 4l;
float f =2.3f;
double d = 34.56;
char ch = ‘4’;
char ch1 = 'a';
char ch2 = ‘+’;
char ch3 = ‘ ’;
空格也是字符
boolean bo = true ;
boolean bo1 = false ;
什么时候定义变量?
当数据不确定的时候,需要对数据进行存储的时候
就定义一个变量来完成存储动作
int a = 5
a = a + 6
===============
类型的转换
byte b = 3;
b = b + 2;
System.out.println(b);
欲出结果,但是不行
因为b占1个八位,2占4个八位
需要自动类型提升
如果非要吧b+2的值赋给B
需要 强制转换
如b= (byte)(b+2);
System.out.println((char)(‘a’+1));
把a+1的结果有数字强制性转换成字母
ascil码表中同一个字母大小写对应字母不同
字符数字和纯数字对应的也不同
比如‘1’个1对应数字不同
===================================
运算符
陷阱
int x = 4270
x = x/1000*1000;
System.out.println(x)
因为4270先除以1000=4.270
但是int 形只保留整数,所以=4
然后4*1000=4000
输出结果为4000
%=去模,(余数)
如System.out.println(10%4)
= 2
5%1=0
1%5=5
规律,左边小于右边=左边
左边=右边结果=0
右边是1,结果=0
如果出现负数只看左边
-1%5=-1
1%-5=1
++ 自增
int a = 3,b; (a被赋予3,b还没被赋予值)
b = a++;
System.out.println(b)
System.out.println(a)
结果b=3 a=4
a++的意思是 a =a+1;
++每次只自增1
b = a++;
的意思是,a的值先给b,然后本身+1
b = ++a;的意思是,本身先+1,然后给b
b = ++a; 的值b=4 a=4
所以无论是++a 还是 a++
这道题中b的指都=4
如果加好用在字符串中,叫做字符串连接符
如“hahahahahhahahahah”一行写不下了
可以写“hahahaha”+”hahahaha”
字符串数据和任何数据使用+都是想链接,最终都会变成字符串。
如System.out.println(”ab”+5+5);则 结果会变成“ab55”
如果想要让ab和10做链接,则System.out.println(“ab”+(55))
提高优先级则可
System.out.println(“a=”+a,"b=”+b)
输出结果就是a=a的数值,b=b的数值
(为了清除建议以后就这么打)
“ln”代表换行
如果System.out.println(“hello world”)
System.out.println(“hello java”)
显示出来的是
hello world
hello java
如果System.out.print(hello world)
System.out.println(hello java)
显示出来的就是hello worldhellojava
转义字符:通过\ 来转变后面字母或者符号的含义
\n:换行
\b:退格。相当于backspace
\r:按下回车键。windows系统中,回车符是有2个字符来表示\r\n
\t:制表符。相当于tab键
如System.out.println(“hello \n world”)
法医出来就为
hello
world
System.out.println(“\“hello”\”)
输出语句就是“hello”
\能改变含义
\“\”
System.out.println(“\\hello\\”)
出来就是\hello\
一个汉字是2个字节
char 也2个字节
char c =‘你’
也可以出来的
+= -= *= /= %= 这些都是1个运算符
x+=4;相当于 x = x +4
但是x+=4和x = x + 4 的最大区别是
x+=4会做自动转换 而 x = x + 4 不会
从而
short s =4
s = s + 5编译失败(因为S会被提升为int类型,运损后的结果还是int类型。无法赋值给short类型,容易丢失精度)
s+=5 编译不会失败(只做赋值运算,自动完成了强制转换的操作)
int a,b,c; (同时定义abc)
a=b=c=5 (同时赋值为5)
|