javaSE第二章

第二章

一.注释

package day1;
/**
 * 注释
 */
public class Demo1 {
    // main是java程序的启动入口
​
    /**
     * eat() 吃饭
     */
    public static void eat(){
    }
​
    public static void main(String[] args){
        /*
        1.单行注释:“//” 快捷键:ctrl+/
        2.多行注释:"/*"  快捷键:ctrl+shift+/
        3.文档注释:"/** "  用于为类、方法、属性、功能进行说明,用于生成api文档
        */
        System.out.println();
    }
}

二.标识符

package day1;
​
/**
 * 标识符
 */
public class Demo3 {
    /*
    表示符命名规则:
        1. 语法强制要求
            大小写字母、数字 _  $
            数字不能开头
            不能是关键字,可以包含关键字
            区分大小写
            不能有空格
            长度不限制
        2. 约定
            类名首字母大写 多个单词 每个单词首字母大写  大驼峰 UserInfo
            包名全部小写 com.huawei com.baidu
            变量名、方法名首字母小写  userName  小驼峰
            常量全部大写  USER_NAME
            见名知意
     */
    public static void main(String[] args) {
​
    }
}

三.变量

package day1;
​
public class Demo4 {
    /**
     * main方法启动程序
     * 变量是程序中最基本的存储单元
     *使用变量前  先声名,赋值
     *      语法:数据类型 变量名
     *      使用前(运算)必须赋值的
     */
    public static void main(String[] args) {
        int a = 5;
        int b = 15;
        System.out.println(a+b);
        int c;
        if(b>a){
            c=b;
        }else
            c=a;
        System.out.println(c);
    }
}

四.数据类型

1.基本数据类型

使用8个关键字声明的8种数据类型:

整数

byte short int long

浮点

float double

布尔

boolean

字符

char

2.引用数据类型

Java 中除了8中基本数据类型,其他的都是引用数据类型

3.代码

package day1;
public class Demo5 {
    public static void main(String[] args) {
        /*
        byte类型 1字节(8bit)  -128 ~ 127
         */
        byte a = 127;
        /*
        short类型 2字节  32767
         */
        short b = 32767;
        /*
        int类型 4字节  2147483647
         */
        int c = 32768;
        System.out.println(Integer.MAX_VALUE); // Integer是int的包装类
        /*
        long类型 8字节  9223372036854775807
        Java中整数 字面量 默认是 int
        如果声明long类型, 字面量大于int范围 , 需要在末尾加“L”
         */
        long d =2147483648L;
        System.out.println(Long.MAX_VALUE);
​
//        int e = 0b11; //0b开头表示二进制
//        int e = 011;  // 0开头表示八进制
        int e = 0x11;  // 0x开头表示十六进制
        System.out.println(e);
        float f = 10.2F; // 使用float类型要加“f” or "F"
        double g = 15.32;
        boolean h = true;
        char i = 'g';
    }
}
package day2;
​
public class Demo1 {
    public static void main(String[] args) {
        /*
            浮点类型默认字面量是double类型
            声明float类型时,要在字面量后面+“f” or "F"
         */
        float a = 13.1234567891f;  // 4字节  单精度
        System.out.println(a); // 结果:13.123457
        double b = 15.123456789123456789;  // 8字节  双精度
        System.out.println(b); //结果:15.123456789123457
​
        /*
            布尔类型 boolean 逻辑值 只能用 true 和 false 两个关键字表示
         */
        boolean c = true;
        boolean c1 = false;
        boolean d = a<b;
        System.out.println(d); // 结果:true
    }
}
package day2;
public class Demo2 {
    public static void main(String[] args) {
        /*
            字符型: char,单个字符
            ‘’单引号表示,“” 双引号表示字符串,字符串也是由一个一个的字符组成的
            计算机之所以能够显示字符,底层会有一个对照表(编码表)
            字符 a ---> 97 --->二进制
            Java表示字符时,使用的unicode编码(包括全球各个国家的语言符号,万国码,兼容ASCII码)
                    utf-8 是一种边长的,用于在文件、传输时使用的具体编码表
                    可以根据编码值的大小,动态变化长度
                    表示英文字母时,1字节
                    表示中文字母时,3字节
         */
        char c ='a';
        String s = "abcd"; // 'a' 'b' 'c' 'd'
        System.out.println(c+0); // 结果:97 .字符型可以参与算数运算
        char c1 = '中';
        System.out.println(c1+0); // 结果:20013
​
    }
}

五.数据类型转换

