0
点赞
收藏
分享

微信扫一扫

Java基础知识点整理

生命中最美的是成长 2022-02-07 阅读 87

Java基础知识点

Java语言是一种优秀的编程语言,由C语言、C++语言发展而来。Java语言提供了一些有效的新特性,使得使用Java比C++更容易写出“无错代码”。

Java特性和优点

  1. 面向对象编程的思想,更简单有效,Java省略了C++语言中所有难以理解的部分,例如头文件、指针、结构、单元等等。

  2. 可移植性,跨平台,“一次编写,到处运行”。

    Java程序实际上没有直接和操作系统打交道,而是在JVM虚拟机(用C++语言实现的位于操作系统之下的虚拟的计算机)上运行的,JVM屏蔽了不同操作系统之间的差异。

  3. 高性能,Java是一种解释型语言,所以其执行效率相对C/C++语言来说会慢一些,但它并不是完全的解释型,而是一种解释型和编译型的折中。

    使用Java语言编写程序,首先使用编译软件或集成开发环境编写源程序,再使用Java编译器进行一次伪编译,将源程序编译成为中间码(字节码文件.class),最后再使用Java解释器进行解释。

    这一手段使得其性能得到提高。

  4. 分布式计算,Java语言拥有强大的、易于使用的连网能力,Java应用程序可以像访问本地文件系统那样通过URL访问远程对象。

  5. 动态性,反射机制,在Java语言中可以简单直观的查询运行时的信息,也可以将新代码加入到正在运行的程序中去。

  6. 多线程,Java语言的多线程处理能力使得程序能够具有更好的交互性、实时性。

  7. 安全性,Java语言在设计之初就在安全性方面考虑很仔细,通过Java可以构建出防病毒、防篡改的系统。

  8. 健壮性,Java拥有异常机制,垃圾清理机制。

    Java语言在伪编译阶段做了许多潜在问题的检查,由于省略了指针与内存管理,避免了很多在程序运行时才能被发现的问题。

    此外,Java提供了对内存的自动管理,程序员无需在程序中进行分配、释放内存。

Java三大版本

JavaSE:标准版(桌面程序、控制台开发……)

JavaME:嵌入式开发(手机、家电……)

JavaEE:E企业级开发(web端、服务器开发……)

了解JDK、JRE、JVM

JDK:Java Development Kit

JRE:Java Runtime Environment

JVM:Java Virtual Machine

IMG_0277_20220206-133856_.PNG

Java基础语法

01-注释、标识符、关键字
  • 注释:书写注释是一个很好的习惯,注释不会被执行,目的是让人看懂

    Java中的三种注释:

    1. 单行注释://注释
    2. 多行注释:/* 注释 */
    3. 文档注释: /** 注释 */
  • 标识符:程序员自主命名的符号,类名、变量名、常量名、接口名、方法名等等

    命名规则与规范:

    1. 只能由数字、字母(包括中文)、下划线、美元符号组成
    2. 不以数字开头
    3. 关键字不做标识符
    4. 严格区分大小写
    5. 见明知意
    6. 接口与类名:每个单词首字母大写
    7. 变量名与方法名:第一个单词首字母小写,第二个单词开始首字母大写
    8. 常量名:所有字母大写,单词与单词间采用下划线衔接
  • 关键字:SUN公司提前定义好的具有特殊含义的单词

    IMG_0278_20220206-135622_.PNG

02-数据类型

数据类型用来声明变量,程序在运行过程中根据不同的数据类型分配不同大小的空间。

数据类型分为两大类:基本类型(primitive type)和引用类型(reference type)

  • 基本数据类型

    数值类型占字节取值范围默认
    整数型byte(字节型)1[-27~27-1]0
    short(短整型)2[-215~215-1]0
    int(整型)4[-231~231-1]0
    long(长整型)8[-263~263-1]0L
    浮点型float(单精度)4[-231~231-1]0.0f
    double(双精度)8[-263~263-1]0.0
    字符型char(字符型)2[0~216-1]‘\u0000’
    布尔类型boolean(布尔型)1true、falsefalse
  • 引用数据类型

    类(如字符串类String)、接口、数组

    其实Java中除了8种基本数据类型之外,其余的都属于引用数据类型

  • 补充

    bit:位,一个二进制码0/1,是计算机内部数据存储的最小单位

    byte:字节,B,1B=8bit,是计算机内部数据处理的基本单位

    1024B=1KB

    1024KB=1M

    1024MB=1G (210=1024)

  • 扩展

    整数扩展:Java中不同进制的表示

    //二进制
    int i1=0b10;
    //八进制
    int i2=010;
    //十进制
    int i3=10;
    //十六进制
    int i4=0x10;
    

    输出结果:

    20220206144808.png

    浮点数扩展:大小有限,结果会舍入误差,有时接近但不相等,因此最好完全避免使用浮点数进行比较。使用BigDecimal,Java语言的一种数学工具类。

    字符扩展:ASCII码,采用1B进行存储,所有的字符本质还是数字

    字符十进制二进制
    0480011 0001
    A650100 0001
    a970110 0001

    转义字符

    \t制表符
    \n换行符
