2. java基本语法

1.标识符:需要自定义名称都叫标识符.eg:类名,变量名,方法名

1.1:标识符只能由字母,数字,_,$组成.
1.2:标识符只能以字母,_,$开头.
1.3:标识符可以包含数字,但是不能以数字开头.
1.4:标识符除了_,$以外,不能包含其他任何特殊字符.
1.5:标识符不能用java中关键字.
1.6:标识符按义取名.
帕斯卡命名法:标识符可以由一到多个单词组成,每个单词首字母大写,其他的写.类名采用帕斯卡命名法.eg:StudentName
驼峰式命名法:标识符可以由一到多个单词组成,第一个单词首字母小写,其他单词首字母大写,其他小写.一般情况下,变量名和方法名采用驼峰式命名法.eg:studentName

3.变量:在内存中开辟一块空间存值.

3.1:变量三要素:变量名(自定义),变量类型,变量值.
3.2:变量必须先声明赋值,才能使用.
3.3:=:赋值号,将等于号右边值赋给左边.
3.4:变量声明和赋值的语法:
	3.3.1:先声明变量,再给变量赋值
		声明变量的语法:  数据类型  变量名;
		给变量赋值的语法: 变量名=变量值;
		注意:声明多个数据类型相同变量, 数据类型 变量名1,变量名2;
		eg://声明变量
	String name;
	//给变量赋值
	name="张三";
	3.3.2:声明变量的同时赋值: 数据类型  变量名=变量值;
		eg://声明变量的同时赋值
	int age=18;
	float height=1.88f;
	double weight=100.5;
	char sex='男';
	boolean maritalStatu=true; 
3.5:变量分类
	3.5.1:按数据类型分:
			基本数据类型的变量:只要变量的数据类型是byte,short,int,long,
								float,double,char,boolean
			引用数据类型的变量:变量的数据类型是数组,类,接口等
	3.5.2:按声明位置分:
			局部变量:在方法中声明的变量叫局部变量,局部变量在声明它的大括号中有用.
			成员变量:在类中,方法外面声明的变量叫成员变量.
			注意:局部不赋值,没有值,就不可以直接用;成员变量不赋值,系统会给它分配默认值.
3.6:在同一个作用范围内不能声明相同的变量名.(在同一个大括号中不能声明相同变量名);
3.7:常量:在内存中开辟一块空间存固定值.常量一生中只能赋一次值.
		常量声明语法:final 数据类型 常量名=;(常量名全大写)
		eg://声明常量的同时赋值
			final double PI=3.14;
		   //先声明常量再给常量赋值
			final double NUM;
			NUM=3.15;

4.java中常用数据类型
在这里插入图片描述

4.1:基本数据类型
	byte:8个字节
	    最小值是 -128(-2^7);
        最大值是 127(2^7-1);
   short:16个字节
        最小值是 -32768(-2^15);
        最大值是 32767(2^15 - 1);
    int:32个字节
       最小值是 -2,147,483,648(-2^31);
       最大值是 2,147,483,647(2^31 - 1);
    long:64个字节
       最小值是 -9,223,372,036,854,775,808(-2^63);
       最大值是 9,223,372,036,854,775,807(2^63 -1); 
    float:32个字节
         4个字节单精度,精度是8位有效数字   
    double: 64个字节
         8个字节双精度类型,精度是17位有效数字  
    char:
       ' ' 用来标识它们引用数据的开始和结束,char内型用到的是ascll编码,java用到的是Unicode;两个char型运算时,自动转换为int型;当char与别的类型运算时,也会先自动转换为int型的,再做其它类型的自动转换
基本类型向类类型转换     
4.2:引用数据类型
	存1个到多个字符:String  注意:字符串类型的值要加双引号.
eg:public static void main(String[] args){
	//声明变量
	String name;
	//给变量赋值
	name="张三";
	//声明变量的同时赋值
	int age=18;
	float height=1.88f;
	double weight=100.5;
	char sex='男';
	boolean maritalStatu=true; 
	//输出变量
	System.out.println(name);
	System.out.println("年龄为:"+age);//+起连接作用
	System.out.println("身高:"+height+",体重:"+weight+",性别:"+sex);
	System.out.println("婚否:"+maritalStatu);
}

5.数据类型转换
在这里插入图片描述

5.1:自动类型转换: 语法: 大数据类型 变量名=小数据类型的变量;
	兼容:类型要能相同或相近.
	5.1.1:两种数据类型要兼容.
	5.1.2:小类型转换为大类型.
	eg://声明变量同时赋值
	int num1=11;
	//声明变量赋值,自动类型转换
	double num2=num1;
	//自动类型转换
	float num3=num1;
	float num4=22;
5.2:强制类型转换: 语法:小数据类型 变量名=(小数据类型)大数据类型的变量;
	注意:强制类型转换有风险.
		5.2.1:两种数据类型要兼容.
		5.2.2:大类型转换为小类型.
		eg://声明变量同时赋值
			double num5=3.14;
			//强制类型转换
			int num6=(int)num5;
	5.3:char与int之间相互转换:因为ansi码表,char类型字符都有对应int数字
		5.3.1:char转换为int,发生自动类型转换
			eg://声明变量同时赋值
				char c1='a';
			  //自动类型转换:小类型转换为大类型,两种类型有ansi码表对应
		         int num8=c1;//97
		5.3.2:int转换为char,用强制类型转换
			eg://声明变量同时赋值
				int num9=100;
				//强制类型转换:大类型转换为小类型,两种类型有ansi码表对应
				char c2=(char)num9;
	5.4:算术式子中有一个为大类型,整个式子结果提升为大类型.
			eg:int a=10;
			    double result=a+9.8;
	5.5:如果强制转换的变量值超过目标类型取值范围,在取值范围内转圈圈
		如果取值范围包含0:结果=值-max+min-1  
		如果取值范围不不包含0:  结果=值-max+min
		byte a=(byte)200;//-56