package day2;
​
import sun.security.util.AuthResources_it;
​
public class Demo3 {
    public static void main(String[] args) {
        /*
            基本数据类型转换
            例外:boolean 不能与其他基本数据类型转换
            byte short int long float double char都是数值型
            容量小---> 容量大  默认会自动转换  byte,short,char--->int
            容量大---> 容量小  默认不能直接转换,但是可以强制类型转换:可能会出现问题:数据溢出,精度降低
            容量自小而大:
            byte,short, char -> int -> long -> float -> double
         */
        byte a = 56;
        short b = a;
​
        short s = 127;
        byte g = (byte) s;
        System.out.println(g);
​
        long e = 10; //8 64
        float f = e; // 4  32 由于小数二进制与整数在底层存储结构不同  4字节float表示范围大于8字节long
​
        float h = 10.5f;
        long i = (long)h;
        System.out.println(i); // 结果:10,精度降低了
​
//        long j = g + h; 在混合运算时,会自动的把容量小的转换为容量大的
​
    }
}

六.运算符

1.算数运算符

知识点

算术运算符 = - * / % ++ --

+加法 数值+数值,数值+字符

+数值+字符串 ,字符串+字符串

-*/ % ++ -- 数值+数值,数值+字符 ++ 自增1 -- 自减1

代码

package day2;
​
public class Demo4 {
    public static void main(String[] args) {
        /*
            算术运算符
            = -  *  /  %  ++  --
            +  加法  数值+数值,数值+字符
            +  字符串连接  数值+字符串 ,字符串+字符串
            -  *  /  %  ++  -- 数值+数值,数值+字符
            ++ 自增1
            -- 自减1
         */
        int a = 10;
        int b = 5;
        System.out.println(a + b); // 15
        System.out.println(a + 'a'); // 107
        System.out.println(a + "abc"); // 10abc
​
        System.out.println('a' - a); // 87
​
        int x = 5;
        x++; //x = x+1;
        ++x; //x = +1
        System.out.println(x); // 7
​
        int y = x++ + 1; // 在混合运算中,++在后,先运算,再++
//        int y = ++x + 1; //在混合运算中,++在前,先++,再运算
        System.out.println(y); // 8
//        System.out.println(y); // 9
    }
}

2.比较运算符

知识点:

比较运算符 ​ ==,!= > < >= <= ​ ==,!= 数值与数值,数值与字符,逻辑值与逻辑值,引用类型与引用类型

< >= <= 数值与数值, 数值与字符

代码

package day2;
​
public class Demo5 {
    public static void main(String[] args) {
        /*
            比较运算符
            ==,!=  >  <   >=  <=
            ==,!=  数值与数值,数值与字符,逻辑值与逻辑值,引用类型与引用类型
            >  <   >=  <=  数值与数值, 数值与字符
         */
        int a = 10;
        int b = 5;
        System.out.println(a>b);// true
        System.out.println(a<'b'); // 数值与数值,数值与字符
​
        System.out.println(a==b); // false
        System.out.println(a!=b); // true
​
        boolean c = true;
        boolean d = false;
        System.out.println(c!=d); //true
​
        String s = "abc";
        String s1 = "abc";
        System.out.println(s==s1); // true
        System.out.println(s!=s1); // false
    }
}

3.逻辑运算符

package day2;
public class Demo6 {
    public static void main(String[] args) {
        /*
            逻辑运算符  逻辑值与逻辑值
             &  |   !
             &&  ||  ^  短路与,短路或,逻辑异或
             &  |   !  ^ 既可以参与逻辑运算,也可以参与位运算
         */
        int a = 10;
        int b = 5;
        int c = 7;
        //false &,后面的表达式执行
        System.out.println(a>b & b<c); // true & true--> true
        System.out.println(a>b & b>c); // true & false--> false
        System.out.println(a<b & b>c); // false & false--> false
//        System.out.println(a<b & ++b>c); // false & false--> false
//        System.out.println(b);// 6
        //false &&,后面的表达式不执行
        System.out.println(a>b && b<c); // true && true--> true
        System.out.println(a>b && b>c); // true && false--> false
        System.out.println(a<b && b>c); // false && false--> false
//        System.out.println(a<b && ++b>c); // false && false--> false
//        System.out.println(b); // 5
        //true |,后面的表达式执行
        //true ||,后面的表达式不执行
​
        //!取反
        System.out.println(!(a<b));
​
        //^逻辑异或
        // 相同为false, 不同为true
        System.out.println(a>b ^ b<c); //true ^ true ->false
        System.out.println(a>b ^ b>c); //true ^ false ->true
        System.out.println(a<b ^ b>c); //false ^ false ->false
​
    }
}

4.赋值运算符

5.条件运算符

代码

