Java基础知识-基础篇

Java安全入门基础知识篇-01 intell常用快捷键:ctrl+n 快速查找定位类的位置ctrl+q 快速查看某个类的文档信息shift + F6 快速类、变量重命名ctrl + i 在当前类实现接口的方法ctrl + o 复写基类的方法alt+insert 快速设置类的方法ctrl+shift+a 快速查找各种类,变量,操作ctrl+alt+b 定位抽象方法的实现ctrl+alt+v 反射提取出类的对象ctrl+/ 注释/取消单行ctrl+shift+/ 注释多行shift+F1 浏览器中打开当前元素对应的文档。 阅读详情

Java语言特点

image-20240707093435191

  • 面向对象(封装、继承、多态)
  • 平台无关性(一次编写,随处运行)
  • 健壮性(垃圾回收机制)
  • 安全性(防止直接操作内存,多种异常处理机制)
  • 多线程能力

JVM vs JRE vs JDK

JVM:Java虚拟机,运行Java字节码的虚拟机。字节码和JVM是实习Java平台无关性的关键。

所有程序都会被编译为.class文件,然后交给JVM执行

image-20240707094946251

JRE:JVM+核心类库,是Java程序运行的必要条件。

JRE是Java的运行环境,如果只运行不开发那么只安装JRE即可。

image-20240707095423071

JDK:JRE+Java工具+编译器+调试器。

JDK是功能齐全的Java SDK,是提供给开发者使用的。

image-20240707095703773

Java是编译型还是解释型语言

编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等.

解释型语言:编写的程序不进行预先编译,以文本方式存储程序代码。在发布程序时,看起来省了道编译工序。但是,在运行程序的时候,解释性语言必须先解释再运行。

而Java则是编译与解释共存:Java程序需要先将.java文件编译成.class文件,.class文件又需要解释器来解释执行,翻译为机器能够理解的代码。

面向对象与面向过程的区别

面向对象:把当前问题先分解为各个对象,然后用对象执行方法解决问题。

面向过程:把解决问题的过程拆分为一个一个的方法,通过一个一个方法的执行来解决问题。

面试时候可举例说明,例如把大象放进冰箱

面向对象

  1. 冰箱(open(){} close(){})
  2. 大象(enter(冰箱){})
  3. 人(open(冰箱){冰箱.open()} putIn(大象,冰箱){大象.enter(冰箱)} close(冰箱){冰箱.close()})

面向过程

  1. 人打开冰箱门
  2. 人把大象放进去
  3. 人关上冰箱门

优缺点

面向对象

  • 易维护,易复用,易拓展,由于面向对象的三个特性,可以设计出低耦合的系统
  • 性能比面向过程低

面向过程

  • 性能高,但比较消耗资源
  • 没有面向对象那么易维护,易复用,易拓展

面向对象的特性

  • 封装:将类的信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类的方法实现对隐藏信息的操作和访问。
  • 继承:从已有的类中派生出新的类,新的类继承父类的属性和行为,并能扩展新的能力,提高程序的重用性和易维护性(ps. Java中只能继承一个父类)。
  • 多态:一个对象具有多种的状态,具体表现为父类的引用指向子类的实例。多态需要以下几个特点
    • 对象之间具有继承(父类)/实现(接口)的关系
    • 只有在程序运行的时候才知道调用的是那个子类的方法。

Java的基本数据类型

基本类型字节包装类型
byte1Byte
short2Short
int4Integer
float4Float
double8Double
Long8Long
char2Character
boolean1个bitBoolean

为什么不能用浮点型来表示金额

因为不是所有的小数都能用二进制表示,所以,为了解决这个问题,IEEE提出了一种使用近似值表示小数的方式,并且引入了精度的概念。这就是我们所熟知的浮点数。所以就会导致小数精度发生损失的情况。

所以金额可使用Long或者BigDecimal来表示。

