小白每天要努力-----Java入门简记

Posted 敲代码的xiaolang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小白每天要努力-----Java入门简记相关的知识,希望对你有一定的参考价值。

本博文是根据b站《狂神说Java》整理的代码示范,实际代码有很多,笔者选取了部分有代表性的代码,加以注释,难度对于刚入门JAVA的小白而言还可,如果有问题,欢迎在评论区留言,或者去b站寻找讲解视频。笔者也是刚学JAVA,推荐csdn一位博主----“编程界明世隐”,他的专栏里有蛮适合小白的《Java小白入门200例》,以及《从零学Java》。其他的大佬也有很多,大家选择自己喜欢的即可。


一、Java基本数据类型

package base;//栗子如下

public class demo02 {
    public static void main (String[] args) {
        //整数
        int num1=10;
        byte num2=20;
        short num3=30;
        long num4=40L;//long要加 L

        //浮点数
        float num5=50.1F;//float要加 F
        double num6=60.1;

        //字符类型
        char name='亲';
        String a = "hello";

        //布尔值
        boolen flag=true;

        System.out.println(a);
    }
}

我们再进行更多的比较:

package base;

public class demo03 {
    public  static void main(String[] args){
        int i=10;
        int i2=010;//八进制
        int i3=0x10;//十六进制

        System.out.println(i);
        System.out.println(i2);
        System.out.println(i3);
        //====================================
        //浮点数
        System.out.println("======================================");
        //BigDecimal 数学工具类
        //浮点数的特点: 有限, 离散, 舍入误差, 大约, 接近但不等于
        //不要用浮点数进行比较
        float f=0.1f;
        double d=1.0/10;
        System.out.println(f==d);

        float d1=231321213212f;
        float d2=d1+1;
        System.out.println(d1==d2);//已经越界了

        //================================
        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 2字节  范围: 0-65536

        char c3='\\u0061';\\\\转为a
        System.out.println(c3);

        //转义字符
        System.out.println("Hello\\tWorld!");//Hello World
        //还有很多扩展
        String sa = new String ("hello");
        String sb = new String ("hello");
        System.out.println(sa==sb);

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

        String sc="hello";
        String sd="hello";
        System.out.println(sc==sd);


        System.out.println("======================================");
        //boolean
        boolean flag = true;
        if(flag==true){}
        if(flag){}


    }
}

输出结果为:

类型转换

package base;

public class demo04 {
    public static void main(String [] args){
        int i=128;
        byte b=(byte)i;//byte 取值范围 -128~127

        //强制转换 (类型)变量名  高到低
        //自动转换  低到高
        System.out.println(i);
        System.out.println(b);
        System.out.println((int)23.7);//23
        System.out.println((int)-45.89f);//-45

        char c='a';
        int d=c+1;
        System.out.println(d);
        System.out.println((char)d);
    }
}
/*
        1.不能对布尔值转换
        2.不能把对象类型转换为不相干类型
        3.高容量转换到低容量,强制转换
        4.转换的时候可能有内存溢出,或者精度问题
 */

运行结果:

溢出

package base;

import javax.swing.plaf.synth.SynthLookAndFeel;

public class demo05 {
    public static void main(String[] args){
        int money=10_0000_0000;
        int years =20;
        int tatal =money*years;//溢出
        long tatal2 =money*years;//转换为 long类型之前,已经溢出

        long total23 = money*((long)years);//先把一个数转换为long
        System.out.println(total23);
    }
}

变量

package base;

public class demo07 {

    //类变量

    //实例变量:丛属于对象;
    int age;
    //main方法
    public static void main(String[] args){
        //局部变量:必须声明和初始化值
        int i=10;
        System.out.println(i);

        demo07 Demo07 =new demo07();
        System.out.println(Demo07.age);
    }
    //其他方法
    public void add(){

    }

}

/*
运行结果:
10
0
*/

java命名规范

package base;

