当前位置:网站首页 > Java基础 > 正文

会java基础能赚钱吗



Java基础复习

Java语言特点

  1. 简单易学;
  2. 面向对象(封装,继承,多态);
  3. 平台无关性( Java 虚拟机实现平台无关性);
  4. 支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而 Java 语言却提供了多线程支持);
  5. 可靠性;
  6. 安全性;
  7. 支持网络编程并且很方便( Java 语言诞生本身就是为简化网络编程设计的,因此 Java 语言不仅支持网络编程而且很方便);
  8. 编译与解释并存;
  9. 在企业级开发中有极其强大的生态

JVM

Java 虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM 有针对不同系统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,它们都会给出相同的结果。(实现跨平台的特性)。

会java基础能赚钱吗在这里插入图片描述
.java文件可以被Javac程序编译成.class字节码文件,JVM在将其解释成机器可执行的机器码。(JVM只面向字节码,只要符合JVM字节码规范的都可以运行,无论字节码是由Java文件编译过来还是python文件都可以运行)

Java数据类型

在这里插入图片描述
Java具有确定的数据类型,它不像其它的编程语言一样会随着硬件的架构变换而变化,这也是Java比其他语言具有更好的可移植性的原因之一。

boolean 只有两个值:true、false,可以使用 1 bit 来存储,但是具体大小没有明确规定。JVM 会在编译时期将 boolean 类型的数据转换为 int,使用 1 来表示 true,0 表示 false。JVM 支持 boolean 数组,但是是通过读写 byte 数组来实现的。

基本类型都有对应的包装类型,基本类型与其对应的包装类型之间的赋值使用自动装箱与拆箱完成。以Integer为例

面试题

x,y是两个不同的对象,他们不相等可以理解,那么为什么z == w呢?这就涉及到Java里面的缓存池技术了。以Integer为例,Java会缓存-128 ~127范围内的对象,调用Integer.valueOf()会判断传入的值在不在范围,若在直接返回缓存池里的对象

在这里插入图片描述
在 jdk 1.8 所有的数值类缓冲池中,Integer 的缓冲池 IntegerCache 很特殊,这个缓冲池的下界是 - 128,上界默认是 127,但是这个上界是可调的,在启动 jvm 的时候,通过 -XX:AutoBoxCacheMax= 来指定这个缓冲池的大小,该选项在 JVM 初始化的时候会设定一个名为 java.lang.IntegerCache.high 系统属性,然后 IntegerCache 初始化的时候就会读取该系统属性来决定上界。

为什么浮点型数据没有缓存池?
你能说出 0~1直接到底有多少个浮点型数据不?

Java参数传递

Java的参数传递都是值传递而不是引用传递,对应基本数据类型,Java会拷贝一份值,然后传递到形参中,对于引用数据类型Java会把引用的地址以值的形式传递给形参。
示例:

分析
在这里插入图片描述

在这里插入图片描述

final关键字

  • final关键字修饰类,类不能被继承,类里的所有方法都隐式的被final关键字修饰
  • final关键字修饰方法,方法不能被重写,private方法被final关键字隐式修饰
  • final关键字修饰变量,变量就为编译时常量,在运行时可以通过反射进行修改,若final变量赋予了初始值,在编译期进行了优化 return (final) var ---> retunrn var的字面量。

static关键字

  • 修饰成员变量和成员方法: 被 static 修饰的成员属于类,不属于单个这个类的某个对象,被类中所有对象共享,可以并且建议通过类名调用。被 static 声明的成员变量属于静态成员变量,静态变量 存放在 Java 内存区域的方法区。调用格式:类名.静态变量名 类名.静态方法名()
  • 静态代码块: 静态代码块定义在类中方法外, 静态代码块在非静态代码块之前执行(静态代码块—>非静态代码块—>构造方法)。 该类不管创建多少对象,静态代码块只执行一次.
  • 静态内部类(static 修饰类的话只能修饰内部类): 静态内部类与非静态内部类之间存在一个最大的区别: 非静态内部类在编译完成之后会隐含地保存着一个引用,该引用是指向创建它的外围类,但是静态内部类却没有。没有这个引用就意味着:1. 它的创建是不需要依赖外围类的创建。2. 它不能使用任何外围类的非 static 成员变量和方法。

Java异常体系

在这里插入图片描述
Java异常分为Exceptions 和 Errors,他们都继承与Throwable。

  • Exception:程序能处理的异常,可以通过try,catch处理掉,其又分为受检查Exceptions和非受检查异常
  • Errors:程序自己不能处理的异常,如内存溢出异常,栈溢出异常,发生这种异常虚拟机会选择结束掉线程
  1. 受检查异常
    Java 代码在编译过程中,如果受检查异常没有被处理的话,就没办法通过编译 。
    除了及其子类以外,其他的类及其子类都属于受检查异常 。常见的受 检查异常有: IO 相关的异常、、...。
  2. 非受检查异常
    Java 代码在编译过程中 ,我们即使不处理不受检查异常也可以正常通过编译。

  • 上一篇: java 基础组件
  • 下一篇: java零基础招聘骗局
  • 版权声明


    相关文章:

  • java 基础组件2024-10-18 10:42:05
  • java基础教程282024-10-18 10:42:05
  • java 基础 代码 详解2024-10-18 10:42:05
  • java基础中的运算符2024-10-18 10:42:05
  • java基础转向jsp难吗2024-10-18 10:42:05
  • java零基础招聘骗局2024-10-18 10:42:05
  • 0基础跳槽学java2024-10-18 10:42:05
  • java零基础发展史2024-10-18 10:42:05
  • 0基础java费用2024-10-18 10:42:05
  • 深耕java基础2024-10-18 10:42:05