基本类型与包装类型区别

  • 默认值:包装类默认值为null,基本类型有自己的默认值。
  • 比较方式:基本类型用==,包装类型使用equals()。
  • 存储位置:基本类型的局部变量存放到虚拟机栈的局部变量表中,而成员变量(未static修饰)存放到JVM堆中,而包装类型属于对象,大多数存放到堆中(ps.大多数是因为看它是否进行逃逸分析)。

包装类型的缓存机制

Byte,Short,Integer,Long 默认创建了数值 [-128,127] 的相应类型的缓存数据。

Character 创建了数值在 [0,127] 范围的缓存数据。

Boolean 直接返回 True or False。

public static Byte valueOf(byte b) {
    final int offset = 128;
    return ByteCache.cache[(int)b + offset];
}
public static Short valueOf(short s) {
    final int offset = 128;
    int sAsInt = s;
    if (sAsInt >= -128 && sAsInt <= 127) { // must cache
        return ShortCache.cache[sAsInt + offset];
    }
    return new Short(s);
}
public static Integer valueOf(int i) {
    if (i >= IntegerCache.low && i <= IntegerCache.high)
        return IntegerCache.cache[i + (-IntegerCache.low)];
    return new Integer(i);
}
public static Boolean valueOf(boolean b) {
    return (b ? TRUE : FALSE);
}

自动拆箱与自动装箱

装箱:将基本类型转为包装类型,其实也就是自动帮我们调用了valueOf()方法。

拆箱:将包装类型转为基本类型,这是自动帮我们调用xxxValue()方法。

当基本类型与包装类型发生以下几种情况就会帮助我们自动装箱与拆箱。

  • 赋值操作
  • 进行加减乘除混合运算
  • 进行<,>,=比较时候
  • 集合类添加基本数据类型时

==与equals区别

如果是基本类型,==比较的是他们的值,基本数据类型没有equals()。

如果是对象类型,==比较的是它们在内存中存放的地址,equals()默认比较也是内存地址,重写的话会按照重写逻辑去判断。

continue/break/return区别

continue:跳出当前这一次循环,继续下一次循环。

break:跳出当前这个循环体。

return:跳出当前方法,直接结束返回。

重载与重写的区别

同个类中的多个方法可以有相同方法名称,但有不同的参数列表,这就是方法重载。

  • 方法名必须相同
  • 参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可以不同

方法重写发生在父类与子类之间,是子类对父类的允许访问的方法的实现过程进行重新编写。

  • 方法名、参数列表必须相同
  • 子类返回值小等于父类返回值
  • 子类访问修饰符大等于父类
  • 子类抛出异常范围小等于父类
  • 构造方法无法重写
  • 如果父类方法访问修饰符为 private/final/static 则子类就不能重写该方法

ps. 参数列表即参数的类型、参数的个数、参数的顺序

接口与抽象类区别

  • 抽象类中的成员变量可以是各种类型的,接口中的成员变量只能是public static final类型。
  • 抽象类可以有方法实现,而接口的方法中只能是抽象方法(Java 8 之后接口方法可以有默认实现)。
  • 接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法(Java 8之后接口可以有静态方法)。
  • 一个类只能继承一个抽象类,而一个类却可以实现多个接口。
  • 接口是对行为进行约束,实现了某个接口就具有相对应能力,抽象类主要用于代码复用,强调的是所属关系。

引用拷贝/浅拷贝/深拷贝

引用拷贝:两个不同的引用指向同一个对象。

浅拷贝:浅拷贝会在堆中创建一个新的对象,如果原对象内部属性存在引用类型的话,浅拷贝会直接复用内部对象的引用地址。

深拷贝:深拷贝完全创建一个新的对象,对象里面的引用类型对象也自己创建。

image-20240707124603104 image-20240707124936259

image-20240707124759221

实现深拷贝只需要将对象内部的对象也实现clone()方法即可

Object类常用方法

/**
 * 返回当前运行时对象的 Class 对象
 */
public final native Class<?> getClass()
/**
 * 返回对象的哈希码
 */
public native int hashCode()
/**
 * 比较 2 个对象的内存地址是否相等
 */
public boolean equals(Object obj)
/**
 * 创建并返回当前对象的一份拷贝。
 */