public class demo08 {
    public static final double PI=3.14;//常量之前的都是标识符,有无public均可,public 可以写成private
    //注意命名的规范
    /*类成员变量:首字母小写和驼峰原则
    例如:lastName
    局部变量:首字母小写和驼峰原则
    常量:大写字母和下划线
    类名:首字母大写,驼峰
    方法名:首字母小写和驼峰 run()
    */
    public static void main(String[] args){
        System.out.println(PI);
    }

}

运算符

package base;

import java.awt.desktop.SystemEventListener;

public class demo09 {
    public static void main(String[] args){
     //运算符
        int a=10;
        int b=20;
        long c=2545645645645L;
        int d=25;
        short e=10;
        byte f=8;

        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/(double)b);//
        System.out.println("======================================");
        System.out.println(c+d+e+f);//long //有long参与运算时,转为long
        System.out.println(d+e+f);//int
        System.out.println(e+f);//int 我们看一个short,一个 byte ,它运行完是int
        System.out.println("======================================");


    }

}

短路运算

package base;

public class demo10 {
    public static void main(String[] args){
        //math类
        double pow=Math.pow(2,3);
        System.out.println(pow);

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

        //短路运算
        int a=5;
        boolean b=(a<4)&&(a++<4);//判断错误,后面就不再运行了
        System.out.println(a);
        System.out.println(b);



    }
}


位运算

package base;

public class demo11 {
    public static void main(String[] args){
        /*
        A = 0011 1100
        B = 0000 1101
        -----------------
        //我们 A 和 B 一位一位比对,得出结果
        A&B = 0000 1100   //当全部为1的时候,是1
        A|B = 0011 1101   //有一个1,就是1
        A^B = 0011 0001   //不同为1,相同为0
        ~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);

    }
}

" "的位置

package base;

public class demo12 {
    public static void main(String[] args){
        int a=10;
        int b=20;
        System.out.println(" "+a+b);//先转换为字符串
        System.out.println(a+b+" ");//先转换为数

        //x?y:z
        //如果x==true.则结果为y,否则结果为z

    }
}

/*结果是:
  1020
 30
 */

二、Scanner基本使用

接收数据

package base2;

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);
        }

        scanner.close();//使用IO流,用完关掉
    }
}
//注意:next不能得到有空格的字符串

运行结果:

那我们想在字符串里面加空格,我们就要用到下面的方式:

package base2;

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 base2;

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("输入的不是小数。");
        }

    }
}

运行结果:

有的时候我们或许会遇到让我们一个个输入,但是输多少个却不能提前预判,那我们也可以使用hasNextDouble来帮助我们,比如下面这个栗子,我们用一个“ / ”结束输入:

package base2;

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;
            sum=sum+x;
            System.out.println("你输入了第"+m+"个数据,当前结果为sum="+sum);
        }

        System.out.println(m+"个数的和是"+sum);
        System.out.println(m+"个数的平均数是"+(sum/m));
        scanner.close();
    }
}

运行结果:

equals:
快速判断字符串是否相等,用法如下:

package base2;

import java.util.Scanner;

public class Demo06 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入内容:");
        String s = scanner.nextLine();

        // equals:判断字符串是否相等
        if(s.equals("Hello")){
            System.out.println(s);
        }

        System.out.println("End");
        scanner.close();
    }
}

找素数

package base2;

public class Demo09 {
    public static void main(String[] args) {
        int count = 0;

        outer:for(int i =101;i<150;i++){
            for(int j=2;j<i/2;j++){
                if(i%j == 0){
                    continue outer;//我们如果发现这个数在除了1和它本身外,其他数也满足条件的时候,我们就使用continue返回到outer这个方法继续执行
                }
            }
            System.out.println(i+" ");
        }
  

以上是关于小白每天要努力-----Java入门简记的主要内容,如果未能解决你的问题,请参考以下文章

Java小白入门200例95之Java匿名类

Java小白入门200例102之自定义异常

Java小白入门200例105之Java ArrayList类

Java小白入门200例107之Java LinkedList类

Java小白入门200例103之异常处理的规则

Java小白入门200例99之Java常见异常及处理