二、Java 基础语法学习

1、标识符
2、变量
3、进制转换
4、运算符
5、流程控制语句(顺序,选择)

1、标识符

	标识符 : 常量,变量,方法,类和包的名称
	 规则: 由0到9之间的数字,字母,下划线,或美元符号 $ 组成 (汉字也行),不能以数字开头
	 不能与关键字相同 ,标识符严格区分大小写
	 
	 正确的 cat ,Cat user_name , $UserName , _name , publicName 
	 错误的 9cat , pass word , public, true , user#name , #name 

2、变量

在程序执行期间,值可以改变的数据,在内存中的开辟一个空间,把它放在该空间中

--名称: 	用标识符来命名
--类型: 对于不同类型的变量,在内存中的形式是不同的
--初始值: 变量在使用前必须赋值
     //例子,使用未初始的变量,出错
  	 public static void main(String [] args){
			 	 int age;
			 	 int newAge=age+10;  //编译出错 可能尚未初始化的变量,因为 age 没初始化
			 	 System.out.println("再过10年 ,年龄变成了"+newAge );
			 }
			 
--作用域: 变量在不同的程序块中的生命周期

2.1 变量的类型
		从大方向上分 两 类
		
		基本数据类型  一共有8种
		  ==数值型
		  		--整型 (byte,short,int,long ) 
		  		--浮点型(float,double)
		  		   例子: float  pai =3.14  //出错 因为3.14 后面没有标识,所以它默认是double类型
		  		   
		  ==布尔型
		      boolean  //取值只有 true ,false 
		  ==字符型
		      char  //只能装一个字符,汉字能装下(因为在java中,一个char占两个字节)  	char name='张'
		  
		  
		
		引用类型
		   -- 类 class
		   -- 接口 interface
		   ---数组 
		   
		   
2.1 基本数据类型的取值范围
    	== byte 一个字节 //8位有符号整数 取值范围在  -128  127 之间
    	== short 2 个字节 //16位有符号整数 -32768  32767  之间
    	== int 4 个字节 //32位有符号整数  -214783468 --  214783467 之间
    	== long 8 个字节 //64位有符号整数 
    	
    	== char 2 个字节 //16位unicode字符  char x=65, 如果打印x 得到 A 
    	
    	== float 4 个字节   32位浮点数
    	== double 8 个字节  64位浮点数
    	
    	== boolean 1 个字节 

 2.3 类型转换
    //例一
    byte a =10;
    a=a+5;   编译出错,因为编译的时候不能确定变量的值,计算结果提升为int型了
    
    //例二
    final int b=20;
    byte a=b;  编译成功 ,因为b声明成了常量,编译的时候能确定最终的值
    
    //例三
    'A' +2 =67    
    
     在进行赋值或运算的时候,要求参与运算的变量类型相同,否则要进行类型转换
     转换的方式有两种
     
     自动类型转换
        比如 byte a=10 ,int b=20;   b=a ;   //这里会进行自动类型转换
     
     强制类型转换 
     			int a=90;
						byte b=(byte)a;

3、进制转换

	常用的进制
	八进制   满8进一 用0开头
	十六进制  以0x开头,满16进一   0xF6Fd5f,  0xAAABBBB, 0X8888
	二进制  0B010101 , 0B0101-00110101-00011001;  //加 - 就是为了看着方便,至于加到什么地方无所谓
	十进制 
	
	
	计算机中所有的数据都是二进制表示的
	
	字符 'K' 的二进制数是多少 ?    System.out.println(Integer.toBinaryString('K')); 
	
  八进制 把二进制数,三位一组表示   1101010001001011 -> 1 101 010  001  001 011 - > 152113
  十六进制 把二进数 四位一组表示  1010100111001000101101 ->10 1010 0111 0010  0010  1101  2A722D
	
	进制转换:
	
	 == 十 进制转2进制  : 除 2 取余
	    8 -> 1000
	    9 ->1001
	    6 ->110 
	    
	 == 二进制转10进制:
	     110   ->    0*2^0  +1*2^1 +1*2^2
	     
	负数的表现形式
	  是正位的按位取反 +1 
	  -6 在内存中是如何存的
	  
		0000 0110   ->6
		
		1111 1001  按位取反
		
		        1
		---------------
		1111 1010    -6   负数的高位全是1 (因为是按位取反来得到的)
		
		//例子 
		 int a=128
		 byte b =(byte) a; 
		 最后b的值是多少 ?  10000000  //它是一128在内存中的表现形式

4、运算符

