JavaSE---基础语法

开发工具

常用的java开发工具有
IntelliJ IDEA
Eclipse

IDE(Integrated Development Environment )集成开发环境,是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具

注释

​ 对程序功能的说明,以某种特定符号作为标记,程序在运行过程中不会执行注释.

  1. //用于单行注释(ctrl+/)

  2. /*

    用于多行注释

    */(ctrl+shift+/)
    
  3. /**

    *文档注释,用于为类,方法(函数),属性 功能进行说明,可在调用时提示

     */
    

关键字

定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)
特点:关键字中所有字母都为小写
在这里插入图片描述
在这里插入图片描述

保留字

Java保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使用。自己命名标记符时要避免使用这些保留字 ( goto 、const)

标识符

Java 对各种变量、方法和类等要素命名时使用的字符序列称为标识符.

定义合法标识符规则:
1.由26个英文字母大小写,0-9 ,_或 $ 组成
2.数字不可以开头。

3.不可以使用关键字和保留字,但能包含关键字和保留字。
4.Java中严格区分大小写,长度无限制。
5.标识符不能包含空格。

Java中的名称命名规范:
包名:多单词组成时所有字母都小写:xxxyyyzzz
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ

JAVA变量

变量是程序中最基本的存储单元,程序执行中数值可变的.

先声明,再赋值,才能使用

变量是通过使用变量名来访问这块区域的.

变量要素包括变量名,变量类型。

Java程序中每一个变量都属于特定的数据类型,在使用前必须对其声明,声明格式为:
[修饰符] type varName [=value][,varName[=value]……];

例如:int i=0;

JAVA数据类型

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

基本数据类型:

1.数值型:

​ (整型):int (4) byte(1) short (2) long(8)

Java 各整数类型有固定的表数范围和字段长度,其不受具体操作系统的影响,以保证Java程序的可移植性。
在这里插入图片描述

 int x = 011;//8进制
        System.out.println(x);
        int y = 0x11;//16进制
        System.out.println(y);
        int z = 0b11;//2进制
        System.out.println(z);

在这里插入图片描述

Java语言的整型常量默认为int型,声明long型常量可以后加‘ l ’或‘ L ’ ,如:

​ (浮点型):float(4) double(8)

与整数类型类似,Java浮点类型有固定的表数范围和字段长度,不受平台影响。

Java 浮点类型有两种表示形式

十进制数形式,例如: 3.14 314.0

科学记数法形式,如 3.14e2 3.14E2

Java 浮点型常量默认为 double 型,如要声明一个常量为 float 型,则需在数字后面加 f 或 F ,

float f = 100.5323143525f;//单精度
        System.out.println(f);

        double d = 1000.5432152465326;//双精度
        System.out.println(d);

在这里插入图片描述

2.字符型:char(2)

char 型数据用来表示通常意义上的“字符”,char占2字节,字符用单引号括起来的单个字符,例如:
char c1 = 'a';
char c2 ='中';

char运算

char类型是可以运算的因为char在字符编码表中有对应的数值。在JAVA中,对char类型字符运行时,直接当

对应编码表的整数来对待。

char c='a'+1; 先将’a’提升为int,计算结果98,对应的字符是b。

 /*
            char表示一个字符
         */
        char c = 'a';
        char b = '中';
        //在程序中如何表示一个字符
        //编码表  a--97--二进制存储
        //char可以参与算数运算

        System.out.println(c);
        System.out.println(c+b);//20110
        /*
            ASCII 最早发明 只能表示英文字符
            GBK
            Unicode 只是用来存储不同国家的文字信息 万国码,不会产生乱码
            实际落地使用utf-8编码来具体实现 utf-8根据内容大小,自动调节占用的大小,1英文占1字节,汉字占3个字节
         */

3.布尔类型:boolean

boolean 类型适于逻辑运算,一般用于程序流程控制 。

boolean 类型数据只允许取值 true 或 false 。

不可以0或非 0 的整数替代false和true

引用类型:

类(class)接口(interface)数组([])

