Java基础

Java基础

目录

Java基础

注释

标识符

数据类型

类型转换

变量、常量、作用域

变量

常量

变量作用域

基本运算符

自增自减运算符

逻辑运算符、位运算符

三元运算符

包机制

JavaDoc生成文档


注释

  • 平时我们编写代码,在代码量比较少的时候,我们还可以看懂自己写的,但是当项目结构一旦复杂起来,我们就需要用到注释了。

  • 注释并不会被执行,是给我们写代码的人看的

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

Java中的注释有三种:

  1. 单行注释 用法:// 输入内容

  2. 多行注释 用法:/* 输入内容 */

3.文档注释 用法:/** 输入内容 */

标识符

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

关键字

注意事项

  • 所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始

  • 首字符之后可以是字母(A-Z或者a-z),美元符($)、下划线(_)或数字的任何字符组合

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

  • 标识符是大小写敏感的

  • 合法标识符举例:age、$salary、_value、__1_value

  • 非法标识符举例:123abc、-salary、#abc

数据类型

强类型语言

要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。

错误示范:

正确示范:

Java的数据类型分为两大类

  • 基本类型(primitive type)

  • 引用类型(reference type)

public class HelloWorld {
    public static void main(String[] args) {

        //八大数据类型

        //整数
        byte num1 = 10;     //最常用
        short num2 = 20;
        int num3 = 30;
        long num4 = 40L;    //Long类型要在数字后面加个L

        //小数:浮点数
        float num5 = 80.1F;     //float类型要在数字后面加个F
        double num6 = 2.13;

        //字符
        char name1 = 'A';
        //字符串,String 不是关键字
        //String name2 = "chenxin";

        //布尔值:是非
        boolean flag1 = true;
        boolean flag2 = false;
        
    }
}

什么是字节

  • 位(bit):是计算机内部数据储存的最小单位,11001100是一个八位二进制数。

  • 字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示。

  • 1B(byte,字节)= 8bit(位)

  • 字符:是指计算机中使用的字母、数字、字和符号

扩展面试题

public class HelloWorld {
    public static void main(String[] args) {
​
        //整数拓展: 进制  二进制0b   十进制     八进制0    十六进制0x
​
        int i1 = 10;
        int i2= 010;    //八进制0
        int i3 = 0x10;    //十六进制0x  0~9 A~F 16
​
        System.out.println(i1);
        System.out.println(i2);
        System.out.println(i3);
​
        System.out.println("==========================");
​
        //浮点数拓展     有限 离散 舍入误差 大约   接近但不等于
        //最好完全避免使用浮点数进行比较
​
        float f = 0.1f;      //0.1
        double d =1.0/10;       //0.1
​
        System.out.println(f==d);   //false
​
        float d1 = 22412412421414214f;
        float d2 = 1+d1;
        System.out.println(d1==d2); //true
​
        System.out.println("==========================");
​
        //字符拓展
        //所有的字符本质还是数字
        //编码 Unicode 表:97=a    65=A
        char c1 = '中';
        char c2 = 'a';
​
        System.out.println(c1);
        System.out.println((int)c1);    //强制转换
​
        System.out.println(c2);
        System.out.println((int)c2);    //强制转换
​
​
        //  U0000   UFFFF
        char c3 = '\u0061';
​
        System.out.println(c3);     //a
​
        System.out.println("==========================");
​
        //转义字符
        //  \t  制表符
        System.out.println("Hello\tWorld");
​
        //  \n  换行
        System.out.println("Hello\nWorld");
​
    }
}

类型转换

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

低------------------------------------------------------------------>高

byte,short,char--->int--->long--->float--->double

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

    public class HelloWorld {
        public static void main(String[] args) {
    ​
            //强制转换  (类型)变量名 高-->低
            int i = 128;
            byte b = (byte)i;
    ​
            System.out.println(i);
            System.out.println(b);
    ​
            System.out.println("======================================");
    ​
            //自动转换  低-->高
            int a = 128;
            double c = a;
    ​
            System.out.println(a);
            System.out.println(c);
            
            System.out.println("======================================");
    ​
            System.out.println((int)16.8);
            System.out.println((int)-45.89f);
        }
    }

注意事项:

  1. 不能对布尔值进行转换

  2. 不能把对象类型转换为不相干的类型

  3. 在把高容量转换到低容量的时候,强制转换

  4. 转换的时候,可能存在内存内存溢出,或者精度问题!

变量、常量、作用域

变量

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

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

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

 type varChar [=value] [{,varName[=value]}];
    //数据类型 变量名=值;可以使用逗号隔开来声明多个同类型变量。

注意事项

  • 每个变量都有类型,类型可以是基本类型,也可以是引用类型。

  • 变量名必须是合法的标识符。

  • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。

常量

  • 常量:初始化后不能再改变值!不会变动的值。

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

  • 常量名一般使用大写字符。

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

变量的命名规范

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

  • 类成员变量:首字母小写和驼峰原则:monthSalary

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

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

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

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

变量作用域

  • 类变量

  • 实例变量

  • 局部变量

public class Variable{
    static int allClicks=0;         //类变量
    String str = "hello world";     //实例变量
    
    public void method(){
        int i = 0;  //局部变量
    }
}

基本运算符

Java语言支持的运算符

  • 算数运算符:+ - * / % ++ --

  • 赋值运算符:=

  • 关系运算符:> < >= <= == !=instanceof

  • 逻辑运算符:&& || !

  • 位运算符:& | ^ ~ >> << >>>

  • 条件运算符:?:

  • 扩展赋值运算符:+= -= *= /=

演示1

