JavaSE基础篇-1

一、Java的配置/介绍/前言

二、基础概念

1)println和print区别?

相同点:
  两个都是原样输出,可以将结果直接打印到控制台上
不同点:
  println:原样输出,自动换行
  print:原样输出,不会换行

【小技巧】

先复制当前行:ctrl+d

一次写多行;按住alt不放,鼠标往下拉,让光标变长

2)常量

1.概述:在代码的运行过程中,值不会发生改变的数据
2.分类:
  整数常量:所有的整数,包括正负 -1 1
  小数常量:所有带小数点的 2.5  2.0
  字符常量:带单引号的 ''  单引号中必须有,且只能有一个内容
          '1'   对
          '11'  不对
          '1a'  不对
          ' '   对
          '  '  不对
          'tab键' 对
  字符串常量:带双引号 "" 双引号中的内容随意
  布尔常量:true false -> 用于判断条件
  空常量:null -> 代表数据不存在->不能直接使用

public class Demo06HelloWorld{
	public static void main(String[] args){
		//整数常量
		System.out.println(1);
		System.out.println(-1);
		
		//小数常量
		System.out.println(2.5);
		System.out.println(2.0);
		
		//字符常量
		System.out.println('1');
		//System.out.println('11');''中必须有且只能有一个内容 11算两个内容
		//System.out.println('');''中必须有且只能有一个内容
		System.out.println(' ');//一个空格算一个内容
		//System.out.println('  ');//一个空格算一个内容,两个空格就是两个内容
		System.out.println('	');//tab键算一个内容
		
		//字符串常量
		System.out.println("张无忌和赵敏以及周芷若还有小昭以及朱九真...没羞没臊的故事");
		System.out.println("");
		//布尔常量
		System.out.println(true);
		System.out.println(false);
		
		//空常量
		//System.out.println(null); null代表数据不存在,不能直接引用
	}
}
public class Demo07HelloWorld{
	public static void main(String[] args){
		System.out.println(10+3);//13
		System.out.println(10-3);//7
		System.out.println(10*3);//30
		System.out.println(10/3);//3  如果/前后都是整数,取的整数部分
		System.out.println(10/3.0);// 如果/前后有一个是小数,结果就是带小数点的
	}
}

3)变量

1.概述:在代码的运行过程中,值可以根据不同的情况随时发生改变的数据
       int price = 10;
           price = 8;
2.作用:可以临时存储一个数据
3.java中变量的分类:
  基本数据类型:4类8种
      a.整型:byte short int long
      b.浮点型:float double
      c.字符型:char
      d.布尔型:boolean
          
  引用数据类型:
      类 数组 接口 枚举 注解
          
4.整数默认类型为int
  小数默认类型为double
          
5.按照取值范围从小到大做排序:
  byte short char -> int -> long -> float -> double
      
6.特殊的类型:字符串类型
  用String表示,但是String不属于基本类型,属于一个类,所以属于引用数据类型
  只不过String变量的定义格式和基本类型一样

public class Demo08Var{
	public static void main(String[] args){
		//byte
		byte num1 = 100;
		num1 = 101;
		//num1 = 200;超出了byte的取值范围了
		System.out.println(num1);
		
		//short
		short num2 = 100;
		System.out.println(num2);
		
		//int 整数默认类型
		int num3 = 100000000;
		System.out.println(num3);
		
		/*
		  long 定义long型的变量,习惯上再值得后面加上L或者l
		  建议用L
		*/
		long num4 = 100000000L;
		System.out.println(num4);
		
		/*
		  float 定义float型的变量,请在小数后面加F或者f
		  建议用F
		*/
		float num5 = 2.5F;
		System.out.println(num5);
		
		/*
		  double
		*/
		double num6 = 2.5;
		System.out.println(num6);
		
		/*
		  char 代表字符变量
		*/
		char num7 = '中';
		System.out.println(num7);
		
		/*
		  boolean
		  true false
		*/
		
		boolean num8 = true;
		boolean num9 = false;
		System.out.println(num8);
		System.out.println(num9);
		
		/*
		  num9代表的是false
		  相当于将num9的false赋值给了变量num8,此时num8的true被覆盖了,变成了num9的false了
		*/
	    num8 = num9;
		System.out.println(num8);
		
		/*
		  String 字符串
		*/
		String s = "atguigu";
		s = "taoge";
		System.out.println(s);
	}
}