基本数据类型转换

boolean 类型不可以转换为其他的数据类型,其他7种可以互相转换。

1.默认转换

整形,字符型,浮点型的数据在混合运算中相互转换,转换时遵循以下原则:
容量小的类型默认转换为容量大的数据类型;数据类型按容量从小到大排序为:
byte,short,char->int->long->float->double
byte,short,char之间不会互相转换,他们三者在计算时首先会转换为int类型

2.强制转换

容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造成精度降低或溢出;

  public static void main(String[] args) {
        /*
           默认转换:
            小转大  直接转换  
         */
         byte a = 10;
         int i = a;
         long l = i;
         float f = l;
         double d = f;
         /*
           强制类型转换:
           大转小
           1.溢出 
           2.精度降低
          */
          int x = 10;
          byte y = (byte)x;
          float z = 7.5f;
          int  n = (int)z;
        System.out.println(y);
        System.out.println(n);
     //混合运算时,小容量会自动转为大容量计算
    int m = (int)z+x+y;
    int m1 = (int)(z+x+y);
    char c = 'a'-;/26/   int --默认转为-> char  byte  short
    System.out.println(c);
}

运算符

位运算符

在这里插入图片描述

package day02;
//位运算以二进制为前提
public class Demo2 {
    public static void main(String[] args) {
        int a = 6;
        //左右移动均说的是二进制
        System.out.println(a>>1);//除2
        System.out.println(a<<1);//乘2
        System.out.println(a>>>1);//无符号右移

        int x = 4;
        int y = 3;
        /*
        &
        0000 0100
        0000 0011
        0000 0000
         */
        System.out.println(x&y);//0
    }
}

在这里插入图片描述

算术运算符

public static void main(String args[]){
/*
算术运算符:  +,-,*,/,%,++,--
字符串连接运算符:+ 
*/
    int a =b + c;//算术运算符
    int s =a -c;
    int x =a*s;
    int y =a/s;
    int m =a%s;//取余 如:3%2=1
   System.out.println("结果是"+a);//+为连接符
    int i=10;
    int j =i++ +1;//先运算后自增j=11
    int p =++i +1;//先自增后运算p=12

在这里插入图片描述

比较运算符

  System.out.println(10>8);//true
    System.out.println(1<0);//false
	System.out.println(10>=10);//true
    System.out.println(1<=0);//false
    System.out.println(10==8);//false
    System.out.println(1!=0);//true
    /*
    关系(比较)运算符: >,<,>=,<=,==,!=
    比较运算符的结果都是boolean型,也就是要么是true,要么是false。
	注意:比较运算符“==”不能误写成“=” 。
    */

逻辑运算符

/*
逻辑运算符: !,& , |  , &&,||
*/
int a=10;
int b=20;
int c=30;
System.out.println(!true);//!-非,直接取反,结果为false
System.out.println(a==b&b==c);//false &-与,同真为真,一假则假
System.out.println(a==b&&b==c);//false &&-短路与,同真为真,一假则假,若第一个条件为false,则不执行后面的判断条件,直接输出false
System.out.println(a==b|b==c);//|-或,同假为假,一真则真,结果为false
System.out.println(a==b||b==c);//false||-短路或,同假为假,一真则真,若第一个条件为true,则直接判断为true,不再对后面的语句进行判断

赋值运算符

符号:=

把=右边的赋值给=左边的。

当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。支持连续赋值。
扩展赋值运算符: +=, -=, *=, /=, %=

/*
赋值运算符:  =  ,+ =,- =,* =,/ =
*/
byte b = 10;//10字面量默认int
int i=10;//把10赋给i
int i+=10;//i=i+10
int i-=10;//i=i-10
int i*=10;//i=i*10
int i/=10;//i=i/10

条件运算符

/*
语法:
        (条件表达式)? 表达式1:表达式2;
 为true,运算后的结果是表达式1;
 为false,运算后的结果是表达式2;

表达式1和表达式2为同种类型
*/
10>5?10:5;//10
10<5?10:5;//5

表达式的运算顺序

在这里插入图片描述

控制台输入

使用标准输入串System.in
使用Scanner取得一个字符串或一组数字
在新增一个Scanner对象时需要一个System.in对象,因为实际上还是System.in在取得用户输入。Scanner的next()方法用以 取得用户输入的字符串;nextInt()将取得的输入字符串转换为整数类型;同样,nextFloat()转换成浮点型;nextBoolean()转 换成布尔型。
例:

	import java.util.Scanner;
	public class Demo4 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入第一个整数");
        int num = scanner.nextInt();//IO阻塞 从控制台输入只能是整数 回车键 输入结束
        System.out.println("请输入第一个字符串");
        String s = scanner.next();
        System.out.println(num);
        System.out.println(s);
    }
}