public class HelloWorld {
​
    public static void main(String[] args) {
​
        int a = 10;
        int b = 20;
        int c = 10;
        int d = 10;
​
​
        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println((double)a/b);
    }
}

演示2

public class HelloWorld {
​
    public static void main(String[] args) {
​
        long a = 21387129373213173L;
        int b = 240;
        int c = 10;
        int d = 2;
​
​
        //没有Long时,所有非Int类型转为Int类型
        System.out.println(a+b+c+d);    //Long
        System.out.println(b+c+d);      //Int
        System.out.println(c+d);        //Int
​
    }
}

演示3

public class HelloWorld {
​
    public static void main(String[] args) {
​
        //关系运算符返回的结果:正确,错误  布尔值
        long a = 10;
        int b = 20;
​
        System.out.println(a>b);
        System.out.println(a<b);
        System.out.println(a==b);
        System.out.println(a!=b);
​
    }
}

自增自减运算符

演示1

public class HelloWorld {
​
    public static void main(String[] args) {
​
        //++  --  自增,自减  一元运算符
​
        int a = 3;
​
        int b = a++;    //执行完这行代码后,先给b赋值,再自增
​
        //  a = a+1
        System.out.println(a);
​
        //  a++ a = a+1;
​
​
        System.out.println(a);
        System.out.println(b);
​
​
    }
}

原理

ab
b=a++43

b=a++ 先给b赋值,再自增1

演示2

public class HelloWorld {
​
    public static void main(String[] args) {
​
        //++  --  自增,自减  一元运算符
​
        int a = 3;
​
        int b = a++;    //执行完这行代码后,先给b赋值,再自增
​
        //  a = a+1
        System.out.println(a);
​
        //  a++ a = a+1;
        int c = ++a;    //执行完这行代码后,先自增,再给c赋值
​
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
​
    }
}

abc
b=a++43
c=++a55

b=a++ 先给b赋值,a再自增1

c=++a a先自增1,再给c赋值,b不变

逻辑运算符、位运算符

逻辑运算符

public class HelloWorld {
​
    //逻辑运算符
    public static void main(String[] args) {
​
        //  与(and)  或(or)   非(取反)
        boolean a = true;
        boolean b = false;
​
        System.out.println("a && b:"+(a&&b));   //  逻辑与运算:两个变量都为真,结果才为true
        System.out.println("a || b:"+(a||b));   //  逻辑或运算:两个变量有一个为真,则结果才为true
        System.out.println("!(a && b):"+!(a&&b));   //  如果是真,则变为假;如果是假,则变为真
    }
}

原理

&& 与运算 有假为假

|| 或运算 有真为真

非运算 假为真 真为假

异或运算 同号为真 异号为假

短路运算

public class HelloWorld {
​
​
    public static void main(String[] args) {
​
        //短路
        int a = 3;
        boolean b = (a<1)&&(a++<2);
​
        System.out.println(a);
        System.out.println(b);
    }
}

原理

a=3时,不小于1,则(a<1)是false,第一项为false则短路,后面的a++不会被执行,那么输出还是3, 如果第一项为true,那么继续第二步的运算,输出为4。

我们来测试一下

public class HelloWorld {
​
​
    public static void main(String[] args) {
​
        int a = 3;
        boolean b = (a<10)&&(a++<2);
​
        System.out.println(a);
        System.out.println(b);
    }
}

位运算符

常量数值
A0011 1100
B0000 1101
A&B0000 1100 (有0说0)
A|B0011 1101 (有1说1)
A^B0011 0001 (异或:相同为0,相异为1)
~B1111 0010 (取反)

<< 和 >>

public class HelloWorld {
​
​
    public static void main(String[] args) {
​
        /*
        0000    0000        0
        0000    0001        1
        0000    0010        2
        0000    0100        4
        0000    1000        8
        0001    0000        16
​
        2*8 = 16 2*2*2*2 = 16
        <<  *2
        >>  /2
        */
​
        System.out.println(2<<3);
    }
} 

+= 和 -=

public class HelloWorld {
​
​
    public static void main(String[] args) {
​
​
        int a = 10;
        int b = 20;
​
        a+=b;
​
        System.out.println(a);
        System.out.println(b);
​
        System.out.println("===========================================");
​
        int c = 10;
        int d = 20;
​
        c-=d;
​
        System.out.println(c);
        System.out.println(d);
    }
}

字符串连接符

public class HelloWorld {
​
​
    public static void main(String[] args) {
​
        //  字符串连接符 + ,String
        int a = 10;
        int b = 20;
​
        System.out.println(""+a+b);
        System.out.println(a+b+"");
    }
}

三元运算符

public class HelloWorld {
​
    public static void main(String[] args) {
​
        //  x   ?   y   :   z
        //  如果x=true,则结果为y,否则结果为z
​
        int score = 90;
        String type = score<60 ?"不及格":"及格";
​
        System.out.println(type);
​
    }
}

包机制

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

  • 包语句的语法格式为:

    package pkg1[. pkg2[. pkg3..]];

  • 一般利用公司域名倒置作为包名;例:com.baidu.www

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

    import package1[.package2..].(classmate*);

JavaDoc生成文档

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

  • 参数信息

    • @author 作者名

    • @version 版本号

    • @since 指明需要最早使用的jdk版本

    • @param 参数名

    • @return 返回值情况

    • @throws 异常抛出情况

/**
 * @author chenxin
 * @version 1.0
 * @since 1.8
 */
public class HelloWorld {
​
    String name;
    
    public String test(String name){
        return name;
    }
}

使用idea生成javadoc

在顶部工具栏中,tool里generate JavaDoc,如下配置

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值