4)标识符

1.概述:给类,方法,变量取的名字
2.注意:
  硬性要求(必须遵守):
    a.标识符可以包含'英文字母','数字',"$和_"
    b.标识符不能以数字开头  int i1 = 100(正确)  int 1i = 100(错误)
    c.标识符不能是关键字  int publicstatic = 10
  软性建议(建议遵守):
    a.给类取名字:遵循大驼峰式 -> 每个单词首字母大写
    b.给方法和变量取名字:遵循小驼峰式 -> 从第二个单词开始往后首字母大写 

public class Demo06Var{
	public static void main(String[] args){
		int i1 = 100;
		//int 1i = 200; 名字不能数字开头
		int $1 = 200;
		System.out.println($1);
		
		//int static = 300; 名字不能是关键字
		//System.out.println(static);
		
		int _i = 1000;
		System.out.println(_i);
		
		int intVar = 2000; //小驼峰式
		System.out.println(intVar);
		
	}
}

5)数据类型转换

1.什么时候会发生数据类型转换
  等号左右两边类型不一致
2.按照取值范围大小从小到大给数据类型排序
  byte short char -> int -> long -> float -> double
    
  取值范围大的叫做大类型(相对的)
  取值范围小的叫做小类型(相对的)
    
3.数据类型转换分两种:
  a.自动类型转换:将取值范围小的数据类型 赋值 给 取值范围大的数据类型
               或者在运算的时候,取值范围小的遇到了取值范围大的数据类型
               
               取值范围小的数据类型会自动提升为取值范围大的数据类型
  b.强制类型转换:
    强制将取值范围大的数据类型转成取值范围小的数据 ->向下转型

1-自动类型转换

什么时候发生自动类型转换:

.取值范围大的数据类型 变量名 = 取值范围小的数据类型 -> 小的数据类型自动提升为大的数据类型
      
  小类型遇到了大类型做运算 -> 小自动转大的类型

public class Demo01DataType{
	public static void main(String[] args){
		/*
		  100默认类型为int
		  num1类型为long
		  将100赋值给long型的num1,相当将取值范围小的数据类型赋值给了取值范围大的数据类型
		  发生了自动类型转换
		*/
		long num1 = 100;
		System.out.println(num1);
		
		
		/*
		  2默认类型为int
		  num2类型为double
		  将2赋值给了double型的num2,相当于将取值范围小的数据类型赋值给了取值范围大的数据类型
		  发生了自动类型转换
		*/
		double num2 = 2;
		System.out.println(num2);
		
		int num3 = 10;
		double num4 = 2.5;
		
		/*
		  double  = int+double
		  
		  double = double+double
		  
		  小类型和大类型做运算,小类型会自动提升为大类型
		*/
		double sum = num3+num4;
		System.out.println(sum);
		
	}
}

2-强制类型转换

1.什么时候需要强转:
  取值范围小的数据类型 变量名 = 取值范围大的数据类型 -> 报错
2.怎么进行强转:
  取值范围小的数据类型 变量名 = (取值范围小的数据类型)取值范围大的数据类型

public class Demo02DataType{
	public static void main(String[] args){
		//float num1 = 2.5;
		//float num1 = (float)2.5;
		float num1 = 2.5F;
		System.out.println(num1);
		
		System.out.println("================");
		
		//int num2 = 200L;
		int num2 = (int)200L;
		System.out.println(num2);
	}
}

3-强转的注意事项

1.将来开发不要故意写成强转,除非没办法
2.如果随意强转会容易出现:
  a.精度损失
  b.数据溢出
      
3.byte,short 如果等号右边是常量,如果不超出范围,不会报错,jvm自动转型
  byte,short 如果等号右边有变量参与运算,会自动提升为int,结果重新赋值给byte short变量,需要手动强转
     
4.char类型参与运算,会自动提升为int型,如果char类型提升为int型之后,会自动去ASCII码表查询字符对应的int值   
  如果ASCII码表中没有,会去unicode码表去查(万国码)   