package day2;
public class Demo7 {
    public static void main(String[] args) {
        /*
            赋值运算符
            =   右边的值赋给左边    注意数据类型   经常写 == 写成 =
         */
        int  a  = 10;
        byte b = (byte) a;
             a+=b;
        System.out.println(a);
​
        short s = 3;
//                s = s + 2; // s = s(short) + 2(int);
              s += 2; // 隐式转换
​
        /*
            条件运算符
            结果 = (表达式)? “成立执行”: ”不成立执行“;
         */
​
        int score = 75;
        String res =  (score >= 60)? "及格": "不及格";
        System.out.println(res); // 及格
​
    }
}

6.位运算符

package day2;
public class Demo8 {
    public static void main(String[] args) {
        /*
            位(比特位)运算符
            >>  有移
            <<  左移
            >>> 无符号右移
         */
        int a = 4;
        // 0000 0100  4
        // 0000 1000  8
        System.out.println(a << 1);
        int b = -6;
        System.out.println(b >> 1); // -3  有符号的移动 符号不变
        System.out.println(b >>> 1); // 2147483645 无符号右移,注意负数 移位后高位补0
        /*
            & | ^ ~
         */
​
        /*
            &
            0000 0011   3
            0000 0100   4
            0000 0000   0
         */
        int x = 3;
        int y = 4;
        System.out.println(x & y); // 0
        /*
            &
            0000 0100   4
            0000 0001   1
            0000 0000   0
         */
        System.out.println((x & 1) == 0);//判断奇偶数
        /*
            |
            0000 0011   3
            0000 0100   4
            0000 0111   7
         */
        System.out.println(x | y); // 7
        /*
            ^
            0000 0011  3
            0000 0100  4
            0000 0111  7
         */
        System.out.println(x ^ y);
        /*
            ^ 异或
         */
        x = x ^ y; // 7
        y = x ^ y; // 3 = 7^4
        x = x ^ y; // 4 = 7^3
        System.out.println(x); // 4
        System.out.println(y); // 3
        /*
            ~ 逻辑非
            0000 0011
            1111 1100
         */
        System.out.println(~y); // -4
​
    }
}

注:优先级

七.控制台

package day2;
//导入外部包中的类
import java.util.Scanner;
public class Demo9 {
    public static void main(String[] args) {
        /*
            控制台输入: 在基础语法学习时交互式的向程序中输入内容
​
         */
        //创建输入对象
        Scanner s = new Scanner(System.in);
​
        System.out.println("请输入学号:");
        int num = s.nextInt();// 输入一个整数,程序执行nextInt()时,进入阻塞状态,按回车键表示输入完成
        System.out.println(num);
​
        System.out.println("请输入姓名:");
        String name = s.next();
        System.out.println(name);
​
    }
}

八.流程控制语句

1.条件控制语句

if,if...else, if ...else if..., if ...else if...else.

package day2;
​
public class Demo10 {
    public static void main(String[] args) {
        /*
            流程控制语句
            if(条件表达式){条件成立执行}
            if(条件表达式){条件成立执行} else{条件不成立执行}
            if(条件表达式){条件成立执行} else if{条件不成立执行} else if{条件不成立执行}...
            if(条件表达式){条件成立执行} else if{条件不成立执行} else if{条件不成立执行}... else{条件不成立执行}
         */
        int num =5;
        /*if(num>3){
            System.out.println("Demo10.main");
        }*/
        if(num>2) //if的作用范围只有紧挨着的一行
            System.out.println("Demo10.main");
        System.out.println("1111");
        /*
            多路选择
            switch
            一般用switch能实现的功能用if else 都能实现
            区别?  什么时候用if,什么时候用switch
                                    条件比较固定的:一周有七天,一年有12个月
                                    不能进行条件比较
         */
        // 传入的表达式的值可以是:byte,short int char,枚举类型,String
        int w = 8;
        switch (w){
            case 1: // case后面只能是字面量,值不能重复的
                System.out.println("周一");
                break;
            case 2:
                System.out.println("周二");
                break;
            case 3:
                System.out.println("周三");
                break;
            case 4:
                System.out.println("周四");
                break;
            case 5:
                System.out.println("周五");
                break;
            case 6:
                System.out.println("周六");
                break;
            case 7:
                System.out.println("周天");
                break;
            default: // 所有选项都不匹配,执行default
                System.out.println("无效日期!!");
        }
    }
}

2.循环控制语句

while ,do...while,死循环,for循环

