数据类型,数据类型转换,变量,运算符,Scanner对象

Java Base:

注释

package com.chen.base;
​
public class HelloWorld {
    public static void main(String[] args) {
        //单行注释:只能注释一行文字
        //输出一个hello world
        System.out.println("Hello World!");
​
    }
    //多行注释:可以注释一段文字   /*  注释  */
        /*
        我是多行注释
         */
​
    //javaDoc:文档注释    /**  */
    /**
     * @Description com.chen.base.HelloWorld
     * @Author chenchi
     */
}

标识符

package com.chen.base;
​
public class Demo01 {
    public static void main(String[] args) {
​
        String 王者荣耀 = "百星王者";
        System.out.println(王者荣耀);
​
        //大小写敏感
        String Man = "chenping";
        String man = "chenping";
​
        String Ahello = "chenping";
        String hello = "chenping";
        String $hello = "chenping";
        String _hello= "chenping";
​
        String _ = "chenping";
​
        //标识符错误示范
        //String class = "chenping";
        //String 1hello = "chenping";
        //String #hello = "chenping";
        //String *hello = "chenping";
    }
}

八大基本数据类型

package com.chen.base;
​
public class Demo02 {
    public static void main(String[] args){
        //八大基本数据类型
​
        //整数
        int num1 = 10;
        byte num2 = 20;
        short num3 = 30;
        long num4 = 30L; //long类型要在数字后面加个L
​
        //小数:浮点数
        float num5 = 50.1F;
        double num6 = 3.141592653589793238462643;
​
        //字符
        char name = 'A';
        //字符串,String不是关键字,它是一个类
        //String namea = "城池";
​
        //布尔值:是非
        boolean flag = true;
        //boolean flag = false;
​
    }
}

拓展

package com.chen.base;
​
public class Demo03 {
    public static void main(String[] args) {
        //整数拓展:   进制   二进制0b   十进制   八进制0   十六进制0x
​
        int i = 10;
        int i2 = 010;  //八进制0
        int i3 = 0x10; //十六进制0x   0~9 A~F 16
​
        System.out.println(i);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println("===============================");
​
        //浮点数拓展:  银行业务怎么表示? 钱
        //BigDecimal  数学工具类
        //float   有限 离散  舍入误差  大约  接近但不等于
        //double
        //最好完全避免使用浮点数进行比较
​
        float f = 0.1f; //0.1
        double d = 1.0 / 10; //0.1
​
        System.out.println(f == d); //false
        System.out.println(f);
        System.out.println(d);
​
        float d1 = 23131312312312313f;
        float d2 = d1 + 1;
        System.out.println(d1 == d2); //true
​
        //字符拓展
        System.out.println("===============================");
        char c1 = 'a';
        char c2 = '中';
​
        System.out.println(c1);
        System.out.println((int) c1); //强制转换
        System.out.println(c2);
        System.out.println((int) c2); //强制转换
​
        //所有的字符本质上还是数字
        //编码  Unicode编码表:(97=a 65=A)  2字节  65536  Excle 2^16 = 65536
        //U0000~UFFFF
​
        char c3 = '\u0061';
        System.out.println(c3); //a
​
        //转义字符
        // \t  制表符
        // \n  换行
        //......
        System.out.println("Hello\nWorld");
​
        System.out.println("===============================");
        String sa = new String("hello world");
        String sb = new String("hello world");
        System.out.println(sa == sb); //false
​
        String sc = "hello world";
        String sd = "hello world";
        System.out.println(sc == sd); //true
        //对象  从内存分析
​
        //布尔值拓展
        boolean flag = true;
        if (flag == true) {}  //新手
        if (flag) {}          //老手
        //Less is More        代码要精简易读
​
    }
}

数据类型转换

package com.chen.base;
​
public class Demo05 {
    public static void main(String[] args) {
        int i = 128;
        byte b = (byte)i;  //内存溢出
        double c = i;
​
        //强制转换  (类型)变量名  高 ——> 低   语法:(低)高
        //自动转换   低 ——> 高
        //高低指的是字节位容量的大小
​
        System.out.println(i);
        System.out.println(b);
        System.out.println(c);
        /*
        注意点:
        1.不能对布尔值进行转换
        2.不能把对象类型转换为不相干的类型
        3.在把高容量转换到低容量时,强制转换
        4.转换时可能存在内存溢出,或者精度问题
         */
​
        System.out.println("==============================");
        System.out.println((int)23.7);  //23
        System.out.println((int)-45.89f);  //-45
​
        System.out.println("=================================");
        char d = 'a';
        int e = d + 1;
        System.out.println(e);
        System.out.println((char)e);
    }
}

内存溢出

package com.chen.base;
​
public class Demo06 {
    public static void main(String[] args) {
        //操作比较大的数的时候,注意溢出问题
        //JDK7新特性,数字之间可以用下划线分割
        int money = 10_0000_0000;
        int years = 20;
        int total = money*years; //-1474836480,计算时溢出了
        long total2 = money*years; //默认是int,转换之前已经存在问题
​
        long total3 = money*((long)years); //先把一个数转换为long
​
        System.out.println(total3);
    }
}