public class Demo03DataType{
	public static void main(String[] args){
		//精度损失
		int num1 = (int)2.9;
		System.out.println(num1);
		
		//数据溢出
		
		/*
		  int占内存4个字节-> 一个字节是8个二进制位  -> 32位二进制
		  
		  100亿:36位二进制
		  
		  将36位二进制的100亿强制赋值给最多能存32位二进制的int型变量
		  多出来4位,多出来的,干掉前4位
		*/
		int num2 = (int)10000000000L;
		System.out.println(num2);//1410065408
	}
}
public class Demo04DataType{
	public static void main(String[] args){
		byte num1 = 100;//等号右边是一个值,不超出范围,不会报错,jvm自动强转
		System.out.println(num1);
		
		byte num2 = (byte)200;//如果超出范围,需要我们自己强转
		System.out.println(num2);
		
		byte num3 = 10+1;
		System.out.println(num3);
		
		byte num4 = 1;
		
		/*
		  byte = byte+int
		  byte = int+int -> 需要手动转
		*/
		byte num5 = (byte)(num4+1);
		System.out.println(num5);
		
		System.out.println("=====================");
		
		char num6 = '0';
		System.out.println(num6+0);
		
		System.out.println('中'+0);//20013
		
		int num7 = '国';
		System.out.println(num7);
	}
}

6-运算符

1-算数运算符

public class Demo01SuanShu{
	public static void main(String[] args){
		int i = 10;
		int j = 3;
		
		int sum = i+j;
		System.out.println(sum);
		
		int sub = i-j;
		System.out.println(sub);
		
		int mul = i*j;
		System.out.println(mul);
		
		int div = i/j;
		System.out.println(div);
		
		int mo = i%j;
		System.out.println(mo);
	}
}

+:
  1.加法
  b.字符串拼接-> 任何类型遇到字符串都会变成字符串类型数据,直接往后拼接

public class Demo02SuanShu{
	public static void main(String[] args){
		int i = 10;
		int j = 3;
		
		System.out.println(i+j+"");//13
		System.out.println(i+""+j);//103
		System.out.println(""+i+j);//103
		System.out.println(""+(i+j));//13
		
		System.out.println("两个数的和:"+(i+j));
	}
}

2-自增自减运算符(也算算数运算符的一种)

1.格式:
  变量++ -> 后自加
  ++变量 -> 前自加
  变量-- -> 后自减
  --变量 -> 前自减
      
2.使用:
  a.单独使用:++ -- 自己单独成为一句
    符号在前或者在后没区别,都是直接运算
      
  b.混合使用:++ --和别的语句混合使用(赋值语句,打印语句)
    符号在前:先运算,再使用运算后的值
    符号在后:先使用原值,使用完毕之后,自身再运算

public class Demo03SuanShu{
	public static void main(String[] args){
		int i = 10;
		//单独使用
		//i++;
		++i;
		System.out.println(i);
		
		System.out.println("=============");
		
		int j = 10;
		//混合使用
		//int result = ++j;
		int result = j++;
		System.out.println(result);
		System.out.println(j);
		
		System.out.println("=============");
		
		int x = 10;
		int y = 20;
		
		/*
		  以后开发不会这么写代码
		  10+19 = 29-10
		*/
		int result01 = x++ + --y - --x;
		System.out.println(result01);
		
		System.out.println("=============");
		
		int c = 100;
		c = c++;
		System.out.println(c);
	}
}

3)赋值运算符

1.基本赋值运算符:
   =   -> 先看等号右边的,将等号右边的数据赋值给等号左边的变量
       
2.复合赋值运算符:       
   +=
       int i = 10;i+=1 -> 看做 i = i+1
   -=
   *=
   /=  取整数部分
   %=  取余数部分
           
3.针对于复合赋值运算符:
  byte short 参与运算,jvm会自动强转

public class Demo04FuZhi{
	public static void main(String[] args){
		int i = 10;
		i+=2; // i = i+2
		System.out.println(i);
		
		System.out.println("================");
		
		byte b = 10;
		//b = b+1;
		b+=1;//b = b+1
		System.out.println(b);
	}
}

4)关系运算符(比较运算符)

public class Demo05Compare{
	public static void main(String[] args){
		int i = 10;
		int j = 20;
		int k = 10;
		
		boolean result01 = i==j;
		System.out.println(result01);
		
		System.out.println(i>j);
		System.out.println(i<j);
		System.out.println(i>=k);
		System.out.println(i<=k);
		System.out.println(i!=k);
	}
}

5)逻辑运算符

