
java基础
文章平均质量分 96
Java基础专栏致力于系统讲解Java语言的核心知识点,内容涵盖语法基础、面向对象编程、常用API、集合框架、异常处理等模块,帮助初学者夯实编程基础,为深入学习Java开发打下坚实基础。
冬天vs不冷
Java开发工程师,专注于分享和记录当前流行技术,涵盖从基础使用到源码解析的各个方面(互关互三)
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java基础(十四):枚举类详解
Java枚举全解析:从基础定义、特性方法到单例最佳实践,解锁类型安全常量的高效用法与设计优势。原创 2025-09-25 15:51:48 · 1444 阅读 · 272 评论 -
Java基础(十三):内部类详解
深入浅出Java内部类:从基础概念到高级应用,掌握成员、静态、局部、匿名四大类型的核心用法与设计优势!原创 2025-09-24 08:00:00 · 1342 阅读 · 220 评论 -
Java基础(十二):抽象类与接口详解
深入解析Java抽象类与接口的核心区别、特性及适用场景,助你掌握多态设计的最佳实践!原创 2025-09-22 08:30:00 · 1932 阅读 · 170 评论 -
Java基础(十一):关键字final详解
掌握Java中final关键字的核心用法——从不可变的变量、方法到类,深入理解其设计意图与并发安全优势,助你写出更安全、高效的代码!原创 2025-09-08 09:00:00 · 934 阅读 · 202 评论 -
Java基础(十):关键字static详解
你真的了解 Java 中的 static 吗?它看似简单,实则蕴含了类级别成员的核心机制。从静态变量共享数据,到静态方法工具化设计,再到静态内部类实现优雅架构,这篇文章将为你全面解锁 static 的强大与细节!原创 2025-09-02 14:43:59 · 1311 阅读 · 261 评论 -
Java基础(九):Object核心类深度剖析
深度解密Java万物之源Object类——从equals/hashCode契约到线程通信,掌握Java对象操作的核心基石与高频面试点!原创 2025-08-18 18:47:26 · 1378 阅读 · 337 评论 -
Java基础(八):封装、继承、多态与关键字this、super详解
解锁Java高内聚低耦合的终极密码!5种this用法、super调用禁区、多态转型陷阱——这些教科书没讲透的OOP实战技巧,一文终结你的困惑原创 2025-07-15 09:00:00 · 2173 阅读 · 468 评论 -
Java基础(七): 面向过程与面向对象、类与对象、成员变量与局部变量、值传递与引用传递、方法重载与方法重写
从执行者到设计者:一文掌握Java面向对象的核心思想与基础概念差异,彻底突破POP与OOP的思维鸿沟!原创 2025-07-02 09:00:00 · 1353 阅读 · 117 评论 -
Java基础(六):数组全面解析
🔥 深度解析Java数组内存机制+高效操作秘籍,从底层原理到Arrays工具类实战,彻底掌握数组设计与性能优化!原创 2025-06-30 08:30:00 · 2690 阅读 · 230 评论 -
Java基础(五):流程控制全解析——分支(if/switch)和循环(for/while)的深度指南
深入解析Java流程控制:从条件分支到循环迭代,一文彻底掌握编程逻辑的核心引擎!原创 2025-06-27 08:00:00 · 1687 阅读 · 181 评论 -
Java基础(四):位运算符详解
🔥 揭秘Java位运算:7大运算符详解 + 63%性能提升秘籍,解锁底层高效编程利器!原创 2025-06-25 08:00:00 · 1403 阅读 · 149 评论 -
Java基础(三):逻辑运算符详解
🔥 掌握Java逻辑运算符的短路奥秘:用&&、||避免空指针,用&、|、^处理复杂逻辑,一文解锁高效编码的核心技巧!原创 2025-06-23 08:00:00 · 1901 阅读 · 179 评论 -
Java基础(二):八种基本数据类型详解
一文搞懂比特与字节的换算陷阱,掌握Java数据类型内存占用真相及类型转换规则!原创 2025-06-03 09:20:46 · 6106 阅读 · 277 评论 -
Java基础(一):初识Java——发展历程、技术体系与JDK环境搭建
从Oak到Java 21:一部咖啡命名的编程史诗,揭秘跨时代特性(泛型/Lambda/模块化)如何依托JVM实现“一次编译,全球运行”的终极哲学原创 2025-05-26 13:35:45 · 3387 阅读 · 299 评论 -
Java基础(二十六):Stream流及Optional类
Stream 是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列Stream和Collection集合的区别Collection是一种静态的内存数据结构,讲的是数据;主要面向内存,存储在内存中Stream是有关计算的,讲的是计算;面向CPU,通过CPU实现计算对于并行流,其在底层实现中,是沿用了Java7提供的fork/join分解合并框架进行实现fork根据cpu核数进行数据分块,join对各个fork进行合并。原创 2024-02-21 18:55:44 · 3212 阅读 · 123 评论 -
Java基础(二十五):Lambda表达式、方法引用、构造器引用
只要看起来没有歧义,只能仅有调用某个方法,传入某些参数,就可以简化为Lambda表达式或方法构造器引用。原创 2024-02-19 16:30:38 · 1527 阅读 · 117 评论 -
Java基础(二十四):网络编程
回复一个彻底断开的报文。原创 2024-02-06 08:53:23 · 1409 阅读 · 167 评论 -
Java基础(二十三):反射机制
(1)class:外部类,成员(成员内部类,静态内部类),局部内部类,匿名内部类。Class clazz = Class.forName(“包.类名”);Class clazz = Class.forName(“包.类名”);一个Class对象对应的是一个加载到JVM中的一个.class文件。(4)创建实例对象:如果操作的是非静态属性,需要创建实例对象。(5)设置指定对象obj上此Field的属性内容。(6)取得指定对象obj上此Field的属性内容。调用运行时类的对象的getClass()原创 2023-05-14 12:39:06 · 1063 阅读 · 2 评论 -
Java基础(二十二):File类与IO流
File类及本章下的各种流,都定义在java.io包下一个File对象代表硬盘或网络中可能存在的一个文件或者文件目录(俗称文件夹),与平台无关File 能新建、删除、重命名文件和目录,但 File不能访问文件内容本身如果需要访问文件内容本身,则需要使用输入/输出流File对象可以作为参数传递给流的构造器想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。原创 2023-05-10 23:01:41 · 2168 阅读 · 7 评论 -
Java基础(二十一):集合源码
因为如果数组的长度为2的n次幂,那么table.length-1的二进制就是一个高位全是0,低位全是1的数字,这样才能保证每一个下标位置都有机会被用到。key-value被封装为HashMap.Entry类型,而这个类型实现了Map.Entry接口。它们的底层物理结构都是数组,我们称为动态数组。原创 2023-05-05 21:31:05 · 1423 阅读 · 2 评论 -
Java基础(二十):泛型
在JDK5.0之前只能把元素类型设计为ObjectJDK5.0时Java引入了“参数化类型(Parameterized type)”的概念,允许我们在创建集合时指定集合元素的类型所谓泛型,就是允许在定义类、接口时通过一个标识表示类中某个属性的类型或者是某个方法的返回值或参数的类型这种语法形式就叫泛型的形式我们称为类型参数,这里的"类型"习惯上使用T表示,是Type的缩写。即::代表未知的数据类型,我们可以指定为,,等。原创 2023-04-26 22:04:39 · 1289 阅读 · 2 评论 -
Java基础(十九):集合框架
Set接口是Collection的子接口,Set接口相较于Collection接口没有提供额外的方法Set 集合不允许包含相同的元素,如果试把两个相同的元素加入同一个 Set 集合中,则添加操作失败Set集合支持的遍历方式和Collection集合一样:foreach和IteratorSet的常用实现类有:HashSet、TreeSet、LinkedHashSetHashSet 是 Set 接口的主要实现类,大多数时候使用 Set 集合时都使用这个实现类。原创 2023-04-22 20:33:58 · 1973 阅读 · 2 评论 -
Java基础(十八):java比较器、系统相关类、数学相关类
返回一个伪随机数,它是取自此随机数生成器序列的、在0(包括)和指定值(不包括)之间均匀分布的int值。返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的int值。使用Comparator接口的场景。返回[0,1)的double随机值。返回 double 值的绝对值。返回大于等于参数的最小的整数。返回最接近参数的 long(返回小于等于参数最大的整数。java.lang包。原创 2023-04-20 20:46:24 · 972 阅读 · 3 评论 -
Java基础(十七):日期时间API
一个Calendar的实例是系统时间的抽象表示,可以修改或获取 YEAR、MONTH、DAY_OF_WEEK、HOUR_OF_DAY 、MINUTE、SECOND等。第三次引入的API是成功的,并且Java 8中引入的java.time API 已经纠正了过去的缺陷,将来很长一段时间内它都会为我们服务。Java 8 以一个新的开始为 Java 创建优秀的 API。获取月份时:一月是0,二月是1,以此类推,12月是11。获取星期时:周日是1,周一是2 ,。获取Calendar实例的方法。原创 2023-04-17 21:52:46 · 1260 阅读 · 1 评论 -
Java基础(十六):String的常用API
底层使用char[]数组存储 (JDK8.0中)jdk1.5引入,线程不安全的,效率高;底层使用char[]数组存储(JDK8.0中)StringBuilder、StringBuffer的API是完全一致的,并且很多方法与String相同。方法二思路:截取前中后三个字符串,中是需要反转的,从新拼接,拼接中字符串时候,从后开始拼接。底层使用char[]数组存储(JDK8.0中)方法一思路:字符串转换为字符数组,从指定角标到结束角标,互换数据。思路:获取字符首次出现的角标,然后从出现的位置继续向后找。原创 2023-04-15 11:16:13 · 2416 阅读 · 3 评论 -
Java基础(十五):异常处理
在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避免的客户输入数据的格式问题读取文件是否存在网络是否始终保持通畅等等异常 :指的是程序在执行过程中,出现的非正常情况,如果不处理最终会导致JVM的非正常停止异常指的并不是语法错误和逻辑错误。语法错了,编译不通过,不会产生字节码文件,根本不能运行代码逻辑错误,只是没有得到想要的结果,例如:求a与b的和,你写成了a-bJava中不同的异常类,分别表示着某一种具体的异常情况。原创 2023-04-10 22:02:31 · 1026 阅读 · 0 评论 -
Java基础(十四):包装类
Java基础系列文章Java基础(一):语言概述Java基础(二):原码、反码、补码及进制之间的运算Java基础(三):数据类型与进制Java基础(四):逻辑运算符和位运算符Java基础(六):数组Java基础(七):面向对象编程Java基础(八):封装、继承、多态性Java基础(九):Object 类的使用Java基础(十):关键字static、代码块、关键字finalJava基础(十一):抽象类、接口、内部类Java基础(十二):枚举类Java基础(十三):注解(Annotation)Java基础(十四原创 2023-04-08 12:18:21 · 1162 阅读 · 0 评论 -
Java基础(十三):注解(Annotation)
什么是注解注解(Annotation)是从JDK5.0开始引入,以“@注解名”在代码中存在Annotation 可以像修饰符一样被使用,可用于修饰包、类、构造器、方法、成员变量、参数、局部变量的声明还可以添加一些参数值,这些信息被保存在 Annotation 的 “name=value” 对中注解可以在类编译、运行时进行加载,体现不同的功能注解的重要性在JavaSE中,注解的使用目的比较简单,例如标记过时的功能,忽略警告等在JavaEE/Android中注解占据了更重要的角色。原创 2023-04-07 20:15:47 · 702 阅读 · 3 评论 -
Java基础(十二):枚举类
枚举类型本质上也是一种类,只不过是这个类的对象是有限的、固定的几个,不能让用户随意创建枚举类的例子举不胜举:星期:Monday(星期一)…Sunday(星期天)性别:Man(男)、Woman(女)月份:January(1月)…December(12月)季节:Spring(春节)…Winter(冬天)若枚举只有一个对象, 则可以作为一种单例模式的实现方式在JDK5.0 之前,需要程序员自定义枚举类型在JDK5.0 之后,Java支持enum关键字来快速定义枚举类型私有化。原创 2023-04-04 22:18:03 · 1465 阅读 · 0 评论 -
Java基础(十一):抽象类、接口、内部类
抽象类不能创建对象,如果创建,编译无法通过而报错。只能创建其非抽象子类的对象理解:假设创建了抽象类的对象,调用抽象的方法,而抽象方法没有具体的方法体,没有意义抽象类是用来被继承的,抽象类的子类必须重写父类的抽象方法,并提供方法体若没有重写全部的抽象方法,仍为抽象类抽象类中,也有构造方法,是供子类创建对象时,初始化父类成员变量使用的理解:子类的构造方法中,有默认的super()或手动的super(实参列表),需要访问父类构造方法抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类。原创 2023-04-04 21:36:52 · 1481 阅读 · 0 评论 -
Java基础(十):关键字static、代码块、关键字final
对比静态变量与实例变量。原创 2023-03-29 21:28:27 · 899 阅读 · 0 评论 -
Java基础(九):Object 类的使用
所有对象(包括数组)都实现这个类的方法如果一个类没有特别指定父类,那么默认则继承自Object类原创 2023-03-27 21:17:47 · 1362 阅读 · 0 评论 -
Java基础(八):封装、继承、多态性
从类的定义来看,类是一类具有相同特性的事物的抽象描述。而实例变量和实例方法就是事物的特征,那么父类中声明的实例变量和实例方法代表子类事物也有这个特征。如果子类构造器中既未显式调用父类或本类的构造器,且父类中又没有空参的构造器,则。所以继承意味着子类的对象除了看子类的类模板还要看父类的类模板。问题:在创建子类对象的过程中,一定会调用父类中的构造器吗?一个引用类型变量可能指向(引用)多种不同类型的对象。特别说明:应该避免子类声明和父类重名的成员变量。问题:创建子类的对象时,内存中到底有几个对象?原创 2023-03-26 21:04:11 · 2566 阅读 · 0 评论 -
Java基础(七):面向对象编程-类和对象
早期先有面向过程思想,随着软件规模的扩大,问题复杂性的提高面向过程的弊端越来越明显,出现了面向对象思想并成为目前主流的方式面向过程的程序设计思想(Process-Oriented Programming),简称POP关注的焦点是过程:过程就是操作数据的步骤如果某个过程的实现代码重复出现,那么就可以把这个过程抽取为一个函数这样就可以大大简化冗余代码,便于维护典型的语言:C语言代码结构:以函数为组织单位是一种“执行者思维”,适合解决简单问题。扩展能力差、后期维护难度较大。原创 2023-03-23 21:17:04 · 942 阅读 · 0 评论 -
Java基础(六):数组
数组的概念数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理数组中的概念数组名下标(或索引)元素数组的长度数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型创建数组对象会在内存中开辟一整块连续的空间。占据的空间的大小,取决于数组的长度和数组中元素的类型数组中的元素在内存中是依次紧密排列的,有序的数组,一旦初始化完成,其长度就是确定的。数组的长度一旦确定,就不能修改。原创 2023-03-17 21:20:58 · 2474 阅读 · 1 评论 -
Java基础(五):流程控制语句
【代码】Java基础(五):流程控制语句。原创 2023-03-16 17:16:11 · 775 阅读 · 1 评论 -
Java基础(四):逻辑运算符和位运算符
高效的方式计算2 * 8的值(经典面试题)原创 2023-03-16 14:21:56 · 1153 阅读 · 0 评论 -
Java基础(三):八种基本数据类型
对于每一种数据都定义了明确的具体数据类型(强类型语言),在内存中分配了不同大小的内存空间。记录着世界上所有字符对应的一个数字。使用时要加上强制转换符:()了解:Unicode 编码。了解:ASCII 码。原创 2023-03-11 23:08:21 · 1324 阅读 · 1 评论 -
Java基础(二):原码、反码、补码及进制之间的运算
为什么要使用原码、反码、补码表示形式呢?-128在byte类型中怎么存储?十进制(decimal)(超过最高位数的1舍去)二进制(binary)八进制(octal)原创 2023-03-11 22:52:35 · 1133 阅读 · 0 评论 -
Java基础(一):语言概述
是SUN(Stanford University Network,斯坦福大学网络公司)1995年推出的一门高级编程语言是一种面向Internet的编程语言。Java一开始富有吸引力是因为Java程序可以在Web浏览器中运行随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java简史发行版本发行时间备注Java 1.01996.01.23Sun公司发布了Java的第一个开发工具包Java 1.11997.02.19。原创 2023-03-11 22:51:37 · 898 阅读 · 0 评论