程序可读性

package com.chen.base;
​
public class Demo07 {
    public static void main(String[] args) {
        //int a,b,c;
        int a=1;
        int b=2;
        int c=3;  //程序可读性
        String name = "chengchi";
        char x = 'x';
        double pi = 3.14;
​
    }
}

变量

package com.chen.base;
​
public class Demo08 {
​
    //类变量  static
    static double salary = 2500;
​
    //属性:变量
​
    //实例变量:从属于对象;如果不自行初始化,为这个类型的默认值
    //类型初始化值:
    //数值为0和0.0;字符串为0000(uoooo);
    //布尔值默认值是false;
    //除了基本类型,其余的默认值都是null;
​
    String name;
    int age;
​
    //main方法
    public static void main(String[] args) {
​
        //局部变量:必须声明和初始化值
        int i = 10;
        System.out.println(i); //10
​
        //变量类型  变量名字 = new com.chen.base.Demo08();
        Demo08 demo08 = new Demo08();
        System.out.println(demo08.age);  //0
        System.out.println(demo08.name); //null
​
        //类变量  static
        System.out.println(salary);
    }
​
    //其他方法
    public void add(){
​
    }
}

修饰符

package com.chen.base;
​
//导入这个包下所有的类
//import com.chen.operator.*;
​
public class Demo09 {
​
    //修饰符,不存在先后顺序
    static final double PI = 3.14;
    public static void main(String[] args) {
        System.out.println(PI);
    }
}

Dos文档

package com.chen.base;
​
/**
 * @author Chen
 * @version 1.0
 * @since 1.8
 */
public class Doc{
​
    String name;
​
    /**
     * @author Chen
     * @param name
     * @return
     * @throws Exception
     */
    public String test(String name) throws Exception{
        return name;
    }
​
    //通过命令行生成javaDoc文档   javadoc 参数 java文件
    //
    //学会查找使用idea生成javaDoc文档!  面向百度编程
    //基础部分的知识,后面每天都会用到
}

运算符

一、二元运算符    
package com.chen.operator;
​
public class Demo01 {
    public static void main(String[] args) {
        //二元运算符
        //ctrl+D:复制当前行到下一行
        int a = 10;
        int b = 20;
        int c = 25;
        int d = 25;
        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/(double)b);
​
    }
}
​
​
package com.chen.operator;
​
public class Demo02 {
    public static void main(String[] args) {
        long a = 123123123123123L;
        int b = 123;
        short c = 10;
        byte d = 8;
​
        System.out.println(a+b+c+d); //Long
        System.out.println(b+c+d);   //Int
        System.out.println(c+d);     //Int
    }
}
​
二、关系运算符,模运算:
package com.chen.operator;
​
public class Demo03 {
    public static void main(String[] args) {
        //关系运算符返回的结果: 正确  错误  布尔值来表示
        //if
​
        int a = 10;
        int b = 20;
        int c = 21;
​
        //取余,模运算
        System.out.println(c%a); // c / a  21 / 10 = 2 ... 1
​
        System.out.println(a>b);
        System.out.println(a<b);
        System.out.println(a==b);
        System.out.println(a!=b);
    }
}
​
三、自增++,自减--:
package com.chen.operator;
​
public class Demo04 {
    public static void main(String[] args) {
        //++  --   自增,自减  一元运算符
        int a = 3;
​
        int b = a++;  //a++ 等同于 a = a + 1;
        //执行完这行代码后,先给b赋值,再自增
        //a = a + 1;
        System.out.println(a);
        //a = a + 1;
        int c = ++a;  //++a 等同于 a = a + 1;
        //执行完这行代码前,先自增,再给c赋值
​
        System.out.println(a);
        //System.out.println(a);
        System.out.println(b);
        //System.out.println(b);
        System.out.println(c);
        //System.out.println(c);
​
        //幂运算 2^3  2*2*2 = 8
        //很多运算,我们会使用一些工具类来操作
        double pow = Math.pow(3,2);
        System.out.println(pow);
    }
}
​
四、逻辑运算符,短路运算:
package com.chen.operator;
​
//逻辑运算符
public class Demo05 {
    public static void main(String[] args) {
        // 与 (and)  或 (or)  非 (取反)
        boolean a = true;
        boolean b = false;
​
        System.out.println("a && b:"+(a&&b)); //逻辑与运算:两个变量都为真,结果才为真
        System.out.println("a || b:"+(a || b)); //逻辑或运算:两个变量有一个为真,则结果为真
        System.out.println("!(a && b):"+!(a&&b)); //如果是真,则变为假;如果是假则变为真。
​
        //短路运算
        int c = 5;
        boolean d = (c<4)&&(c++<4);  //(c<4)为false短路了,则不会进行后面的计算
        System.out.println(d);
        System.out.println(c);
    }
}
​
五、与、或、非、异或运算,位运算:
package com.chen.operator;
​
public class Demo06 {
    public static void main(String[] args) {
        /*
        a = 0011 1100
        b = 0000 1101
​
        a&b = 0000 1100  与运算:两个都是1才为1,否则为0
        a/b = 0011 1101  或运算:都是0就为0,否则为1
        a^b = 0011 0001 异或运算:两个数相同为0,否则为1
        ~b  = 1111 0010 取反运算:与原数完全相反
​
        2*8 = 16  拆分为  2*2*2*2   位运算极快,换一个灯亮,改变高低电路。
        左移:<<表示*2
        右移:>>表示/2
​
        0000 0000     0
        0000 0001     1
        0000 0010     2
        0000 0011     3
        0000 0100     4
        0000 1000     8
        0001 0000     16
​
         */
​
        System.out.println(2<<3);
        System.out.println(40>>3);
    }
}
​
六、字符串连接符String+:
package com.chen.operator;
​
public class Demo07 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
​
        a+=b;  //a = a+b
        a-=b;  //a = a-b
        System.out.println(a);