public class Demo06LuoJi{
	public static void main(String[] args){
		int i = 10;
		int j = 20;
		int k = 10;
		
		boolean result01 = (i>j)&&(i==k);//false&&true
		System.out.println(result01);//false
		
		boolean result02 = (i>j)||(i==k);//false||true
		System.out.println(result02);//true
		
		boolean result03 = !(i>j);//!false
		System.out.println(result03);//true
		
		boolean result04 = (i>j)^(i==k);//false^true
		System.out.println(result04);//true
	}
}

问题1:表示小明的分数是否在 50-100之间

50<=score<=100 -> 数学写法

score>=50 && score<=100 -> java写法

问题2:&和&& 以及|和||区别

6)三元运算符

1.格式:
  boolean表达式?表达式1:表达式2
      
2.执行流程:
  先走boolean表达式,如果是true,就走?后面的表达式1;否则就走:后面的表达式2

7)进制转换

1-十进制转二进制

辗转相除法 -> 循环除以 2, 取余数
2-二进制转十进制

3-二进制转八进制

4-二进制转十六进制

8)位运算符

9)运算符优先级

三、流程控制

1)键盘录入_Scanner

1.概述:Scanner是java定义好的类
2.作用:通过键盘录入的形式将数据放到代码中参与运行
3.怎么用:
  a.导包:为了找到想使用的类 -> import java.util.Scanner
  b.创建对象: Scanner 对象名 = new Scanner(System.in);
  c.调用方法,实现键盘录入:
    对象名.nextInt() -> 录入一个整数
    对象名.next() -> 录入一个字符串 

public class Demo01Scanner {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请您输入一个整数:");
        int data1 = sc.nextInt();
        System.out.println("data1 = " + data1);
        System.out.println("请您输入一个字符串:");
        String data2 = sc.next();
        System.out.println("data2 = " + data2);
    }
}
public class Demo02Scanner {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请你输入第一个整数:");
        int data1 = sc.nextInt();
        System.out.println("请你输入第二个整数:");
        int data2 = sc.nextInt();
        System.out.println("请你输入第三个整数:");
        int data3 = sc.nextInt();

        int temp = (data1 > data2) ? data1 : data2;
        int max = (temp > data3) ? temp : data3;
        System.out.println("max = " + max);
    }
}
Exception in thread "main" java.util.InputMismatchException
	at java.util.Scanner.throwFor(Scanner.java:864)
	at java.util.Scanner.next(Scanner.java:1485)
	at java.util.Scanner.nextInt(Scanner.java:2117)
	at java.util.Scanner.nextInt(Scanner.java:2076)
	at com.atguigu.a_scanner.Demo02Scanner.main(Demo02Scanner.java:9)


next():录入字符串,遇到回车或者空格就结束录入了
nextLine():录入字符串,遇到回车就结束录入
public class Demo03Scanner {
 public static void main(String[] args) {
     Scanner sc = new Scanner(System.in);
     String data1 = sc.next();
     String data2 = sc.nextLine();
     System.out.println(data1);
     System.out.println(data2);
 }
}

2)switch(选择语句)

1)switch的基本使用

public class Demo01Switch {
    public static void main(String[] args) {
        //创建Scanner对象
        Scanner sc = new Scanner(System.in);
        System.out.println("请你输入一个整数:");
        int data = sc.nextInt();
        switch (data){
            case 1:
                System.out.println("离离原上草");
                break;
            case 2:
                System.out.println("一岁一枯荣");
                break;
            case 3:
                System.out.println("野火烧不尽");
                break;
            case 4:
                System.out.println("春风吹又生");
                break;
            default:
                System.out.println("输入错误");
                break;
        }
    }
}

2)case的穿透性

如果没有break,会出现case的穿透性,代码会一直往下穿透执行,直到遇到break或者switch结束了为止

public class Demo02Switch {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int month = sc.nextInt();
        switch(month){
            case 12:
                System.out.println("冬季");
                break;
            case 1:
                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;
            case 8:
                System.out.println("夏季");
                break;
            case 9:
                System.out.println("秋季");
                break;
            case 10:
                System.out.println("秋季");
                break;
            case 11:
                System.out.println("秋季");
                break;
            default:
                System.out.println("输入有误!");
                break;
        }
    }
}
public class Demo02Switch {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int month = sc.nextInt();
        switch(month){
            case 12:
                System.out.println("冬季");
                break;
            case 1:
                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;
            case 8:
                System.out.println("夏季");
                break;
            case 9:
                System.out.println("秋季");
                break;
            case 10:
                System.out.println("秋季");
                break;
            case 11:
                System.out.println("秋季");
                break;
            default:
                System.out.println("输入有误!");
                break;
        }
    }
}

