Java学习笔记——Java语言基础(一)

一、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
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值