Java知识
文章平均质量分 88
Java基础知识、常考点、易错点汇总
白鳯
一件事的坚持只有0和∞
展开
-
《Java语言程序设计》✍基础知识整理
Java语言程序设计第1章 Java语言概述Java语言比较特殊,它既是编译型语言又是解释型语言。Java的源程序代码必须通过编译器将其编译为Java字节码(byte code)后才能运行,所以被称为编译型语言。但Java字节码不能直接运行,只能在Java虚拟机环境中被解释执行,因此称之为解释型语言Java程序是由虚拟机负责执行,并非是操作系统,这样做的优点是可以实现程序的跨平台运行Java语言的特点简单性与C++语言相比,Java语言有着突出的特点,摒弃了C++语言中不宜理解的部分,减少原创 2020-12-29 09:01:48 · 54909 阅读 · 12 评论 -
JVM学习(五)虚拟机类加载机制
虚拟机类加载机制文章目录虚拟机类加载机制概述类加载的时机主动引用被动引用类加载的过程加载验证准备解析初始化类加载器类与类加载器双亲委派模型概述Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称作虚拟机的类加载机制。与那些在编译时需要进行连接的语言不同,在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略让Java语言进行提前编译会面临额外的困难,也会让类加载时稍微增加一些性能原创 2021-04-14 09:05:06 · 10784 阅读 · 5 评论 -
JVM学习(四)经典垃圾收集器
经典垃圾收集器文章目录经典垃圾收集器Serial收集器ParNew收集器Parallel Scavenge收集器Serial Old收集器Parallel Old收集器CMS收集器Garbage First收集器G1收集器难点或细节G1收集器运作过程特点各款经典的收集器之间的关系如图所示。下图展示了七种作用于不同分代的收集器,如果两个收集器之间存在连线,就说明它们可以搭配使用,图中收集器所处的区域,则表示它是属于新生代收集器亦或是老年代收集器。接下来逐一介绍这些收集器的目标、特性、原理和使用场景,并重点原创 2021-04-13 09:12:41 · 8659 阅读 · 1 评论 -
JVM学习(三)HotSpot虚拟机的算法细节实现
HotSpot虚拟机的算法细节实现文章目录HotSpot虚拟机的算法细节实现根节点枚举安全点安全区域记忆集与卡表写屏障并发的可达性分析下面来阅读总结下HotSpot虚拟机的一些实现细节。根节点枚举以可达性分析算法中从GC Roots集合找引用链这个操作来作为介绍虚拟机高效实现的例子。迄今为止,所有收集器在根节点枚举这一步骤时都是必须暂停用户线程的。现在可达性分析算法耗时最长的查找引用链的过程已经可以做到与用户线程一起并发,但根节点枚举始终还是必须在一个能保障一致性的快照中才得以进行——这里“一致性“原创 2021-04-09 09:28:28 · 4340 阅读 · 4 评论 -
JVM学习(二)内存分配策略
内存分配策略文章目录内存分配策略????概述????对象已死?引用计数算法可达性分析算法Java类对象引用生存还是死亡?回收方法区????垃圾收集算法分代收集理论标记-清除算法标记-复制算法标记-整理算法????内存分配与回收策略????概述了解垃圾收集(Garbage Collection,简称GC),就要思考以下三个问题:哪些内存需要回收?什么时候回收?如何回收?当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们必须对垃圾收集过程实施必要的监控和调节原创 2021-04-08 14:32:14 · 4816 阅读 · 6 评论 -
JVM学习(一)Java内存区域与内存溢出异常
Java内存区域与内存溢出异常文章目录Java内存区域与内存溢出异常????运行时数据区域程序计数器Java虚拟机栈本地方法栈Java堆方法区运行时常量池直接内存????HotSpot虚拟机对象对象的创建对象的内存布局对象的访问定位????实战:OutOfMemoryError异常Java堆溢出虚拟机栈和本地方法栈溢出方法区和运行时常量池溢出本机直接内存溢出????JVM参数设定????运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的原创 2021-04-07 14:31:45 · 5316 阅读 · 7 评论 -
Java实现多项式求导(含简单幂函数和正余弦)
Java实现多项式求导(含简单幂函数和正余弦)主要技术点:①正则表达式匹配②数学求导运算③自定义排序④大整数(BigInteger)运算详细任务书思路详解拿到一个多项式字符串后,首先判断是否符合规范,不符合规范返回WRONG FORMAT!,若符合规范,则拆分多项式,并去除多余空格和正负号后将其统一为标准多项式axb(sinx)c(cosx)dax^b(sinx)^c(cosx)daxb(sinx)c(cosx)d保存四元组[a, b, c, d]即可。然后将标准多项式原创 2021-02-19 12:09:54 · 12922 阅读 · 9 评论 -
Java面经总结(2020/10.20~11.20)
下面是白凤2020的Java面经总结,由于小白确实没什么经验和能力,很遗憾没有收到实习offer(共计5家公司,算法题另外有时间会写一篇博客),整理这些内容的初衷是记录面试的体验,以后方便复习,希望对大家有所帮助,少踩一些坑,成功拿到心仪的offer>>>堆、栈、堆栈、队列堆堆通常是一个可以被看做一棵树的数组对象,满足下列性质堆中的某个节点的值总是不大于或者不小于其父节点的值堆总是一颗完全二叉树将根节点最大的堆叫做最大堆或者大根堆,根节点最小的堆叫做最小堆或者小根堆。常原创 2021-01-07 15:42:36 · 6958 阅读 · 6 评论 -
Java输入/输出流
Java输入/输出流一、流的概念输入流只能读不能写,输出流只能写不能读。按照流中数据的处理单位不同,可将流分为字节流和字符流。在字节流中,数据的组织和操作的基本单位是字节;在字符流中,数据的组织和操作的基本单位是字符。综上,流可分为字节输入流,字节输出流,字符输入流,字符输出流。Java是面向对象的语言,使用类来表示各种流使用流来进行数据输入的具体步骤为创建适当的输入流类的对象,建立与输入设备(如磁盘或者文件)的连接调用相应的read()方法读入数据关闭流,释放相关的系统资源使用流来进行原创 2021-01-01 19:21:49 · 10426 阅读 · 0 评论 -
♢位运算♢常用公式及练习详解
JAVA位运算符详解详细见知乎穆哥学堂在java语言中,提供了7种位运算符,分别是按位与(&)、按位或(|)、按位异或(^)、取反(~)、左移(<<)、带符号右移(>>)和无符号右移(>>>)。这些运算符当中,仅有~是单目运算符,其他运算符均为双目运算符。位运算符是对long、int、short、byte和char这5种类型的数据进行运算的,我们不能对double、float和boolean进行位运算操作【注意】>> 带符号右移 ,右移时原创 2020-12-13 11:11:10 · 16907 阅读 · 6 评论 -
『Java多线程』基础之基础
Java基础篇~多线程线程概念程序(Program) 程序是指令、数据及其组织形式的描述,也就是存储在磁盘或者其他存储设备中含有指令和数据的文件,是一段静态代码进程(Process) 进程是受操作系统管理的基本单元,是程序的一次动态执行过程,是系统进行资源分配和调度的基本单位,它对应了从代码加载、执行到执行完毕的整个过程,即进程的创建、运行到消亡的过程。从某种程度上来说,进程是正在运行程序的实例,是一个动态概念多任务(Multi Task) 在一原创 2020-11-10 21:50:31 · 7326 阅读 · 1 评论 -
Java之HashMap多种方式遍历、动态删除
遍历HashMapMap<Integer, String> map = new HashMap<>();map.put(1, "aaa");map.put(2, "bbb");map.put(3, "ccc");map.put(4, "ddd");普遍使用,二次取值for(String key : map.keySet()){ System.out.println(key + ":" + map.get(key));}迭代器 entrySetI原创 2021-01-23 21:41:48 · 11803 阅读 · 7 评论