Java基础语法总结1

时间:2023-02-17 15:49:58

数据类型

数据类型分为基本数据类型和引用数据类型。

基本数据类型4类8种
整数类型 整数类型默认为int 类型 占用的字节数 范围
  byte 字节 1 -128~127
  short 短整型 2 -32768~32767
  int 整数类型 4  
  long 长整形 8  
浮点类型 浮点类型默认是double      
  float 单精度 4  
  double 双精度 8  
字符型

char

字符 2  
布尔型 boolean true或fales

1

 

注意:由于整数类型默认类型是int类型所以long类型的变量的后面要加上一个标记L;

变量

定义变量注意事项:

  1. 变量名不能为Java中的关键字。
  2. 不能以数字开头。
  3. 同一变量不能重复定义。
  4. 一行内只定义一个变量。
  5. 变量名要有实际的含义。
  6. Java严格区分大小写大小写不同的变量是两个变量。
  7. 每一个变量必须有初始值。

变量的计算中尽量使用同一种类型的变量进行计算。

不同类型变量之间的计算

   byte,short,char 三个之间相互不转换的,但是一旦参与运算,都默认转换转换成int类型。

强制类型转换:

      目标数据类型   变量名 = (目标数据类型)(变量值);

强制类型转换不推荐使用容易损失精度。

例题

byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;

这段赋值运算中b=b1+b2会编译失败,因为byte进行运算时会自动转化成int型变量,int型变量无法赋值给一个byte型的变量。

赋值运算中范围较大的变量不能赋值给范围较小的变量。如果有需要则要进项强制类型转化。

常量

常量在程序执行的过程中其常量的值不会发生变化。

字符串常量 “hello” 用双引号括起来
字符常量 ‘a’  ‘b’   ‘Q’ 用单引号括起来的单个内容,‘asd’(这种是错误的)
整数常量 100  
小数常量 23.234  
布尔常量 true/false  
空常量 null 在面向对象中,如果一个对象为null,需要加非空判断

标识符命名规则

标识符由英文大小写字母,数字,下划线组成。不能以数字作为开头。

字母全部小写  
类,接口 单个单词第一个字母大写 多个单词每个单词首字母大写
方法 单个单词字母全小写 多个单词第一个单词全小写其余首字母大写
常量 字母全部大写 多个单词全大写单词之间用_隔开

运算符

Java中的运算符、算术运算符、赋值运算符、比较运算符、逻辑运算符、三目运算符

 基本算术运算符

        +,-,*,/,%

扩展的算术运算符:
            ++或者--

比较运算符:

     >,>=,<,<=,==

基本的赋值运算符:=

扩展的赋值运算符:
     +=,-=,*=,/=,%=

    注意:扩展赋值运算符例如x+=1不等价于x=x+1。扩展赋值运算符中隐藏了强制类型转化的功能

当x为short类型时x=x+1会编译错误,而x+=1可以正常执行。

解决办法:

short x=1;
x=(short)(x+1)//强制类型转化

基本逻辑运算符

    &:逻辑与   |:逻辑或   ^(逻辑异或)  !(逻辑非)

        逻辑&: 有false,则false
        逻辑或|:有true,则true
        逻辑异或:^:相同则为false,不同则为true
        逻辑非!:非true则false,非false,则true,偶数个是他本身

扩展的逻辑运算符:
        逻辑双与:&&

        逻辑双或:||

注意:扩展逻辑运算符与基本类型运算符的不同是&&相比于&如果左边的表达式为false则不会执行右边的语句

实际开发中扩展的逻辑运算符使用的最多。

三目运算符

         (表达式)? true的结果:false的结果;

    首先判断表达式是否成立,如果比表达式成立,就执行true的结果,否则,false的结果;

输出语句

基本格式:

System.out.println("要输出的语句");

注意事项:

1、双引号“ ”内为字符串,双引号内不能嵌套双引号。

    在输出语句中字符串后面的加号为字符串拼接符。字符串+(字符串拼接符)任何数据=字符串

    比如以下语句执行后会输出  5+5=55。

System.out.println("5+5="+5+5);

2、变量输出时直接书写不加双引号,如:

int a=1;
System.out.println(a);

3、字符输出时使用单引号,如:

System.out.println('A');

4、多种格式一起输出时用+连接,需要注意字符串后面的加号为字符串拼接符,如:

int a=1;
	System.out.println("hello"+(5+5)+'A'+a);
输出为:hello10A1
5、正则表达表达式
     转义字符:
        '\t' 制表符
         'r'  回车符

         '\n' 换行

6、System.out.println();默认会换行,System.out.print();不换行。