​
        //字符串连接符  +  ,  String
        System.out.println(a+b);
        System.out.println(""+a+b);  //字符串在前,后面进行拼接
        System.out.println(a+b+"");  //字符串在后,前面依旧运算
    }
}
​
七、三元运算符
package com.chen.operator;
​
//三元运算符
public class Demo08 {
    public static void main(String[] args) {
        // x  ?  y  :  z
        //如果x==true,则结果为y,否则结果为z
​
        int score = 80;
      String type = score <60 ?"不及格":"及格";  //必须掌握
        // if语句
        System.out.println(type);
    }
}

Scanner对象

一、使用next方式接收数据
    
package com.chen.scanner;
​
import java.util.Scanner;
​
public class Demo01 {
    public static void main(String[] args) {
​
        //创建一个扫描器对象,用于接收键盘数据
         Scanner scanner = new Scanner(System.in);
​
        System.out.println("使用next方式接收:");
​
        //判断用户有没有输入字符串
        if (scanner.hasNext()){
            //使用next方式接收
            String str = scanner.next();  //程序会等待用户输入完毕
            System.out.println("输出的内容为:"+str);
        }
​
        //凡是属于IO流的类如果不关闭会一直占用资源,要养成好习惯用完就关掉
        scanner.close();
    }
}
​
二、nextLine方式接收数据
package com.chen.scanner;
​
import java.util.Scanner;
​
public class Demo02 {
    public static void main(String[] args) {
       //创建接收器,从键盘接收数据
       Scanner scanner = new Scanner(System.in);
​
        System.out.println("使用nextLine方式接收:");
​
        //判断是否还有输入
        if (scanner.hasNextLine()){
            String str = scanner.nextLine();
            System.out.println("输出的内容为:"+str);
​
        }
        scanner.close();
    }
}
​
三、键盘接收数据
package com.chen.scanner;
​
import java.util.Scanner;
​
public class Demo03 {
    public static void main(String[] args) {
        //创建接收器,从键盘接收数据
        Scanner scanner = new Scanner(System.in);
​
        System.out.println("请输入数据:");
​
        String str = scanner.nextLine();
​
        System.out.println("输出的内容为:"+str);
​
        scanner.close();
    }
}
​
四、if...else...判断语句
package com.chen.scanner;
​
import java.util.Scanner;
​
public class Demo04 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
​
        //从键盘接收数据
        int i = 0;
        float f = 0.0f;
​
        System.out.println("请输入整数:");
​
        //如果...那么...
        if (scanner.hasNextInt()){
            i = scanner.nextInt();
            System.out.println("整数数据:" + i);
        }else{
            System.out.println("输入的不是整数数据!");
        }
        System.out.println("请输入小数:");
​
        //如果...那么...
        if (scanner.hasNextFloat()){
            f = scanner.nextFloat();
            System.out.println("小数数据:" + f);
        }else{
            System.out.println("输入的不是小数数据!");
        }
​
​
        scanner.close();
    }
}
​
五、计数,求和,及平均值
package com.chen.scanner;
​
import java.util.Scanner;
​
public class Demo05 {
    public static void main(String[] args) {
        //我们可以输入多个数字,并求其总和和平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果
​
        Scanner scanner = new Scanner(System.in);
​
        //和
        double sum = 0;
        //计算输入了多少个数字
        int m = 0;
​
        //通过循环判断是否还有输入,并在里面对每一次进行求和和统计
        while (scanner.hasNextDouble()){
            double x = scanner.nextDouble();
            m = m + 1;  //m++
            sum = sum + x;
            System.out.println("你输入了第"+m+"个数据,然后当前结果sum="+sum);
        }
​
        System.out.println(m + "个数的和为" + sum);
        System.out.println(m + "个数的平均值是" + (sum / m));
​
        scanner.close();
    }
} 
 
posted @ 2022-10-18 16:55  Chenshishu  阅读(14)  评论(0编辑  收藏  举报