java基本语法

Java基础语法

第一节:标识符、标识符命名规范、关键字、保留字

1.1 什么是标识符
Java对包、类、方法、参数和变量等要素命名时使用的字符序列称为标识符。
1.2 标识符的命名规则
1. 由字母(含英、中、日、俄等)、数字、下划线(_)和美元符号($ 音:dollar)组成。
2. 不能以数字开头。
3. 区分大小写。
4. 长度无限制。(一般不要超过15个字符)
5. 不能是Java中的保留字和关键字。
1.3 标识符命名习惯
1. 标识符命名习惯:见名知意。age  address  name  sex
2. 变量名,方法名,参数名: 首字母小写,如果多个单词组成,第一个单词首字母小写,剩下的单词首字母大写(驼峰式命名法)
3. 类名:单词首字母大写,多个单词组成每个单词首字母大写(帕斯卡命名法)    

[外链图片转存失败(img-uSV59W5W-1562642482234)(images/001.jpg)]

1.4 关键字、保留字
关键字:Java中有一些赋予特定的含义,有专门用途的字符串称为关键字(keyword)。全部为小写
保留字:没有定义用途,但保留备用。goto、const

[外链图片转存失败(img-cD4okAf4-1562642482235)(images/guanjianzi.png)]

第二节:常量、变量
2.1常量:常见的数据(也称为数据常量),程序运行中固定不变的数据

整型常量(int):123 、100、200、250、500 int

  Java语言整型的三种表示形式: 
  十进制整数:如12, -314, 0,8,7。 
  八进制整数:要求以0开头,如0127表示八进制的127 。
  十六进制数:要求0x或0X开头,如0x1df3。

浮点数常量(小数) :3.14 float …
字符常量:’a’ char
布尔(逻辑)常量:true、false boolean
字符串String常量:“a”、“abc”、“hello world”, “”
null常量:表示的引用为空对象

2.2 变量: 保存程序执行中数据的一块存储空间
变量其实是内存中的一块存储区域,使用变量名来访问这块区域。因此,每一个变量使用前必须要先声明,然后必须进行赋值(填充内容),才能使用,变量中存储的数据就是常量。

[外链图片转存失败(img-qoKwxfGR-1562642482235)(images/002.jpg)]

2.3 变量的声明和初始化
变量的声明格式:
 1. 先声明,再赋值(初始化)
 	数据类型  变量名; 
 	变量名 = 变量值;
 	举例:int i; 
 		 i=100;
 2. 声明同时赋值
 	数据类型  变量名 = 变量值;
 		int j=20;
上机练习:

练习1:银行账户存储1000元,年利率是0.05,计算一年后账户余额?

​ 要求:使用变量保存数据

练习2:使用变量存储数据,实现个人简历信息的输出

​ 姓名,年龄,工作年限,技术方向、兴趣爱好

​ 要求:使用变量保存数据

2.4 变量的分类
1. 按所属的数据类型划分:
  基本类型变量:持有原始值。(原始数据类型)
  引用类型变量:持有引用值。(某个对象的引用,不是该对象本身)String 字符串
2. 按被声明的位置划分:
  局部变量:方法或语句块内部定义的变量
  成员变量:方法外部、类的内部定义的变量
2.5 局部变量和成员变量的区别
1. 声明的位置不同:
 局部变量的作用域就是它所在的方法或语句块
 成员变量的作用域是整个类体。
2. 是否拥有默认值:
 成员变量有默认值
 局部变量没有默认值	
第三节:数据类型

Java数据类型可分为两大类:基本数据类型引用数据类型

基本数据类型:byte、short、int、long、float、double、char、boolean

引用数据类型:类、接口、数组、枚举(后面讲解)、注解

[外链图片转存失败(img-hZnSBD2v-1562642482236)(images/004.jpg)]

3.1 基本数据类型:

整数型---- byte(字节), short(短整型), int(整型), long(长整型)

浮点型---- float(单精度浮点型), double(双精度浮点型)

字符型---- char

布尔型---- boolean

3.2 基本数据类型的存储
Java中所有的基本数据类型都有固定的存储范围和所占内存空间的大小,而不受具体操作系统的影响,以保证Java程序的可移植性 
byte: 1个字节 ,范围 -128127
short: 2个字节 ,范围 -3276832767
int4个字节 
long :8个字节
float:4个字节 -3.40E+38 ~ +3.40E+38   有效位数7-8double:8个字节 -1.79E+308 ~ +1.79E+308  有效位数15-16float: 1位符号位 8位指数 23位尾数
double: 1位符号位 11位指数 52位尾数
floatdouble存储都是近似值存储
char:2个字节  0-65535   65536个字符
boolean:不确定
3.3 整数型
Java语言的整型数值默认为int型,如:int i = 3;
要声明long型可以加‘l’或‘ L’,如:long  l = 3L;
注意:在数值超过int的表述范围时(2147483647),需要加上l/L对long赋值
3.4 浮点型
float: 单精度浮点数(精度7,8位) 4个字节
double:双精度浮点数 (精度15,16)  8个字节
Java浮点类型常量有两种表示形式
十进制数形式,必须含有小数点,例如:
3.14       314.0      0.314 
科学记数法形式,如
3.14e2      3.14E2      314E2 
Java浮点型常量默认为double,如要声明一个常量为float型,则需在数字后面加f或F,如:
double  d = 3.14; float  f = 3.14f;