protected native Object clone() throws CloneNotSupportedException
/**
 * 返回类的名字实例的哈希码的 16 进制的字符串
 */
public String toString()
/**
 * 唤醒一个在此对象监视器上等待的线程(监视器相当于就是锁的概念)。如果有多个线程在等待只会任意唤醒一个。
 */
public final native void notify()
/**
 * 跟 notify 一样,唯一的区别就是会唤醒在此对象监视器上等待的所有线程,而不是一个线程。
 */
public final native void notifyAll()
/**
 * 暂停线程的执行。
 */
public final native void wait(long timeout) throws InterruptedException
/**
 * 实例被垃圾回收器回收的时候触发的操作
 */
protected void finalize() throws Throwable { }

重写equals时为什么要重写hashCode

因为两个相等的对象的 hashCode 值必须是相等。也就是说如果 equals 方法判断两个对象是相等的,那这两个对象的 hashCode 值也要相等。

如果重写 equals() 时没有重写 hashCode() 方法的话就可能会导致 equals 方法判断是相等的两个对象,hashCode 值却不相等。

String为什么不可变

保存字符串的数组被 final 修饰且为私有的,并且String 类没有提供/暴露修改这个字符串的方法。

String 类被 final 修饰导致其不能被继承,进而避免了子类破坏 String 不可变。

ps. Java 9中将底层char[] 改成了byte[],主要是为了节约String占用内存。

String/StringBuffer/StringBuilder区别

  1. 可变性

    • String不可变
    • StringBuffer/StringBuilder可变
  2. 线程安全

    • String不可变,线程安全

    • StringBuffer线程安全,内部有锁机制

    • StringBuilder线程不安全

使用方面

  • 操作少量数据,使用String
  • 单线程操作多量数据,使用StringBuilder
  • 多线程操作多量数据,使用StringBuffer

什么是字符串常量池

字符串常量池(String Pool)保存着所有字符串字面量,这些字面量在编译时期就确定。字符串常量池位于堆内存中,专门用来存储字符串常量。在创建字符串时,JVM首先会检查字符串常量池,如果该字符串已经存在池中,则返回其引用,如果不存在,则创建此字符串并放入池中,并返回其引用。

其是 JVM 为了提升性能和减少内存消耗针对字符串(String 类)专门开辟的一块区域,主要目的是为了避免字符串的重复创建。

final/finally/finalize区别

  • final 用于修饰属性、方法和类, 分别表示属性不能被重新赋值,方法不可被覆盖,类不可被继承。
  • finally 是异常处理语句结构的一部分,一般以try-catch-finally出现,finally代码块表示总是被执行。
  • finalize 是Object类的一个方法,该方法一般由垃圾回收器来调用,当我们调用System.gc()方法的时候,由垃圾回收器调用finalize()方法,回收垃圾,JVM并不保证此方法总被调用。

Exception与Error区别

Exception:程序本身可以处理的异常,可以通过catch捕获。其又分为Checked Exception(受检查异常,必须处理)和Unchecked Exception(不受检查异常,可以不处理)。

  • Checked Exception:ClassNotFoundException、IOException。
  • Unchecked Exception:NullPointerException、ArrayIndexOutOfBoundsException。

Error:属于程序无法处理的错误,我们无法处理。如OOM等问题

什么是泛型

泛型:泛型就是参数化类型。允许在定义类和接口的时候使⽤类型参数。声明的类型参数在使⽤时⽤具体的类型来替换。

作用:提高代码可读性与安全性。如果没有泛型,我们一个List,我们可以往里面放各种各样的对象,同时取出时候我们也还需要判断属于啥类型对象。使用泛型我们则可以限制放入对象是哪一类对象,对于后续时候则更加清晰明了,也避免其他人乱放入其他对象。

泛型使用

  • 泛型类 public class P
  • 泛型接口 public interface P
  • 泛型方法 public < E > void P()

通配符

  • 上界 <? extends T> 限制只能为T或者T的子类
  • 下界 <? super T> 限制为T或者T的父类

什么是反射

