Java教程

Java基础

本文主要是介绍Java基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.注释

书写注释是一个非常好的习惯

平时写代码注意规范

Java中的注释有三中

  • 单行注释
  • 多行注释
  • 文档注释
public class Gun {
    public static void main(String[] args) {
        //单行注释:用于解释单行(不被执行)
        //System.out.println("Hello,World!");
        
        //多行注释(/*开头  */结尾)用于解释多行(不被执行)
        /*
        System.out.println("Hello,World!");
        */
        
        //JavaDos:文档注释(/**开头   */结尾)是有功能的,可以加一些参数
        /**
        *
        *@Description HelloWorld
        *
        */
        
    }
}

2.标识符和关键字

标识符

  • 关键字

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-spBDngM4-1623063031731)(D:\遇见狂神说\图片\QQ截图20210514171251.png)]

    Java 所有的组成部分都需要名字。类名 、变量名以及方法名都被称为标识符

标识符注意点

  • 所有标识符都应该以英文字母(包括大小写)、美元符号($)或者下划线(_)开始。

  • 不能使用关键字作为变量名和方法名。

  • 标识符是大小写敏感的。

3.数据类型

强类型语言(安全性高、速度低)

  • 要求变量的使用要严格符合规定,所有变量要先定义后使用。

弱类型语言(安全性低、速度高)

Java的数据类型分为两类

基本类型

基本数据类型(Primitive type)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ypSkGsMD-1623063031733)(D:\遇见狂神说\图片\QQ截图20210514171513.png)]

定义Long和float时不同

long a = 26L;

float b = 3.14f;

public class Gun {   //Gun是一个类名
    public static void main(String[] args) {   //String[] args是参数  main是一个主方法
        //整形
        byte a = 10;   //byte是变量类型  a是标识符
        short b = 20;
        int c = 30;
        long d = 40L;   //在后面加一个L或者l,因为小写的l像1所以尽量用大写
        
        //小数:浮点数
        float e = 3.14F;   //在后面加一个F或者f
        double n = 3.1415;
        
        //字符
        char k = 'M';
        //字符串:String不是关键字,是类
        String p = 'month';
        
        //布尔值
        boolean flag = true;
        //boolean flag = false
    }
}

引用类型(reference type)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-828BgAg5-1623063031735)(D:\遇见狂神说\图片\QQ截图20210514171535.png)]

什么是字节

  • 位(bit) :是计算机 内部数据 储存的最小单位,11001100是一个八位二进制数
  • 字节(byte):是计算机中 数据处理 的基本单位,习惯上用大写 B 来表示
  • 1B(byte,字节)= 8bit(位)
  • 字符:是指计算机中使用的字母、数字、字和符号
  • 1024B = 1KB
  • 1024KB = 1M
  • 1024M = 1G
  • 1024G = 1TG

4.数据类型拓展及面试题讲解

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

5.类型转换

由于Java是强类型语言,所以要进行有些运算的时候的,需要用到类型转换

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wqmQfnCC-1623063031736)(D:\遇见狂神说\图片\QQ截图20210514171741.png)]

运算中,不同类型的数据先转化为同一类型,然后进行运算

强制类型转换

自动类型转换