package day3;
import java.util.Scanner;
public class Demo1 {
    /*
            循环语句
            1.while 进入循环之前进行判断,条件成立才会进入循环体,不成立不会进入循环体
                while(条件表达式){
                    条件成立执行
                }
            2.do...while 先执行循环体,在进行判断,条件成立再进入循环体。。
                do{
                    循环体
                }while(条件表达式);
            3.死循环
                while(true){
                }
         */
  public static void main(String[] args) {
      Scanner s = new Scanner(System.in);
        int i = 0;
        while (i<5){
            System.out.println(i);
            i++;
        }
        System.out.print("i="+i);
​
        int age = 0;
            do {
                System.out.println("请输入年龄:");
                age = s.nextInt();
            }while (age>10);
​
​
      while (true) {
          int num = 111111;
          int pwd = 123456;
          int balance = 10000;
          System.out.println("请输入账号:");
          int num1 = s.nextInt();
          System.out.println("请输入密码:");
          int pwd1 = s.nextInt();
          if (num == num1 && pwd == pwd1){
              a:while (true) {
                  System.out.println("请输入操作选项:1-存款,2-取款,3-查询余额,4-退出");
                  int item=s.nextInt();
                  switch (item){
                      case 1:
                          System.out.println("请输入存款金额:");
                          int balance1 = s.nextInt();
                          balance +=balance1;
                          break;
                      case 2:
                          System.out.println("请输入取款金额:");
                          int balance2 = s.nextInt();
                          balance -=balance2;
                          break;
                      case 3:
                          System.out.println(balance);
                          break;
                      case 4:
                          break a;
                      default:
                          System.out.println("输入有误!");
                  }
              }
          }else {
              System.out.println("输入有误!");
          }
      }
​
  }
}
package day3;
public class Demo2 {
    public static void main(String[] args) {
        /*
            for (1定义变量,2循环条件,4变量赋值){
                3循环体
            }
            先执行1(只执行一次)
            再执行条件判断2(多次)
            执行循环体3(多次)
            变量赋值4(多次)
         */
        /*
            for(int i=0; i<5;i+=2){
                System.out.println(i);
            }
        */
        /*
            int i = 0;
            for (;i<5;i++){
                System.out.println(i);
            }
            System.out.println(i);
        */
    /*
            for (;i<5;){
                System.out.println(i);
                i++;
            }
        */
        // while (true) 和 for(;;)的区别
        /*
            while(布尔值)     用于执行不知道循环次数
            for循环          一般用于执行已知循环次数
         */
        for (;;){//死循环
            System.out.println("abc");
        }
    }
}

3. break和continue

package day3;
public class Demo3 {
    public static void main(String[] args) {
        /*
            break
            在switch中,用于结束switch循环
            continue
            用于结束本轮循环
         */
        out:for (int i = 0; i < 10; i++) {
            for (int j = 0;j<10; j++) {
                if (j==5){
                    break out;
                }
                System.out.println("j="+j);
            }
            System.out.println("i="+i); // 0 1 2 3 4
        }
        for (int i = 0; i < 10; i++) {
            if (i==6){
                continue;
            }
            System.out.println(i);
        }
    }
}

4.循环嵌套

package day3;
public class Demo4 {
    public static void main(String[] args) {
        /*
            循环嵌套
            循环里面或者外面套一个或多个循环
            4*4     5*5     6*6
            ****
            ****
            ****
            ****
         */
        int num = 4;
        for (int i = 0; i <num; i++) {// 外层循环控制行数
            for (int j = 0 ;j< num;j++) { // 内层循环控制列数
                System.out.print("*"+"\t");
            }
            System.out.println();//内层循环结束,换行
        }
        /*
            *
            * *
            * * *
            * * * *
​
            乘法口诀表
            * * * *
            * * *
            * *
            *
         */
        for (int i = 0; i < 5; i++) {
            for (int j = 0;j<i;j++){
                System.out.print("*"+"\t");
            }
            System.out.println();
        }
​
        for (int i = 1; i <= 9; i++) {
            for (int j = 1;j<=i;j++){
                System.out.print(j+"*"+i+"="+j * i+"\t");
            }
            System.out.println();
        }
        for (int i = 4; i >0; i--) {
            for (int j = i;j>0;j--){
                System.out.print("*"+"\t");
            }
            System.out.println();
        }
    }
}

5.方法的定义和调用

package day3;
/*
    基本语法展示类
 */
public class Demo5 {
    /*
        方法的定义和调用
        方法语法:
          [访问权限修饰符,修饰符][返回值类]方法名称(参数类型参数名称){
                       方法体
                     [return结果]
          }
          方法的调用
     */
    public static void main(String[] args) {
        Demo5.print(); // 方法的调用,类名。方法名()(必须是static关键字修饰)
        Demo5.print1(8);
        int x =Demo5.max(8,6);
        System.out.println(x);
    }
    public static void print(){
        for (int i = 0; i < 5; i++) {
            for (int j = 0;j<i;j++){
                System.out.print("*"+"\t");
            }
            System.out.println();
        }
    }
    public static void print1(int num){
        for (int i = 1; i <= num; i++) {
            for (int j = 1;j<i;j++){
                System.out.print("*"+"\t");
            }
            System.out.println();
        }
    }
    public static int max(int a,int b){
        return a>b?a:b;
    }
​
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值