Java基础复习

使用狂神的视频复习了一下JavaSE,视频链接:

狂神Java基础_视频链接

Java基础知识

名词解释

JDK = Java Develpment Kit = java 开发工具

JRE = Java Runtime Environment = Java运行环境

JVM = java Virtual Machine = java 虚拟机

JDK = JRE + 开发工具 ,即开发者使用

JRE = JVM + 核心类库 , 即用户使用

JavaSE = J2SE = 标准版,开发本机应用

JavaEE = J2EE = 企业版,开发联网应用

JavaME = J2ME = 移动版,开发移动端应用

安装环境

请确保JDK与IDEA安装完成

Hello World

以往常用Eclipse作为Java的开发软件,

不过现在有了更强大的IDEA。

新建一个Java工程,新建Java类Demo01:

public class Demo01 {
​
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

(打出main会有主方法的提示,打出sout会有输出方法的提示)

点击运行按钮,在控制台打出Hello World:

 

注释

//    单行注释
/*
* 多行注释
* */

单行注释快捷键Ctrl + /,多行注释快捷键Ctrl + Shift + /

变量

标识符和关键字

在所有程序中有特殊意义的文字标记,称为关键字

  • 48个关键字:abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import、int、interface、instanceof、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、try、void、volatile、while。

  • 2个保留字(现在没用以后可能用到作为关键字):goto、const。

  • 3个特殊直接量:true、false、null。

凡是可以由自己命名的地方都称为标识符。 例如,对于常量、变量、函数、语句块、类、项目等都需要一个名字,这些我们都统统称为标识符。

  • 标识符只能以拉丁字母大小写、美元符或下划线开始,只能以这些字符和数字作为组成部分。

  • 标识符不能以关键字命名。

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

数据类型

Java是强类型语言,区别于弱类型语言(如JavaScript),

就是所有数据都要声明数据类型才能够使用。

  • 基本数据类型

    • byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间。

    • short:16位,最大数据存储量是65535,数据范围是-32768~32767之间。

    • int:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。

    • long:64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。

    • float:32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。

    • double:64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。

    • boolean:只有true和false两个取值。

    • char:16位,存储Unicode码,用单引号赋值。

  • 引用数据类型

    • 接口

    • 数组

    public static void main(String[] args) {
        //整数
        int num1 = 10;
        byte num2 = 20;
        short num3 = 30;
        long num4 = 40;
​
        //小数
        float num5 = 10.1F;
        double num6 = 20.2;
​
        //字符
        char word = 'A';
​
        //布尔值
        boolean flag = true;
​
        System.out.println(num1);
        System.out.println(num2);
        System.out.println(num3);
        System.out.println(num4);
        System.out.println(num5);
        System.out.println(num6);
        System.out.println(word);
        System.out.println(flag);
    }

打出上述八大基本类型,其中float必须加F,double可以不加D,long可以不加L。

1bit = 1b = 1位

1Byte = 1B = 8位

1KB = 1024B

1M = 1024KB

1G = 1024M

数据类型的一些拓展:

public static void main(String[] args) {
​
    //整数扩展:     二进制:0b , 八进制:0 , 十六进制:0x
    int i1 = 10;
    int i2 = 010;
    int i3 = 0b10;
    int i4 = 0x10;
​
    System.out.println(i1);
    System.out.println(i2);
    System.out.println(i3);
    System.out.println(i4);
    System.out.println("====================");
​
    //浮点数扩展:    精度丢失
    float f = 0.1F;
    double d = 0.1;
    System.out.println(f);
    System.out.println(d);
    System.out.println(f==d);
    System.out.println("====================");
​
    //字符扩展:     类型转换与Unicode码
    char c1 = '1';
    char c2 = '我';
    System.out.println((int)c1);
    System.out.println((int)c2);
    for (int i = 65;i <= 122;i++){
        System.out.print((char) i);
    }
​
}

打出以上代码并体会结果。

类型转换

不同类型的数值运算时,会进行自动转换,规则是整数变浮点、容量小的变容量大的,

在数值前加个括号,里面写要转换的类型,就能强制转换

如果将容量大的数值强行转换为容量小的,就会溢出:

    int i = 128;
    byte b = (byte) i;
    System.out.println(b);

这样打出来的不是128,而是-128,因为byte的范围是-128到127,溢出而循环变成-128了。

变量、常量与作用域

变量有三个要素:变量名、变量类型、作用域。

变量类型除了基本类型,还可以是引用类型(如String)。

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

//数据类型 变量名 = 数值
int i = 1;
String str = "小明";

根据作用域,可以将变量分为类变量实例变量局部变量

类变量带static关键字,实例变量不带,而局部变量是写在方法里的。

类变量带有static,比较好引用,

实例变量则要将类实例化,才能引用,

局部变量的生命周期只在方法中。

实例变量无需初始化,因为会自动赋默认值:

public class Demo04 {
​
    String name;
    int age;
public static void main(String[] args) {
​
    Demo04 demo04 = new Demo04();
    System.out.println(demo04.name);
    System.out.println(demo04.age);
​
}
}

输出的默认值为null和0。(除了基本类型,默认值都是null。布尔值的默认值是false)

而常量一旦初始化后就不能更改:

//final 数据类型 常量名 = 数值
//常量名一般用大写字符
final double PI = 3.14;

命名规则:

  • 变量、方法名:首字母小写,驼峰命名

  • 类名:首字母大写,驼峰命名

  • 常量:全部大写,下划线分隔

通用规则:见名知意。

运算符

基本运算符

  • 算术运算符:+,-,*,/,%,++,--

  • 赋值运算符:=

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

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

十分好理解,加减乘除、取模、自增自减。赋值。大于小于,大于等于小于等于,等于不等于,

instanceof判断a是否为A类的一个示例,输出布尔值。与或非。

输出整数运算结果时,如果操作数有long则返回long,否则都是int。

自增自减运算符与Math类

运行以下代码并体会结果:

public static void main(String[] args) {
    int a = 10;
    int b = 10;
    System.out.println(a++);
    System.out.println(++b);
    System.out.println(a);
    System.out.println(b);
​
}

a++就是先用a,然后a+=1,++b就是先b+=1,然后用b。自减也是同理。

(a += b等价于a = a+b)

平时我们会用尖号表示幂运算,如2^3=8,但Java中没有这种写法,我们要借助Math类来实现幂运算:

    int c = 2;
    int d = 10;
    double res = Math.pow(c,d);
    System.out.println((int)res);

Math类下有很多方法,可以实现我们常用的数学运算。

逻辑运算符及其他

与或非运算:

    boolean a = true;
    boolean b = false;
    System.out.println(a&&b);
    System.out.println(a||b);
    System.out.println(!a);

&&是短路与,前面的假了后面的就不执行了,试将以下代码的短路与&&换成非短路与&,观察c的值:

int c = 5;
System.out.println((c<4)&&(c++<4));
System.out.println(c);

短路或||和非短路或|同理。

作为位运算符

    int A = 0b0000_1100;
    int B = 0b0011_1100;
    System.out.println(A&B);
    System.out.println(A|B);
    System.out.println(A^B);

A&B = 00001100 = 12,A|B = 00111100 = 60,A^B = 00110000 = 48。

即与、或、异或运算。

此外还有左移、右移:

System.out.println(2<<3);
System.out.println(8>>2);

输出的结果是16、2。左移一位就是乘二,右移一位就是除以二,优点是效率极高。

字符串连接符

System.out.println(""+1+2);
System.out.println(1+2+"");

第一行输出是12,第二行输出是3。

因为加号两边有字符串会将整个结果变成字符串,所以第一行的结果是拼接好的字符串12,

第二行是先进行了加法运算再拼接成字符串。

三元运算符

int a = 1;
System.out.println("a="+a+(a%2==1?",这是奇数":",这是偶数"));

a ? b : c就是三元运算符的表达形式,即a为真就执行b,否则执行c,

所以以上代码中,根据a%2是否为1判断了a是奇数还是偶数,可以将a改成2进行测试。

当然了,这个效果一般用if关键词来完成。

包机制

包就是文件夹,用于区别类的命名空间。

一般使用公司域名倒置作为包名。

使用impact关键词可以导入其他包中的类。

想导入一个包下所有的类,只需要使用通配符 * 即可。

JavaDoc文档

使用文档注释可以用于生成JavaDoc文档:

/**
 * @author Rosemary
 * @version 1.0
 * @since 1.8
* */
public class Demo08 {
//    JavaDoc文档
​
    String name;
​
    /**
     *
     * @param name 传入的名字
     * @return 返回名字
     */
    public String test(String name){
        return name;
    }
}

点击导航栏的Tool-生成JavaDoc,输入语言为zh_CN,并输入参数-encoding utf-8 -charset utf-8:

 

可以在生成的位置看到文档:

 

可以点进index.html看看。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值