键盘录入

键盘录入的步骤:
1)创建一个键盘录入对象

 Scanner sc= new Scanner(System.in) ;

        sc可以自己命名。

2)导包: import java.util.Scanner;         

        ctrl+shift+o 快速导包

3)接收键盘录入的数据

int number = sc.nextInt() ;

        数据类型可以更改但是不能接收char类型

4)输出数据

键盘录入字符串类型

String line = sc.nextLine() ;

例题:求两个数的最大值

package text01;
import java.util.Scanner;//导包
public class text {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in) ;//创建键盘录入对象。
		System.out.println("请您输入第一个数据:");
		int num1 = sc.nextInt() ;	//接收键盘录入的数据	
		System.out.println("请您输入第二个数据:");
		int num2 = sc.nextInt() ;
		int max = (num1 >num2)? num1:num2 ;
		System.out.println("您输入的最大值是:"+max);
		
	}
}

选择结构语句

if语句

基本格式:

if(条件表达式){
    语句;
}//当条件表达式中的条件成立时执行语句,否则不执行。
扩展格式:
if(条件表达式){
语句一;
}
else{
语句二;
}//当条件表达式中的条件成立时执行语句一否则执行语句二。
扩展格式2:
if(条件表达式1){
语句1;
}else if(条件表达式2){
语句2;
}else{
语句4;
}//先判断条件表达式一,不成立则判断条件表达式2,都不成立则执行else中的语句。

switch语句

基本格式

switch(表达式){
case 1:语句一;break;
case 2:语句二;break;
...
default:语句n;break;
 }
执行流程

先计算表达式中的值然后用case后面的的值跟表达式的值进行比较。如果相等则执行case后面的语句。如果都不相等则执行default后面的语句。

注意事项:

  1. case后面的break如果省略则执行当前语句后会继续执行下面的语句直到遇见break,造成case穿透。
  2. 如果没有break则一直将switch里面的语句执行完。
  3. switch后面的表达式可以为byte、short、int、char、枚举、string。枚举在jdk5以后支持。string类型在jdk7以后支持。
  4. case后面只能跟常量。
  5. case后面为冒号:
  6. default可以在语句中的任何位置。

case穿透并不是坏事,可以利用case穿透的特性完成一些任务。

//输入一个月份判断是一年中的什么季节。
package text01;
import java.util.Scanner;//键盘输入导包
public class text {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in) ;//创建键盘录入对象。
		System.out.println("请你输入月份的值:");
		int month = sc.nextInt() ;	
		switch(month) {
		case 1:
		case 2:
		case 12:
			System.out.println("冬季");break ;
		case 3:
		case 4:
		case 5:
			System.out.println("春季");break ;
		case 6:
		case 7:
		case 8:
			System.out.println("夏季");break;
		case 9:
		case 10:
		case 11:
			System.out.println("秋季");break ;
		default:
			System.out.println("没有该月份...");
			break ;
		}
	}
}

循环结构语句

while循环

while(循环条件语句){
循环体语句;
步长语句;
}

执行流程:当循环条件语句满足时执行循环体语句、执行步长语句。继续判断循环条件语句是否满足。

当条件不满足时循环结束。

注意:

  1. break语句可以控制跳出循环。(break不能单独使用。一般用于循环语句和switch语句)
  2. continue语句可以结束本次循环进入下一次循环。(continue语句也不能单独使用多用在循环语句。)
  3. break和continue通常搭配选择结构语句使用。
  4. 循环条件语句如果为true则进行无限循环,直到遇到break为止。
  5. 通常用于不知道具体的循环次数。

do while语句

do{
循环体语句;
步长语句;
}while(循环条件语句);

注意:do while语句和while语句的区别是do while语句循环体部分至少执行一次后再判断循环条件是否成立。


for语句

for(初始化条件;循环条件;步长语句){
循环体语句;
}

执行流程:

  1. 初始化循环条件变量。
  2. 判断变量是否满足循环条件语句。
  3. 执行循环体语句
  4. 执行步长语句。

注意事项:

  1. 初始化语、循环条件语句和步长语句之间用 ; 隔开。
  2. 循环条件为boolean类型
  3. 如果for循环的()内不写条件如:
    for(;;){
    循环体语句;
    }
    则这个for循环为死循环。
  4. break语句和continue语句同样可以用于for循环,用法同while循环。
  5. for循环初始化条件中定义的变量在for循环结束后会被回收。定义的变量仅能用于for循环。
  6. 从内存占用角度考虑for循环优于while循环,实际开发中根据需要使用。for循环多用于知道具体的循环次数。
  7. for循环可以嵌套for循环。