反射:动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。在运行状态中,对于任意一个类,能够知道这个类的所有属性和方法。对于任意一个对象,能够调用它的任意一个方法和属性。

反射优缺点

  • 优点:代码更灵活,解耦,同时能随时获取类或者对象的属性,方法,类名等。
  • 缺点:代码可读性变差,会产生一些安全问题(越过泛型检查、获取到私有变量),同时性能也会带来一定的降低。

序列化与反序列化

序列化:将数据结构或对象转换成二进制字节流的过程

反序列化:将在序列化过程中所生成的二进制字节流转换成数据结构或者对象的过程

ps. 对于不想进行序列化的变量,使用 transient 关键字修饰。

为什么不推荐JDK自带的序列化

  • 性能差:与其他序列化框架相比,JDK自动的性能较差。
  • 不支持跨语言使用:如果调用其他语言的序列化就不支持了。
  • 安全问题:反序列化的数据可能会被用户篡改导致一定的风险。

Java新特性

  • Java 8
    • Lambda 表达式:Lambda允许把函数作为一个方法的参数。
    • Stream API:新添加的Stream API(java.util.stream) 把真正的函数式编程风格引入到Java中。
    • Optional 类:Optional 类已经成为 Java 8 类库的一部分,用来解决空指针异常。
    • Date-Time API:对java.util.Date强有力的补充,解决了 Date 类的大部分痛点。
  • Java 9
    • G1成为默认回收器。
    • 快速创建不可变集合:List.of()、Set.of()、Map.of() 和 Map.ofEntries()等工厂方法来创建不可变集合。
    • String存储结构优化:String 的实现改用 byte[] 数组存储字符串,节省了空间。
  • Java 11
    • HTTP Client API:JDK11引入了一个全新的HTTP客户端API,用于替代老旧的HttpURLConnection API,提供了更高效和灵活的HTTP通信能力。
    • Stream API增强:JDK11对Stream API进行了增强,增加了一些新的操作,如takeWhile()和dropWhile()等,使得流处理更加灵活和高效。
  • Java 17
    • 增强伪随机数生成器:增加了伪随机数生成器的相关类和接口,提供了更高质量的随机数生成能力。
    • Switch类型匹配:新增了类型模式匹配和守卫模式,使得Switch语句的使用更加灵活和强大。
  • Java 21
    • 虚拟线程:JDK21引入了虚拟线程(Virtual Threads)的概念,这是一种轻量级的线程实现,能够显著减少高并发应用程序的编写、维护和观察的工作量。
      11引入了一个全新的HTTP客户端API,用于替代老旧的HttpURLConnection API,提供了更高效和灵活的HTTP通信能力。
    • Stream API增强:JDK11对Stream API进行了增强,增加了一些新的操作,如takeWhile()和dropWhile()等,使得流处理更加灵活和高效。
  • Java 17
    • 增强伪随机数生成器:增加了伪随机数生成器的相关类和接口,提供了更高质量的随机数生成能力。
    • Switch类型匹配:新增了类型模式匹配和守卫模式,使得Switch语句的使用更加灵活和强大。
  • Java 21
    • 虚拟线程:JDK21引入了虚拟线程(Virtual Threads)的概念,这是一种轻量级的线程实现,能够显著减少高并发应用程序的编写、维护和观察的工作量。
    • 分代ZGC:在内存管理和垃圾收集方面进行了优化,提供了更高效的序列集合和分代ZGC,提升了应用程序的性能。
面经系列之Java基础知识问答篇 本文主要分三章,第一章为Java面试和基础学习中常见却很重要的一些问题清单,第二章是对每个问题的详细解答,第三章是对某些问题的程序举例和验证。 阅读详情

相关推荐

CarPlay无线连接背后的‘握手’秘密:深入解读iAP2协议与蓝牙/Wi-Fi协同

本文深入解析了CarPlay无线连接背后的技术细节,重点探讨了iAP2协议与蓝牙/Wi-Fi的协同工作原理。从蓝牙层的UUID识别到iAP2协议的握手过程,再到Wi-Fi热点的建立与优化,详细揭示了CarPlay无线连接的安全机制和调试方法,为开发者提供了实用的技术参考。