​ 在使用Scanner对象时,需要在文件头带入 java.util.Scanner;
​ 写法为: import java.util.Scanner;

流程控制

if 条件结构

if条件结构是根据条件判断之后再做处理

条件表达式必须是一个返回布尔结果的表达式。
语句可以是用{}包含的语句块。

if

if ( 令狐冲Java成绩 > 90 ) {
       师父奖励令狐冲;
}

if else

if ( 令狐冲考试成绩 > 90 ) {
    System.out.print("师父奖励令狐冲");
       
}else {
     System.out.print("师父罚他闭关思过");
       
}
//多重if
 if  (x<1){
      System.out.print("x=0");
   } else if (x>1&&x<10){
      System.out.print("x在1-10之间");
   }else if (x>10){
      System.out.print("x是大于十的数");
   }

switch

多分支选择语句,根据表达式的值,来执行多个操作中的一个。

表达式可以是byte、short、int、char、枚举类型。JDK 7以后,可以使用String类型;
case语句后面只能使用常量表达式;
case后的值不能重复;
某个case分支如果没有提供break语句,则继续执行下一个case后的语句;
当表达式的值与任一case子句中的值都不匹配时,将执行default后面的语句;如果没有default子句,则程序直接跳出switch语句。

switch(month) {
	case 1:
	case 3:
	case 5:
	case 7:
	case 8:
	case 10:
	case 12:
		day=31;//1.3.5.7.8.10.12月有31天
		break;//跳出switch
	case 4:
	case 6:
	case 9:
	case 11:
		day=30;//4.6.9.11月有30天
		break;//跳出switch
	case 2:
		if(isLeapYear=year%4==0&&year%100!=0||year%400==0) {
			day=29;//闰年2月有29天
			}else {
			day=28;//否则2月有28天
		}
		break;
		default:
			System.out.println("输入错误");
			System.exit(0);
	}

如果判断的具体数值不多,而且符合byte、 short 、int、 char这四种类型。虽然两个语句都可 以使用,建议使用swtich语句。因为效率稍高。

其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。

循环

循环语句功能
在某些条件满足的情况下,反复执行特定代码的功能
循环语句的四个组成部分
循环变量的初始化
循环条件部分
循环体部分
循环变量的更新
循环语句分类

while 循环

while 语句为如下形式:
while(逻辑表达式){ 语句; … ; }
执行过程
先判断逻辑表达式的值。若=true.则执行其后面的语句,然后再次判断条件并反复执行,直到条件不成立为止

//最少一次都不执行
public static void main(String args[]) {
		int i=1;
		while(i<=20) {
			System.out.println("吃了"+i+"个包子");
			i++;
	}
   }

do/while 循环

while 语句为如下形式:
do { 语句; … ; } while(逻辑表达式);
执行过程
先执行语句,再判断逻辑表达式的值,若为true,再执行语句,否则结束循环。

//至少执行一次
public static void main(String args[]) {
		String answer="y";
		Scanner input = new Scanner(System.in)
			do {
				System.out.println("编写一道程序!");
				System.out.println("老师,我合格了嘛?(y/n)");
				answer=input.next();
			}while(!"y".equals(answer));
		}
		System.out.println("恭喜你通过测试!");
	}

for 循环