== 算术运算符
  需要注意的 除法
		int x=1500;
		x=x/1000*1000; 
		? x  //1000   对于整型来说,做除法运算,除后的结果,也是整型
		
  需要注意的 求余 (就是相除,求余数) 又叫取模
    8%5  = 3 
    2 % 5 =2 
   -2 %5 =-2
   
  需要注意的 自增和自减运算 ++  --
  问  ++b 和 b++有什么区别
  
  		int a=10;
				int b=10;
				
				a=b++;   //先进行的是 a=b ,然后 b再自增
				
				System.out.println(a); //10
				System.out.println(b); //11
				
				如果上面的表达式写成 a=++b ; 则最后 a的值是11,b的值也是 11
		
  
  字符串相加 
    String str="你好" + "中国人"; //你好中国人
    System.out.println("1+5 =" +1+5  ); //1+5 =15
    
  转义字符
  
   通过 \ 来改变后面的字符的含义
     \n //换行
     \b //退格
     \r //回车
     \t //相当于按下tab键
     
     	System.out.println("java 39期的学员\n你们辛苦了");
     	System.out.println("java 39期的学员你们 \t辛苦了");
	
== 赋值运算符

    //例一  可以
		int a=5;
		a=a+5;  
		
		//例二 
			byte a=5;
				a=a+5;  // 编译出错
				
			//例三 
			  byte a=5;
			  a+=5;  //可以,只做一次赋值运算,效率高
		 	
== 关系运算符	
		== != >=  instanceof   //一定要记住  instanceof 它是运算符,不是函数
		经过关系运算符运算返回的结果 是 boolean类型
		
== 逻辑运算符
		&  与
		|  或
		^  异或
		!  非
	  
	  与 就是参与运算的两边必须都为 1 结果才为1 
			1 0 ->0
			0 0 ->0
			1 1 ->1
			
			或 就是参与运算的两边只要有一边是1,结果就为1
			1 1-> 1
			1 0-> 1
			0 1-> 1
			0 0-> 0
			
			非 就是反来的取反
			1 ->0
			0 ->1
			
			异或 参与运算的双方,如果相同,结果为假,如果不同,结果为真
			1 0 ->1
			0 1 ->1
			1 1 ->0
			0-0 ->0
			
		&& 短路与  如果判断过程中,有一个条件不满足,则直接返回false,后面的条件就不判断了
		|| 短路或


== 位运算符
 ~ 
 &
 |
 ^  //一个数和另一个数进行两次异或,结果是这个数本身
 
 <<  左移 左移一次,相当于乘2  如何快速的计算 2*8   // 2<<3;
 >>  右移 右移一次,相当于除2 移出来的高位,原来是0就被0,原来是1就补1
 >>> 无符号右移 高位补0 
 
== 条件运算符 (三元运算符)
   int age=100;
	   int yanglaojin = age > 60  ? 10000 : 0;
	   System.out.println(yanglaojin);

5、流程控制语句(顺序,选择)

	 顺序结构
	 选择结构
	 循环结构
	 
	 == 选择结构
	 //例一
	  int age=50;
	
		if(age>20)    //if 后面的扩号中间,是条件表达式,返回的是true 或 false 
			System.out.println("可以考大学了");
			
		System.out.println("这句和上面的if没有有任何关系");
	     
	  //例二	
	 		  int age = 100;
				
				if (age > 60) {
					System.out.println("可以退休了");
				} 
				else {
					System.out.println("还要等几年");
				}
				
		//例三 
		    age>60 ? System.out.println("可以退休了"):System.out.println("还要等几年")  //这个写法不可以,出错,因为三元表达式是要用来进行赋值的
		    
		//例四
		     String str;
				 str= age>60 ?"可以退休了":"还要等几年";
				 System.out.println(str);
				 
	  //例五 输入一个月份,判断它属于哪个季度
	  		import java.util.Scanner;  //由于使用了 Scanner 这个类,要导包
			class Test
			{
				 public static void main(String [] args)
				 {	
						System.out.println("请输入一个月份");
						Scanner scan=new  Scanner(System.in);  
						
						int month=scan.nextInt();
						
						if(month>=1&&month<=3)
						{
							System.out.println("一季度");
						}
						
						else if(month>=4&&month<=6)
						{
							System.out.println("二季度");
						}
						else if(month>=7&&month<=9)
						{
							System.out.println("三季度");
						}
						else if(month>=10&&month<=12)
						{
							System.out.println("四季度");
						}
						
						else 
						{
							System.out.println("输入的月份错误");
						}
					
				 }
				 
		//例六 
				输入一个成绩
				0-20 分之间:这孩子完蛋了
				21-40 之间:这孩子太操心了
				41-60 之间:赶紧救救吧
				61-80 之间:祖国的希望
				81-100 之间:开什么玩笑,一定是抄的
				-------------------------------------------------------------------
				
	  //例七 嵌套
	  	  int age=100;
	
				if(age>0)
				{
					System.out.println("可以确定,这是一个存在过的人");
					if(age>10)
					{
						System.out.println("一定上过小学");
						if(age>60)
						{
							System.out.println("可以退休了");
							System.out.println("但退休金不高");
						}
					}
					else
					{
						System.out.println("估计还没过小学");
					}	
				}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值