6.运算符:

	6.1:算术运算符:+,-,*,/,%,++,--
		6.1.1:-,*与数学中使用是一样的.
		6.1.2:+:如果+左右两边是数字,+起算术运算,求和.
			  +:如果+左右两边有一边是字符串,+起连接作用
		6.1.3:/:作除法运算.注意:在Java中,整数=整数/整数
			eg://+作算术运算作用
		System.out.println(1+1);//2
		//两个+起连接作用
		System.out.println("1"+1+1);//111
		//第一个+起算术作用,第二个+起连接作用
		System.out.println(1+1+"1");//21
		//在Java中,整数=整数/整数
		int num1=10/2;//5
		int num2=10/3;//3
		//在算术式中,有一个数为大类型,结果就提升为大类型
		double num3=10/3.0;//3.33
		注意:不要用浮点数做运算
		 double a=0.1+0.2;
        double b=0.3;
        if (a==b){
            System.out.println("asda");
        }
6.1.4:%(求余运算/取模运算符):求两个数的余数.
		eg:int num4=10%3;//1
		//给你一个随机四位整数,求这个四位数的各位数字之和,
		//eg:int num=1234; sum=1+2+3+4;
		int num5=4567;
		int gewei=num5%10;//4
		int shiwei=num5/10%10;//4
		int baiwei=num5/100%10;//2
		int qianwei=num5/1000;//2
		int sum=gewei+shiwei+baiwei+qianwei;
6.1.5:++:在自身基础上加1.--在自身基础上减1.
	  int num=8;
	  ++num:num先自身加1,再参加运算
	  num++:num先执行运算,再自身加1
	  --num:num先自身减1,再参加运算
	  num--:num先执行运算,再自身减1
	eg:int a=8;
		int result1=(a++)+(++a)+(--a)+(a--);
		//分析:result1=8+(++a)+(--a)+(a--);  a=9
		//result1=8+10+(--a)+(a--);   a=10
		//result1=8+10+9+(a--);  a=9
		//result1=8+10+9+9;  a=8	
		System.out.println("result1="+result1+",a="+a);//36,8	
6.2:关系运算符:>,<,>=,<=,!=,==
	6.2.1:>,<,>=,<=,!=与数学中用法一致.
	6.2.2:==:在java中表比较.	
		eg:double luoheight=1.8;
		double myheight=1.6;
		boolean result1=luoheight==myheight;
		int a=8;
		int b=a;
		int c=b=a;
6.3:逻辑运算符:且(&,&&),或(|,||),非(!)
	6.3.1:非(!):非真即假,非假即真.
	6.3.2:且(&,&&):且左右两边的式子全真,结果为真;有一边为假,结果为假.
			&(普通且):&两边的式子都会判断执行.
			&&(短路且):&&左边式子为假,右边式子不会判断执行;&&左边式子为真,右边要判断执行(有假就结束判断)
	6.3.3:或(|,||):或左右两边的式子有一个为真,结果为真;两边式子全为假,结果为假.
			|(普通或):|两边的式子都会判断执行.
			||(短路或):||左边式子为真,右边式子不会判断执行;||左边式子为假,右边要判断执行.(有真就结束判断)
	      注意:一般情况下,用短路且和短路或.
		  eg:int a1=8;
		//boolean result1=++a1<8&a1-->=8;
		//boolean result2=++a1<8&&a1-->=8;
		//boolean result3=++a1>8|a1-->=8;
		boolean result4=++a1>8||a1-->=8;
6.3.4:^(抑或):^左右两边值是boolean类型.^左右两边相同为false,不同为true
		  eg://^左右两边相同为false,不同为true
				boolean result5=true^false;
6.4:赋值运算符:=,+=,-=,*=,/=
	6.4.1:=:将等于号右边值赋给左边.
	6.4.2:+=,-=,*=,/=:将赋值号左边的值加上/减去/乘以/除 右边的数据得到的结果赋给左边.
			eg:byte b1=1;
			       b1+=1; //b1=(byte)b1+(byte)1
6.5:运算符优先级:()>算术运算符>关系运算符>逻辑运算符>赋值运算符
6.6:位运算符:>>   <<  >>>
  int num=10;
  int v = num <<1;
  相当于num*2也相当于二进制向右移动一位
   int v = num >>1
  相当于num除以2也相当于向左移一位
   int num= -10;
  注意负数在线工具测试不出,可以使用方法去测试
  Integer.toBinaryString
  https://tool.lu/hexconvert/   在线工具

7.(扩展)n进制:逢n进1

解释:2^1  等价于2的一次方
	 2E1  等价于2乘以10的一次方
	 2E-1  等价于2乘以10的-1次方
7.1:十进制转为n进制:将十进制数用短除法,除到商为0,再将余从下向上写就是结果.
7.2:n进制数转换为十进制:将n进制的数从右边到左边: 
		右边第一个数*n^0+右边第二个数*n^1+右边第三个数*n^2...	 
十进制   二进制(ob)    八进制(0)     十六进制(0x)
 1			0b1			01			0x1
 2			0b10			02			0x2
 9			0b1001       011			0x9
17			0b10001		021			0x11
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值