public class Demo02Switch {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int month = sc.nextInt();
        switch(month){
            case 12:
            case 1:
            case 2:
                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;
        }
    }
}

3)分支语句

1-if语句的第一种格式

1.格式:
  if(boolean表达式){
      执行语句
  }

  或者:
  if(boolean表达式)
      执行语句
2.执行流程:
  走if后面的执行语句,如果是true,就走if后面大括号中的执行语句
  否则就不走

public class Demo01If {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请你输入第一个整数:");
        int data1 = sc.nextInt();
        System.out.println("请您输入第二个整数:");
        int data2 = sc.nextInt();

        if (data1==data2){
            System.out.println("相等");
        }
        /*if (data1==data2)
            System.out.println("相等");*/

    }
}

2-if语句的第二种格式

1.格式:
  if(boolean表达式){
      执行语句
  }

  或者:
  if(boolean表达式)
      执行语句
2.执行流程:
  走if后面的执行语句,如果是true,就走if后面大括号中的执行语句
  否则就不走。

public class Demo02If {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请你输入第一个整数:");
        int data1 = sc.nextInt();
        System.out.println("请您输入第二个整数:");
        int data2 = sc.nextInt();

        if (data1==data2){
            System.out.println("相等");
        }else{
            System.out.println("不相等");
        }

        /*if (data1==data2)
            System.out.println("相等");
        else
            System.out.println("不相等");*/

    }
}

3-if语句的第三种格式

public class Demo08If {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请您输入第一个整数:");
        int data1 = sc.nextInt();
        System.out.println("请您输入第二个整数:");
        int data2 = sc.nextInt();
        /*if (data1>data2){
            System.out.println("data1大于data2");
        }else if(data1<data2){
            System.out.println("data1小于data2");
        }else{
            System.out.println("data1等于data2");
        }*/

        if (data1>data2){
            System.out.println("data1大于data2");
        }else if(data1<data2){
            System.out.println("data1小于data2");
        }else if (data1==data2){
            System.out.println("data1等于data2");
        }
    }
}

【练习】

public class Demo09If {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请您输入一个数:");
        int week = sc.nextInt();
        /*if (week==1){
            System.out.println("周一");
        }else if(week==2){
            System.out.println("周二");
        }else if(week==3){
            System.out.println("周三");
        }else if(week==4){
            System.out.println("周四");
        }else if(week==5){
            System.out.println("周五");
        }else if(week==6){
            System.out.println("周六");
        }else if(week==7){
            System.out.println("周日");
        }else{
            System.out.println("输入有误!");
        }*/

        if (week<1 || week>7){
            System.out.println("输入有误");
        }else{
            if (week==1){
                System.out.println("周一");
            }else if(week==2){
                System.out.println("周二");
            }else if(week==3){
                System.out.println("周三");
            }else if(week==4){
                System.out.println("周四");
            }else if(week==5){
                System.out.println("周五");
            }else if(week==6){
                System.out.println("周六");
            }else if(week==7){
                System.out.println("周日");
            }
        }
    }
}

 

public class Demo10If {
    public static void main(String[] args) {
       //95~100		山地自行车一辆
       //90~94		游乐场玩一次
       //80~89		变形金刚玩具一个
       //80以下	   胖揍一顿
        Scanner sc = new Scanner(System.in);
        int score = sc.nextInt();
        /*if (score>=95 && score<=100){
            System.out.println("山地自行车一辆");
        }else if (score>=90 && score<=94){
            System.out.println("游乐场玩一次");
        }else if(score>=80 && score<=89){
            System.out.println("变形金刚一个");
        }else if (score>=0 && score<80){
            System.out.println("胖揍一顿");
        }else{
            System.out.println("弄死你呀,一共就100分,还给我考冒了");
        }*/

        if (score<0 || score>100){
            System.out.println("弄死你呀,一共就100分,还给我考冒了");
        }else{
            if (score>=95 && score<=100){
                System.out.println("山地自行车一辆");
            }else if (score>=90 && score<=94){
                System.out.println("游乐场玩一次");
            }else if(score>=80 && score<=89){
                System.out.println("变形金刚一个");
            }else if (score>=0 && score<80){
                System.out.println("胖揍一顿");
            }
        }
    }
}

4)循环语句

5)break和continue的区别

 

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值