(Java基础篇)一、Java语言特点

Java语言特点

  本专栏主要学习Java基础和Spring以及开发的一些其他工具等,三个月内迅速通过冲刺offer。

面向对象

  封装:这个需要先提到开闭原则,开闭原则是指对扩展开放,但是对修改封闭。这个是Java编程思想的重要原则之一。封装既是对类进行保护,对外界而言其内部是隐藏的,暴露给外界的只是提供可访问的方法。

  • public:对外完全公开。
  • protect:只对同一个包中的类或子类公开,弱于public。
  • default:只对同一个包公开,如果接口中用了该修饰符修饰,那么实现类不需要实现该方法(除非实现的多个接口都有同名的default方法)。
  • private:不对外公开,只能在内部访问,子类可以通过getter和setter等方法访问父类私有属性。

  继承:继承增强了代码的复用能力,一般以接口、抽象类、(默认实现类、)实现类这样的结构。注意重载和重写的区别。

  多态:这个比较抽象,比如重载就是类内部多态的体现,重写是子类和父类之间的多态。借助多态可以增强程序可拓展性和通用性。

跨平台

  Java最大的优势之一就是跨平台,可以在各种操作系统中通过Java虚拟机运行。本人对Java是编译型语言还是解释型语言没有明确的答案。
Java编译运行
  编译阶段将使用javac命令生成.java文件的字节码文件(.class文件),然后将字节码文件放到JVM(Java虚拟机)中运行,但是与C++一次编译即可运行不同,运行前需要解释为二进制码才可以真正的运行。

多线程、可靠性、高效性

  这里暂时先不详细介绍多线程机制,Java内部提供了多线程支持,不需要调用操作系统的多线程。

  Java自身拥有异常处理机制和内存管理机制,当程序运行过程中发生异常情况时,程序会抛出封装错误信息的异常。抛出异常指的是异常对象,这些对象都继承了Throwable,大概有Error和Exception两种大类。

 &emps;通过Just In Time将热点代码直接编译成与操作系统对应的机器码,减少编译次数(编译时如果是热点代码则不会经过解释器,而是会进入JIT,由JIT编译的字节码生成的机器码会被保留)。

网络编程

  Java支持网络编程,这里不做详细介绍,它从语言上提供对网络程序的支持,通过网络类以及JVM实现了跨平台的网络库。

JVM、JDK、JRE

  JVM:是运行Java字节码的虚拟机,在不同的操作系统上对相同的字节码进行“解释”,它是Java语言跨平台的关键所在。

  JDK:全称Java Development Kit,它是功能齐全的Java SDK,它包含了JRE、编译器javac、文档注释工具javadoc、调试器jdb等。

  JRE:全程Java Runtime Environment,它是Java运行环境。JRE仅包含Java运行时环境和必要的库,而JDK包含了JRE和javac、javadoc等工具。

JIT与AOT

  AOT全称Ahead Of Time,运行前编译,与JIT相反,主要区别在于是否在“运行”的过程中进行编译。

  • JIT优势
    - 实时生成最优字节码
    - 需要动态链接时,必须使用JIT
    - 根据内存实际占用调整,内存利用更合理
  • JIT缺陷
    - 需要占用额外资源进行编译
  • AOT优势
    - 运行前编译,避免编译消耗性能
    - 显著提升程序启动速度
  • AOT缺点
    - 不支持动态特性,例如CGLIB动态代理,在运行时直接在内存中生成并加载修改后的字节码文件。
    一个具有注脚的文本。[^1]

参考链接: JavaGuide

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值