for 语句为如下形式: for(表达式1; 表达式2; 表达式3){ 语句; … ; }
执行过程 首先计算表达式1,接着执行表达式2,若表达式2的值 = true,则执行循环语句, 接着计算表达式3,再判断表达式2的值;依此重复下去,直到表达式2的值=false. public class Test {

public static void main(String args[]) {
     for (int i = 1; i <= 10; i++) {
            System.out.println(“i=" + i);
     }
    }

break & continue

break 语句用于终止某个语句块的执行。用在循环语句体中,可以强行退出循环;例如:

   int stop = 4;
    for (int i = 1; i <= 10; i++) {
       //当i等于stop时,退出循环
       if (i == stop){
                 break;
          }
       System.out.println(" i= " + i);
    }
 

continue 语句用在循环语句体中,用于终止某次循环过程,跳过循环体中 continue 语句下面未执行的循环,开始下一次循环过程;例如:

   public static void main(String args[]) {
		for(int i=0;i<=10;i++) {
			if(i==5) {
				continue;//下面的代码本次不会执行,直接进入下一次循环
			}
			System.out.println(i);
		}
	}

循环嵌套

1.将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for ,while ,do…while均可以作为外层循环和内层循环。
2.实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环。
3.结束外层循环
4.如果需要从多层循环跳出,则需要使用标签,定义一个标签,如out,然后在需要跳出的地方,用break out就行了.

//嵌套for循环
for(int i=1;i<=5;i++) {
			for(int j=1;j<=i;j++) {
				System.out.print("*");
			}
			System.out.println(" ");
		}
out:for(int i;i<10;i++){

	while(true){

		int j=i;

		break out;//t跳出内层循环到指定位置

	}

}

JAVA中的方法

Java的方法类似于其它语言的函数,方法是解决一类问题的步骤的有序组合,方法包含于类或对象中.
方法在程序中被创建,声明格式:
[访问权限修饰符 修饰符…] [返回值类型] 方法名(形式参数类型 参数名){
Java语句;… … …
[return 返回值;]
}

/*
修饰符:这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
形式参数:	在方法被调用时用于接收外界输入的数据。
实参:调用方法时实际传给方法的数据。
返回值:方法在执行完毕后返还给调用它的环境的数据。
返回值类型:事先约定的返回值的数据类型,如无返回值,必须给出返回值类型void。
*/
public class Admin {
	String name;
	int password;
	public void print() {
		System.out.println("姓名:"+name+"\t密码:"+password);
	}

}

public static void main(String args[]) {
		Admin a1=new Admin();//调用方法
		a1.name="张凯琪";
		a1.password=111111;
		a1.print();
public class Method {
    /*
    在类中定义方法,用来解决某种问题的步骤集合

    定义方法的语法
        访问权限修饰符 [其他修饰符][返回值类型]/void 方法名([参数类型 参数名]){
            方法体
            [return 值]
        }
     */
    public static void main(String[] args) {
      //创建方法所在类的对象
      Method method = new Method();
      method.printStar();
      Method.printStar();
      byte row = 10;
      method.printStar1(row,6);
      method.max(10,5);
    }
    public int max(int a,int b){
        return(a>b)?a:b;
    }
    /*
    定义一个有参的方法
     */
    public void printStar1(int row,int column){
    	 if(row==0||column==0){
            return;//在此处表示方法中止执行,不表示方法的返回值
        }
        for (int i = 0; i < row; i++) {
            for (int j = 0; j < column; j++) {
                System.out.println("*");

            }
            System.out.println();//换行
        }
    }
    /*
    定义打印*4行4列星形形状
     */

    public static void printStar(){
        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 4; j++) {
                System.out.println("*");

            }
            System.out.println();//换行
        }
    }
}

return语句

​ return语句用于从当前执行的方法中退出, 返回到调用该方法的语句处继续执行。
​ 有两种格式:
​ return 表达式; //将表达式的值返回
​ return; //不返回任何值,当方法说明中用void声明无返回值时, 可以使用这种格式,此类return语句有时可省略

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值