一、Java语言基础
01.Java语言基础(常量的概述以及使用)
1.概念:常量就是在程序的执行过程中其值不发生改变的量。
2.分类:Java中常量的分类。
a.字面值常量。(1)字符串常量:使用“ ”(双引号)括起来的内容。
(2)整数常量:所有的整数。
(3)小数常量:所有的小数。
(4)字符常量:使用' '(单引号)括起来的内容。
(5)布尔常量:只有true和false。
(6)空常量:null(学习到数组方面的时候会进行说明)。
b.自定义常量(面向对象是进行补充说明)。
02.Java语言基础(不同进制数据的表现形式以及转换)
1.进制:就是进位制,人们规定的一种进位方法,对于任何一种进制--x进制,就表示某一位置上的数运算时逢x进一位。
2.不同进制的数据表现形式:
a.二进制:由0,1组成。以0b开头
b.八进制:由0,1,…7组成。以0开头
c.十进制:由0,1,…9组成。 整数默认是十进制的
d.十六进制:由0,1,…9,a,b,c,d,e,f(大小写均可)。 以0x开头(x可大写)
3.十进制到任意进制的转换:原理:除基取余,直到商为0,余数反转。基是十进制转换到x进制,x就是基。如下图:
03.Java语言基础(原码反码补码)
1.计算机中的所有数据运算都是采用补码进行的
2.原码:就是二进制定点表示法,最高位为符号位,“0”表示正数,“1”表示负数,其余位表示数值的大小。
3.反码:在正数中,反码与原码相同;负数的反码是对除了符号位之外的所有数字进行取反,即0变成1,1变成0.
4.补码:在正数中,补码与原码相同;负数的补码是在其反码的末位加1即可。
使用一个例子进行上述说明:
04.Java语言基础(变量的概述及格式)
1.概述:在程序执行的过程中,在某个范围内其值可以发生改变的量,变量其实是内存中的一小块区域。
2.定义变量:用来不断的存放同一类型的常量,并可以重复使用。
3.格式:数据类型 变量名 = 变量值 。
05.Java语言基础(数据类型的概述及分类)
1.概述:变量其实就是内存中的一小块区域,定义一个变量,就是开辟了一个内存空间,针对于不同的数据类型,所分配不同的内存空间。
2.Java中数据类型的分类:a.基本数据类型(四类八种):整数型:byte、short、int、long
浮点型:float、double
字符型:char
布尔型:boolean
b.引用数据类型:数组、类、接口。
06.数据类型之间的转换
1.默认转换(小范围->大范围)规则:a.boolean类型不能够转换为其他的数据类型。
b.byte、short、char类型进行转换时会首先转换为int类型,当有long-float-double类型参与的时候,会转换为相应的数据类型。
2.强制类型(大范围->小范围)转换:格式:目标数据类型 变量名=(目标数据类型)(被转换的数据);
使用强制类型转换可能会存在精度损失的问题。
calss Test
{
public static void main(String[] args)
{
byte i=1;
bytr j=2;
int n=i+j; //byte类型在运算时自动提升为int类型
byte m=(byte)i+j;//强制类型转换 int->byte
}
}
07.Java中字符与字符串参与运算
1.字符参与运算,实际上是字符对应的ASC||码进行运算,其中只需记得0是48,A是65,a是97,便可推出剩下的字符所对应的ASC||码值
2.字符串参与运算,实际上就是字符串的连接操作,但要注意连接顺序。
用下述代码进行说明:
class zifu
{
public static void main(String[] args)
{
System.out.println('0');//0 输出的是字符
System.out.println('0'+1);//49 字符使用+,0的ASC||码值为48,加1为49
System.out.println("Hello"+1);//Hello1 字符串使用加号,为连接作用
System.out.println("Hello"+1+'0');//Hello10 字符串的连接,形成的还是字符串。
System.out.println('0'+5+"Hello");//53Hello 先进行字符的加号
}
}
08.Java语言中的算术运算符的基本使用
1.运算符:对常量和变量进行操作的符号称为运算符。
2.分类:
a.算术运算符:+(加) ,-(减),*(乘), /(除), %(取余), ++(自增), --(自减)。
b.赋值运算符、比较运算符、逻辑运算符、位运算符、三目运算符。
注意:算术运算符中整数相除只能得到整数。如果想得到小数,必须使用浮点数。
/(除)是去除法运算中的商,%所获取的是除法操作里面的余数。
++(自增),- -(自减)运算:就是在原有数据的基础上+1或-1。
使用区别: 单独使用时,++(–)在前在后没有区别,就是+1(-1)
混合使用是,如果++在前,先+1在使用,++在后,则是先使用在+1。同理,- -的使用是一个道理。
如下程序,对算术运算符进行一个实际应用:
class YSF
{
public static void main(String[] args)
{
int a=2;
//++ -- 单独使用 ++ 在前在后没区别都是自身+1
a++;
++a;
--a;
a--;
System.out.println("a=:"+a);//a=:2
int j=1;
int num=++j;
System.out.println("j="+j); // j=2
System.out.println("num="+num); //num=2
int n=1;
int h=(n++)+4+(++n)+1+(n--)+10+(--n)+4;
System.out.println("n="+n); // n=1
System.out.println("h="+h); //h=27
}
}
09.Java语言中的赋值运算符的基本用法
1.赋值运算符:=,+=,-=,*=,%=
=就是将=右边的数据赋值给左边。
+=就是将左边和右边进行相加,然后将相加的和赋值给左边。
2.赋值运算符要求左边的数据必须为一个变量。
//看下面程序是否存在问题,如果有,指出并且说明理由
short s=1;s=s+1;//错误
short s=1;s+=1;//正确
第一种进行运算的话,short在参与运算时会自动转换成int类型,而int类型不能赋给short类型的s。第二种形式正确,这种“+=”的表达式可以强制转换成为int类型。
10.Java语言中的逻辑运算符的基本用法
逻辑运算符:&(并且) , |(或者) , !(非) , ^(异或) , &&(短路与) , ||(短路或)。
注意事项:逻辑运算符一般用于连接boolean类型的表达式。
使用方式:&(与):有false则为false。
|(或):有true则为true。
^(异或):相同为false,不同为true。
!(非):false为true,true为false。
&与&&的区别:虽然运算结果时一样的,但是在&&运算中具有短路效果,即&&左边表达式为false的话,右边的表达式将不会运行,输出结果false。
|与||的区别:同上,运行结果相同,但是||一旦左侧表达式为true的话,右边的表达式将不会运行,输出结果为true。
11.Java语言中的位运算符的基本用法
位运算符:&(与),|(或),^(异或) , ~(按位取反) , <<(左移) ,>>(右移) ,>>>(无符号右移)。
注意事项:位运算符是直接对于二进制的补码进行运算的。
用法:&:有0则0。 |:有1则1。 ^:相同为0,不同为1。 ~:按位取反 0变1,1变0
其中,^的使用特点:一个数据被另一个数据位异或两次,该数本身不变。
代码及运算结果如下:
class WYSF
{
public static void main(String[] args)
{
System.out.println(6&-8);//0
System.out.println(6|-8);//-2
System.out.println(6^-8);//-2
System.out.println(~6);//-7
System.out.println(6^8^8);//6
System.out.println(8^6^8);//6
}
}
手动计算过程:
<<(左移) ,>>(右移) ,>>>(无符号右移)使用方式:
class sdYSF{
public static void main(String[] args) {
/* <<运算符就是将<<左边的数字,换算成补码。以下述算术为例:6的补码是00000110,然后将6的补码进行左移两位,高位补0,
得到00011000,换算成原码为00011000,
其所对应的二进制数字为24。同理,-6>>2,将-6换成补码:11111010,然后补码右移两位,注意:**此时的高位补1**,得到11111110,
换算成原码:10000010,所对应的二进制数字为-2。
>>>(无符号右移):不带符号的右移,高位补1。以11>>>2为例,11的补码为:00001011,此时将补码右移,高位补0,得到00000010,
将该补码换成二进制数字为2.
*/
System.out.println(6<<2);//24
System.out.println(-6>>2);//-2
System.out.println(11>>>2);//2
System.out.println(11<<2);//44
System.out.println(80>>3);//10
/* 总结
<< : 把<<左边的数据乘以2的移动次幂 例如 11<<2 结果 11*2^2=44
>> : 把>>左边的数据除以2的移动次幂 例如 80>>3 结果80/2^3=10
*/
}
}
代码运行结果:
12.Java语言中的三元运算符
格式:(关系表达式) ? 表达式1 : 表达式2;
执行原则:计算关系表达式的值,如果为true,则运行第一个表达式,否则运行第二个表达式。
使用一个简单的例子演示三元运算符的使用,获取三个整数中的最大值。
class ThreeYSF
{
public static void main(String[] args)
{
int a=10;
int b=20;
int c=15;
int max=a>b?a:b; //10>20,运行结果为false,则将b的值赋予max,max=20
System.out.println(max);//20
max=max>c?max:c;//20>15,运行结果为true,则将max的值赋予max,max=20
System.out.println(max);//20
}
}