注意:float double存储的数据都是近似值。
3.5 字符型
char型数据用来表示通常意义上“字符”
char c = 'A';  char c2= '好';
Java字符采用Unicode编码,每个字符占两个字节,因而可用十六进制编码形式表示(Unicode是全球语言统一编码)
char  c1 = '\u0061';//相当于’a’
char c2=97;//ASCII美国标准信息交换码,相当于’a’
Java语言中还允许使用转义字符'\'来将其后的字符转变为其它的含义:
char c2 = '\n'; 

[外链图片转存失败(img-2H6E1m2r-1562642482236)(images/zhuanyi.png)]

//    \ 转义字符   可以将后面的n 转义成为 换行的操作
System.out.print("i的值= "+i+"\n");
System.out.print("y的值 = "+y);
System.out.print("f的值 = "+f);
System.out.println("c的值 = "+c);

// \t 水平制表符 
System.out.print("99\t98\t97\t96");
System.out.print("你好\"你好");
System.out.print("你好\\你好");
3.6 布尔类型
boolean类型适于逻辑运算,一般用于程序流程控制 
boolean类型数据只允许取值truefalse,不可以用0或非0的整数替代truefalse。

示例:
boolean  b = false;
boolean c = true;
3.7 Java数据类型总结

[外链图片转存失败(img-wcrDTYbw-1562642482236)(images/003.jpg)]

3.8 基本数据类型的转换
基本数据类型之间的转换分为以下两种:
	*自动类型转换
	*强制类型转换
	*boolean 类型不能转换成任何其它基本数据类型。

2. 自动类型转换:数据类型取值范围小的转为取值范围大的
    * byte ---> short--->int--->long--->float --->double
    * char---> int
    * byte,short,char三者在计算时会转换成int类型  (了解)
    * int整型常量和字符常量在合理范围内可以直接赋值给 byteshortintchar (了解)
    
    上机练习1:
        某班第一次Java考试平均分81.29,第二次比第一次多2分,计算第二次考试平均分。
		
	* 如果一个操作数为double型,则整个表达式可提升为double型。
	
	上机练习2byte b1=10;
		byte b2=20;
		byte b3=b1+b2; //有问题吗?

3. 强制类型转换:数据类型取值范围大的 转为 取值范围小的. 需要加强制转换符,也就是(要转换的数据类型)。
    long l = 100L;
	int i = (int)l;
    但有可能造成精度降低或数据溢出,使用时要小心。
    
    上机练习:
    去年Java所占市场份额是20,今年增长的市场份额是9.8,求今年所占份额?
    int beforeyear=20;
	int year=(int)(beforeyear+9.8);
    

​ [外链图片转存失败(img-jxTDMA9H-1562642482237)(images/zhujuzhuanhuan.png)]

第四节:运算符和表达式
4.1 运算符的分类
1.算术运算符:+-*/%++--
2.赋值运算符:=+=-=*=/=%=
3.关系运算符:><>=<===!=
4.逻辑运算符:!&|^&&||
5.位运算符:&|^~>><<>>>(了解)
6.字符串连接运算符:+
7.三目运算符 ?:  
4.2 算数运算符:
描述运算符运算符描述
+%求余、取模
-++自增
*自减
/

上机练习1 : 有一个三位数,求十位上 的数字   
// 123    2 
int a = 123;
int b = a/10%10;
//		123/10 12%10   2 
int c = a%100/10;
上机练习2int d = 5;
System.out.println((d++));// 自身加1 
System.out.println((d));// 自身加1 
		
int e = d++ + 6;
System.out.println(" =e "+ e);// 自身加1 

// --   放在前面是先自身减一  在参与运算
//     放后面   先参与运算   在自身减一
int f = d-- + 6;
System.out.println(" f =  "+ f);// 自身加1 

byte z = -128;
byte w = --z;// ++  在临界值不会报异常,赋的值是在取值范围内转圈 
System.out.println("w=  "+ w);// 自身加1 	
4.3 赋值运算符:
运算符描述运算符描述
=赋值 比如:int i=10;/=除等于
+=加等于%=模等于
-=减等于
*=乘等于
int  i = 34;
//i = i + 45;
i+=45;	
i-=45;
        
// i = i -45;
i*=45;
i/=45;
i%=45;		
System.out.println("i= "+ i);
4.4 关系运算符:
运算符描述运算符描述
==相等于<=小于等于
!=不等于>=大于等于
<小于
>大于
boolean b = 3>=3; // 关系运算符 最终的结果都是boolean类型的
boolean b2 = 3==2; // == 判断等号两边是否相等  如果相等就是true
boolean b3 = 3!=2; // != 判断等号两边是否不等   如果不等就是true