weixin_42520573的博客 475

Java基础知识篇(上)

目录Java 基本语法Java中的关键字Java中的修饰符 Java 基本语法 Java语言严格区分大小写 一个java源文件(.java)里可以定义多个 Java 类,但其中最多只能有一个类可以被定义为public类;若源文件中包含public类定义,则该源文件的文件名必须与该public类的类名一致 一个源文件包含N个Java类时,成功编译后会生成N份字节码文件(.class),即每个类都会生成一份单独的class文件,且字节码文件名和其对应的类名相同 若一个类必须运行,则需要有mian

天角蚁 351

哨兵一号数据snap预处理_利用SNAP软件进行Sentinel-1A卫星微波影像的预处理

利用SNAP软件对雷达影像进行预处理,主要包括热噪声去除、轨道文件校正、辐射定标、滤波校正、多普勒地形校正,最终获得入射角和后向散射信息。数据:本次实验所用数据为哨兵一号(Sentinel-1A)干涉宽幅模式(Interferometric Wideswath,IW)下经过多视处理和地距转换的GRD格式产品一般处理流程如下:0 SNAP软件安装软件安装:安装成功后打开SNAP后如图所示:1 数据...

weixin_30000407的博客 1万+

Java IO基础知识总结篇一

IO即 Input/Output,输入和输出。数据输入到计算机内存的过程即输入,反之输出到外部存储(比如数据库,文件,远程主机)的过程即输出。数据传输过程类似于水流,因此称为 IO 流。IO 流在 Java 中分为输入流和输出流,而根据数据的处理方式又分为字节流和字符流。Java IO 流的 40 多个类都是从如下 4 个抽象类基类中派生出来的。InputStream/Reader: 所有的输入流的基类,前者是字节输入流,后者是字符输入流。

xiaoye7288的博客 1304

MiniOSD DIY记

最近迷上了航模,研究了很多东西,感觉路走的长了还是适当要停下脚步休息下总结下。 这次DIY的是一块OSD设备,主要用于航模图传的叠加显示,原理也很简单就是atmel atmega328p+MAX7456芯片,网上卖的成品基本上都是一个原理图。 原理图 我按照我自己的需要做了适当的更改,去掉了DC-DC电路,直接用5V输入,因为摄像头都是5V的,所以DC-DC不是很有必要,体积上更加小了点, 打...

memoff的博客 8518

实战指南!基于STM32的智能环境监测系统(附完整代码+硬件设计+云端对接)

本文提供了一份基于STM32的智能环境监测系统完整实战指南。详细讲解了从硬件选型、电路设计、传感器驱动到数据采集、本地报警逻辑,以及通过ESP8266模块对接OneNET物联网平台实现数据上云的全过程。项目涵盖嵌入式开发与物联网应用核心技能,并提供了多种手机端数据展示方案,非常适合课程设计或毕业设计参考。

weixin_29193359的博客 351

Java基础知识-线程篇

Java线程池是一种用于管理和重用线程的机制,它提供了一种在执行大量异步任务时有效控制线程的方式。使用线程池可以避免频繁创建和销毁线程所带来的性能开销,并能提高程序的响应速度。除了上述几种预定义的拒绝策略外,你也可以通过实现接口来定义自己的拒绝策略。这个接口只有一个方法:通过实现方法,你可以在拒绝策略触发时自定义处理逻辑,例如记录日志、将任务重新放回队列等。

qq_71748390的博客 1370

工业组态软件Intouch(单机版)入门{第二篇}

第5步:*都装好之后,需要进行测试授权是否生效,测试1:能否正常运行项目和编辑项目(能否编辑项目,取决于你的授权是否包含开发功能,如果只是单一的runtime授权,则只能运行项目,不能编辑项目)。在线第3步:点击第一个框右边的按钮,弹出文件浏览窗口,选中你的XMl授权文件,打开,然后你的授权出现在下方的列表中,勾选你的授权,然后点击Activate,等待几秒,授权就会出现在管理器页面的列表中,并且Status会显示Activated。第1步:软件安装好之后,先要配置好授权服务器。等待几秒,激活完成。