03-类型转换

8种基本数据类型中,除了boolean类型不能转换,其余七种都可以转换。多种不同类型的数据在做运算时,要先转换为同一种数据类型(容量最大的那一种)。

byte、short、char类型在做混合运算时要先各自转换成int类型。

如果int类型没有超出byte、short、char的取值范围,可以直接赋值给这三种类型的变量。

  1. 自动类型转换:小容量向大容量转换

  2. 强制类型转换:大容量向小容量转换,编写时必须添加“强制类型转换符”

    语法:(转换后的数据类型)转换前的数据类型变量名;

    强制类型转换在运行时可能出现精度损失、内存溢出等问题。

int a=10_0000_0000;//数字间可以用下划线隔开
int b=20;

long ab1=a*b;//内存溢出,运算过程是int型,运算后已经溢出了
long ab2=(long)a*b;//在运算前转换,运算过程一直是long型
long ab3=a*(long)b;

输出结果:

20220206155006.png

04-变量、常量
  • 变量:内存中存储数据的最基本单元

    1. 变量三要素:变量名、变量类型、作用域(值,内容空间复用)

    2. 变量声明:

      语法:数据类型 变量名

      注意:变量必须先声明,再赋值,最后才能访问;

      ​ 变量可以重复赋值,但不可重复声明。

    3. 变量的作用:

      • 未声明变量的情况:

        System.out.println(100);
        System.out.println(100);
        

        输出结果都为100,但分别占用不同的内存空间。

      • 已声明变量的情况:

        int i=100;
        System.out.println(i);
        System.out.println(i);
        

        输出结果都为100,但两者占用相同的内存空间,实现了内存空间复用,节省开销。

    4. 理解作用域:根据声明变量的位置进行划分

      1. 类变量(静态变量):在方法体之外声明的变量,类加载时初始化并分配空间;
      2. 实例变量:在方法体之外声明的变量,构造方法执行时、创建对象时分配空间。从属于对象
      3. 局部变量:在方法体之内声明的变量,方法执行过程中分配空间。局部变量只在当前方法体中有效,在使用局部变量前必须初始化(赋初始值),在方法体执行结束后局部变量会释放空间。

      20220206163320.png

      由上图可知,局部变量开辟的是栈空间,而栈空间不会对变量进行初始化,所以我们要给局部变量赋初始值。

      堆空间会对变量进行初始化,自动给变量赋数据类型默认值,方法区相当于是堆空间,也会进行初始化。

  • 常量:初始化后不能再被改变值,使用修饰符final。

    语法:final 数据类型 常量名 = 初始值;

05-运算符Operator
算术运算符+ , - , * , / (取商) , % (取余,模运算) , ++ , - -
赋值运算符= , += , -= , *= , /= , %= , ^= , &= , |= , <<= , >>=
关系运算符> , < , >= , <= , == , != , instanceof
逻辑运算符& , | , ! , &&(短路与) , ||(短路或)
位运算符& , | , ^ (异或) , ~ (取反) , >> (右移1位相当于除以2), << (左移1位相当于×2)
条件运算符布尔表达式 ? 表达式1 : 表达式2(布尔表达式为true时执行表达式1,否则执行表达式2)
其他new

注意

  1. 变量名++,变量名- -,表示变量先赋值后自增
  2. ++变量名,- -变量名,表示变量先自增后赋值
06-包机制Package、JavaDoc
  • 包机制:为了更好的组织,Java提供包机制,用于区别类名的命名空间,相当于文件夹。一般利用企业域名倒置作为包名,要使用其他包下的类时,需要使用import语句导入相应的包。

  • JavaDoc:JavaDoc命令是用来生成自己API文档的,写在类的前面就是该类的注释,写在方法的前面就是该方法的注释。

    参数信息:

    1. @author 作者
    2. @version 版本号
    3. @since 指明需要使用的最早的jdk版本
    4. @param 参数名
    5. @return 返回情况
    6. @throws 异常抛出情况

如有错误,感谢指正!

举报

相关推荐

0 条评论