System.out.println(b3);	
4.5 逻辑运算符:

逻辑运算符用于对boolean型数据进行运算,运算结果总是boolean型

运算符描述运算符描述
&逻辑与&&短路与
|逻辑或||短路或
^异或
逻辑非
public static void main(String[] args){
		//&逻辑与  或
		System.out.println(true&true);
		System.out.println(true&false);
		System.out.println(true|true);
		System.out.println(true|false);

		System.out.println(!true);
		//异或  : 不相同为真,相同为假
		System.out.println("-------------------");
		System.out.println(true^false);
		System.out.println(true^true);
		System.out.println(false^false);
		// && 短路 与
		System.out.println("***************");
		int num1=10;
		int num2=5;
		boolean b=num1<num2 && num1++>100; //num1<num2  false
		System.out.println(b);
		System.out.println(num1);
		//|| 短路或 
		boolean b2=num1>num2 || num1++>100;
		System.out.println(b2);

		System.out.println(num1);		
	}
4.6 位运算符(了解)
运算符描述运算符描述
&按位与>>右移
|按位或<<左移
^按位异或>>>无符号右移
~按位取反
4.7 字符串连接符 +

如果字符串和基本数据类型变量、常量连接以后,结果变成了字符串。

System.out.println("Hello"+"World!");
System.out.println("Hello = "+ 5);// 字符串和基本数据类型变量 常量连接以后 都变成了 字符串
System.out.println("Hello = "+ 5+ 8);
System.out.println(5+"");
4.8 三目运算符 ? :

X ? Y : Z

X为boolean类型表达式,先计算x的值,若为true,整个三目运算的结果为表达式y的值,否则整个运算结果为表达式z的值。

示例:

//X ? Y : Z
// 1 X 必须是boolean类型表达式
// 2  Y Z 必须数据类型保持一致

int score = 99;
//boolean falg = score>80;
String str = score>80? "非常优秀" : "优秀";
char c = '男';
int i = c=='男'? 5 : (int)(4.0);
//  y 和  z  最好是保持数据类型一致
//  如果不一致  也必须保证 接收的  变量能够存储  y和  z的 数据类型
		
System.out.println(i);
// 需求: 大于90输出"非常优秀“,大于等于60”输出及格“,否则小于60输出”下个班见“
String str2 = score>90?"非常优秀":score>=60?"及格":"下个班见";
System.out.println(str2);
4.9 运算符的优先级
运算符结合性
[ ] . ( ) (方法调用)从左向右
! ~ ++ –从右向左
* / %从左向右
+ -从左向右
<< >> >>>从左向右
< <= > >= instanceof从左向右
== !=从左向右
&从左向右
^从左向右
|从左向右
&&从左向右
||从左向右
?:从右向左
=从右向左
4.10 表达式
表达式:符合一定语法规则的运算符和操作数的序列 
      
            i % 10
            a = 0 
		   a==0      
            5.0 + a      
            (a - b) * c - 4      
            i < 30 && i % 10 != 0 
      
表达式的值和类型
* 对表达式中操作数进行运算得到的结果称为表达式的值 
* 表达式的值的数据类型即为表达式的类型 
第五节:扩展Scanner的简单使用
//Scanner的使用
//1 先导入Scanner  import java.util.Scanner; 
//2 创建对象   Scanner input=new Scanner(System.in);
//3 接收键盘录入的数据

import java.util.Scanner;
public class Demo11{
	public static void main(String[] args){
		Scanner input=new Scanner(System.in);
		//3.1接收字符串类型数据 next(),遇到空格截断 nextLine(); 遇到换行结束
		//String s=input.next();
		String s=input.nextLine();
		System.out.println(s);
		
		//3.2接收整型数据 nextInt();
		int num=input.nextInt();
		System.out.println(num);
		//3.3接收浮点数
		double d=input.nextDouble();
		System.out.println(d);
		
	}
	
}

需求:从控制台输入学员3门课程成绩(html,java,sql),编写程序实现

​ (1)Java课和SQL课的分数之差

​ (2)3门课的平均分

import java.util.Scanner;  //导入Scanner类
public class ScoreStat {
	 public static void main(String[] args) {
       	 //创建对象
		Scanner input = new Scanner(System.in);
		System.out.print("htmls的成绩是:");
		int html = input.nextInt();     //html分数
		int java = input.nextInt();
         int sql = input.nextInt();
		int diffen;       //分数差
		double avg;       //平均分
		 //省略输出成绩单代码……
		diffen = java - sql; //计算Java课和SQL课的成绩差
		System.out.println("Java和SQL的成绩差:" + diffen);
		avg = (html + java + sql) / 3;	//计算平均分
		System.out.println("3门课的平均分是: " + avg);
	 }
}
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值