weixin_41571357的博客 1万+

编程语言Java入门——基础知识篇(三)类和对象

本文系统介绍了Java面向对象编程的核心概念,包括类与对象、封装、继承、多态三大特性。重点讲解了类的组成部分(成员变量、方法、构造器等)、static关键字用法、this和super关键字区别,以及对象的内存结构和创建过程。同时深入解析了对象的引用机制、垃圾回收原理和内存管理策略,并强调遵循面向对象设计原则的重要性。通过汽车制造、餐厅运营等生动类比,帮助读者理解抽象概念,并提供了大量实用代码示例,如封装实现、继承方法重写、多态应用等,为Java初学者构建了完整的面向对象知识体系。

言不信者行不果,行不敏者言多滞. 2067

STM32内存大小与地址的对应关系以及计算方法

1、概述 在计算机中要访问存储区,都是通过地址来进行访问的,包括所有的外设(比如串口、内存、硬盘等),都对应有一个访问地址,地址就相当于门牌号,有了门牌号,我们才知道操作的是哪一个区域、哪一个外设。 最被大家熟知的是计算机内存,计算机内存有4G、8G,16G等等,对于程序员而言,要在代码中操作这些内存,肯定得知道内存的地址,此外,还需要会计算地址与内存大小的计算方法与对应关系。STM32作为微

Ace's Blog 4万+

华为OD新系统机试真题 - 失灵的键盘(C/C++/Py/Java/Js/Go)

华为OD新系统机试真题 【失灵的键盘】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD4月15号机试真题【失灵的键盘】

qq_45776114的博客 1064

Java基础知识篇

Java语言的基础知识包括语法、变量、数据类型、运算符和流程控制语句等。以上是Java语言语法的一些基础知识,掌握这些基础知识对于编写Java程序非常重要。

m0_72014098的博客 525

企业数字化建设之——品牌零售全渠道运营中台解决方案