public class Demo05 {
    public static void main(String[] args) {
        int i = 128;
        byte b = (byte)i;  //内存溢出
        double c = i;
        
        //强制转换  (类型)变量名   高--低
        //自动转换  低--高
        
        System.out.println(i);  //128
        System.out.println(b);  //-128 内存溢出
        System.out.println(c);  //128
        
        /*
        注意点
        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 c = 'a';
        int d = c+1;
        System.out.println(d);           //98
        System.out.println((char)d);     //b
    }
}
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);
        System.out.println(total3);   //20000000000
        
        //大写L   小写l容易看成1,所以尽量用大写的L
    }
}

6.变量

变量是什么:就是可以变化的量!

Java是一种强类型语言,每个变量都必须声明其类型。

Java变量是程序中最基本的储存单元,其要素包括变量名,变量类型和作用域。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XsptUVgs-1623063031737)(D:\遇见狂神说\图片\QQ截图20210514171816.png)]

注意事项

  • 每个变量都有类型,类型可以是基本类型,也可以是引用类型(String)
  • 变量名必须是合法的标识符
  • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束
public class Demo07 {
    public static void main(String[] args) {
        //int a,b,c;
        //int a=1,b=2,c=3;  //程序的可读性
        
        int a = 1;     //基本类型
        int b = 2;
        int c = 3;
        char x = 'x';
        double pi = 3.14;
        String name = "qinqin";  //引用类型
    }
}

变量作用域

类变量

实例变量

局部变量

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mEfEeXb5-1623063031738)(D:\遇见狂神说\图片\QQ截图20210514171921.png)]

public class Demo08 {
    
    //类变量  static
    static double salsry = 2500;
    
    //属性:变量
    
    //实例变量:从属于对象;  如果不自行初始化,这个类型的默认值   0   0.0
    //布尔值:默认是false
    //除了基本类型,其余的默认值都是null
    String name;
    int age;
    
    
    //main方法
    public static void main(String[] args) {
        
        //局部变量:必须声明和初始值
        int i = 10;
        System.out.println(i);
        
        //变量类型   变量名字 = new 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() {
        System.out.println()
    }
}

常量

常量(Constant):初始化(initialize)后不能再改变值!不会变动的值

所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S9JMuGvi-1623063031739)(D:\遇见狂神说\图片\QQ截图20210514172007.png)]

常量名一般使用大写字母

public class Demo09 {
    
    //修饰符,不存在先后顺序   static  和  final
    static final double PI = 3.14;
    
    public static void main(String[] args) {
        System.out.println(PI);
    }
}

变量的命名规范

所有变量、方法、类名:见名知意

类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母大写lastName

局部变量:首字母小写和驼峰原则

常量:大写字母和下划线:MAX_VALUE

类名:首字母大写和驼峰原则:Man,GoodMan

方法名:首字母小写和驼峰原则:run(),runRun()

运算符 优先级()

Java语言支持如下运算符

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7mRxARcl-1623063031739)(D:\遇见狂神说\图片\QQ截图20210515154900.png)]

主要是前四类

public class Demo10 {    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);   //30        System.out.println(a-b);   //-10        System.out.println(a*b);   //200        System.out.println(a/(double)b);   //0.5            }}
public class Demo11 {    public static void main(String[] args) {        long a = 1232123123L;        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    }}
public class Demo12 {    //关系运算符返回的结果:  正确 ,错误     布尔值    // if        int a = 10;    int b = 20;    int c = 21;        //取余:模运算    System.out.println(c%a);  //1   // c / a    21 / 20  =  2......1        System.out.println(a>b);  //false    System.out.println(a<b);  //true    System.out.println(a==b);  //false    System.out.println(a!=b);  //true    }}

自增自减运算符、初识Math类

package operator;public class Demo04 {    public static void main(String[] args) {        //++   --    自增 , 自减    一元运算符        int a = 3;                int b = a++;  //执行完这行代码后,先给b赋值,再自增        //a++   a = a + 1        System.out.println(a);  //4        //a++  a = a + 1        int c = ++a;  //执行完这行代码前,先自增,再给b赋值                System.out.println(a);  //5        System.out.println(b);  //3        System.out.println(c);  //5                //幂运算   2^3   2*2*2 = 8    很多运算,我们会使用一些工具来操作        double pow  = Math.pow(2, 3);        System.out.println(pow);  //8.0    }}

逻辑运算符、位运算符

package 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));  //false        System.out.println("a || b:"+(a||b));  //true        System.out.println("!(a && b):"+!(a&&b));  //true                //短路运算        int c = 5;        boolean d = (c<4)&&(c++<4);        System.out.println(d);  //false        System.out.println(c);  //5    }}
package operator;public class Demo06 {    public static void main(String[] args) {        /*        A = 0011 1100        B = 0000 1101        ------------------------------------        A&B = 0000 1100        A|B = 0011 1101        A^B = 0011 0001        ~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);  //16    }}

三元运算符及小结

package operator;public class Demo07 {    public static void main(String[] args) {        int a = 10;        int b = 20;                a+=b;  //a = a + b        System.out.println(a);  //30                a-=b;  //a = a - b        System.out.println(a);  //10                //字符串连接  + ,  String        System.out.println(""+a+b);  //1020        System.out.println(a+b+"");  //30    }}
package operator;//三元运算符public class Demo08 {    public static void main(String[] args) {        // x ? y : z        //如果x==true, 则结果为y, 否则结果为z                int score = 50;        String type = score < 60 ?"不及格":"及格";  //必须掌握        //  if        System.out.println(type);  //不及格    }}

包机制

为了更好地组织类,Java提供了包机制,用于区别类名的命名空间

包语句的语法格式为:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H23nvFQK-1623063031740)(D:\遇见狂神说\图片\QQ截图20210516144301.png)]

一般利用公司域名倒置作为包名;(com.baidu.www)

为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用“import”语句可完成此功能

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jS09ofJH-1623063031741)(D:\遇见狂神说\图片\QQ截图20210516144309.png)]

package com.kuang.operator;//导入这个包下所有类!import com.kuang.base.*;import java.util.Data;public class Demo08 {    public static void main(String[] args) {        Date    }}

《阿里巴巴Java开发手册》

JavaDoc生成文档

JavaDos

javadoc命令是用来生成自己的API文档的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8raAAH0d-1623063031741)(D:\遇见狂神说\图片\QQ截图20210516145451.png)]

参数信息

  • @author 作者名
  • @version 版本号
  • @siince 指明需要最早使用的jdk版本
  • @param 参数名
  • @return 返回值情况
  • @throws 异常抛出情况
  • JDK帮助文档(百度搜索)
package com.kuang.base;/** * @author kuangsgen * @version 1.0 * @since 1.8 */public class Doc {    String name;        /**     * @author kuangsgen     * @version 1.0     * @since 1.8     */    public String test(String name) throws Exception{        return name;    }            //我是通过命令行  javadoc  参数  Java文件        //作业:学会查找使用IDEA生产JavaDoc文档!   面向百度编程!}
这篇关于Java基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!