OMS审单 --> 订单进入OMS待发货列表区域 --> 备货(线下)-->拣货((线下 )-->质检(线下)--> 包装(线下)--> 快递员取货(线下)(物品 + 客户收货地址清单 )--> 快递员发货(2.2.5 正常退货,客户发起 --> 客服助理审核 --> 评审组 --> ( 货物运输 ) -->质检 ->仓库收货入 正常仓库 -->财务退款,记账。OMS审单 --> 订单进入物流公司系统(如:*丰),--> 快递员发货 --> 物流状态同步OMS --> OMS同步物流状态到销售平台。

java_zhong1990的专栏 612

java整除向上取整_面经系列之Java基础知识问答篇

面经系列之Java基础知识问答篇本文主要分三章,第一章为Java面试和基础学习中常见却很重要的一些问题清单,第二章是对每个问题的详细解答,第三章是对某些问题的程序举例和验证。一.问题清单单个java源文件中是否能包含多个类(非内部类)?goto是不是java的关键字?&和&&有什么异同?如何跳出多层嵌套循环?switch语句的变量可以是什么?byte、long、String...

weixin_39712455的博客 307

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

JAVA基础知识总结篇

JAVA基础知识总结篇JAVA基础知识总结篇谈谈你对 Java 平台的理解?“Java 是解释执行”,这句话正确吗?请对比 Exception 和 Error,另外,运行时异常与一般异常有什么区别?int 和 Integer 有什么区别?谈谈 Integer 的值缓存范围?对比 Vector、ArrayList、LinkedList 有何区别? JAVA基础知识总结篇 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一

会打篮球会做饭的程序员 244

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Java复习篇1-基础知识篇

Java复习篇1–基础知识 基础知识Java复习篇1--基础知识一、Java入门1. Java入门Java语言特点JVM,JDK,JREOracle JDK,Open JDKJava和C++的区别Java程序的主类,应用程序和小程序的主类的不同Java应用程序和小程序之间的差别import java和javax的区别为什么说Java语言“编译与解释并存”2. Java语法字符型常量和字符串常量的区别注释标识符和关键字的区别常见的关键字Java序列化中有些字段不想进行序列化(transient)volatil

weixin_43750248的博客 1235

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

基础知识(Java篇)

看Java面试题整理的学习笔记。

努力奋斗的懒星人 490

JAVA基础知识巩固篇一

java基础知识巩固

weixin_48790183的博客 560

编程语言Java入门——基础知识篇(四)包装类、数字处理类

本文详细介绍了Java中的包装类、数字处理类和格式化工具。主要内容包括:1. 八大基本数据类型的包装类(Byte、Short、Integer等)的作用、常用方法和缓存机制;2. Number类及其子类的基本用法;3. Math、BigInteger、BigDecimal等数学运算工具类的使用;4. Random随机数生成器的应用;5. NumberFormat、DecimalFormat等数字格式化工具的使用方法。文章通过大量代码示例展示了这些类的具体应用场景和使用技巧,并提醒读者注意包装类的缓存范围等特殊

言不信者行不果,行不敏者言多滞. 1720

Java基础知识普及之初级篇

今天给大家普及一些Java基础知识,这些基础知识非常适合刚刚开始学习java知识的初学者观看,下面我们正式开始吧! 一、什么是Java、Java2、JDK?JDK后面的1.3、1.4.2版本号又是怎么回事? Java是一种通用的,并发的,强类型的,面向对象的编程语言(摘自Java规范第二版) JDK是Sun公司分发的**Java开发工具,正式名称为J2SDK(Java2 Softw are Develop Kit)。 二、什么是JRE/J2RE? J2RE是Java2 RuntimeEnv..

cs20210713的博客 198

Java基础知识——String篇

String是 Java 中用于表示字符串的类。Java 中的字符串是不可变的,也就是说一旦创建,字符串的内容无法更改。

2301_80386162的博客 1711

Java基础知识篇--概述

java概述 java三大平台介绍: 标准版(Java SE) Java平台标准版(Java Platform, Standard Edition),用于开发和部署桌面、服务器以及嵌入设备和实时环境中的Java应用程序。Java SE包括用于开发Java Web服务的类库,同时,Java SE为Java EE和Java ME提供了基础,基于JDK和JRE。 企业版(Java EE) Java E...

页鸢的博客 279

Java基础知识总结篇

8种基本类型和运算 类型int 4字节 -2147483648,2147483647 包装类Integer 类型char 2字节 Unicode 0,65535 包装类Character 基本的数据类型在声明之后就会立刻在栈上分配内存空间。 注意:Java中所有的数值类型都是有符号的. 基本数据类型和包装类的区别: 在java面向对象编程的思想体系下,基本数据类型不...

qq_36416280的博客 215

java基础知识篇

1.“==”与“equals()”的区别” == 判断的是两个对象的地址是否相等,判断两个对象是不是同一个对象,基本数类型==比较的是值, 引用数据类型==比较的是内存地址,当比较两个引用数据类型时,示例如下: String s="abc"; String b=ab+"c"; String a=new String("abc"); String c=new String("a...

zmm0223的博客 152

java学习基础知识易错篇

java学习基础知识易错篇 算是笔记⑧ 自己的学习记录,适合学习了一些的小可爱,不然可能会觉得有点点乱哦 起名 首先java支持的字符包括英文、数字、中文以及下划线和美元符。 其次取名的原则: 类命名:驼峰命名法,首字母大写 对象、变量和属性命名,也是驼峰命名法,首字母小写 ps:驼峰命名:举例,class MyClass(类名);int tESTiNT 常量命名:全大写,下划线连接 最最最重要的一点:首字符得是英文字母且不能使用保留字 基本数据类型易错 不同数据类型之间的区别:区别在于两点:表示

pursuingSun的博客 317
上一篇: 十分钟学会GC问题简单排查流程
下一篇: LeeCode HOT 100 哈希篇
「已注销」
博客等级 码龄2年 79粉丝 5原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值