IT服务
文章平均质量分 82
Java架构没有996
祝您早日学有所成,拿到满意offer。快速升职加薪,出任CEO,赢取白富美,走上人生巅峰。
展开
-
你连简单的枚举类都不知道,还敢说自己会Java???滚出我的公司
枚举类型是Java 5中新增的特性,它是一种特殊的数据类型,之所以特殊是因为它既是一种类(class)类型却又比类类型多了些特殊的约束,但是这些约束的存在也造就了枚举类型的简洁性、安全性以及便捷性。当需要定义一组常量时,强烈建议使用枚举类。使用枚举类的条件:类的对象是有限个,确定的。例如星期类,它的对象只有星期一…星期日七个,而且是确定的,此时就可以把星期类定义为一个枚举类;又例如性别类,它的对象只有男和女两个,而且是确定的,此时同样可以把性别类定义为一个枚举类;还有诸如季节等这种类的对象是有限个,确定的原创 2021-10-08 15:47:02 · 579 阅读 · 0 评论 -
华为二面!!!面试官直接问我Java中到底什么是NIO?这不是直接送分题???
华为二面!!!面试官直接问我Java中到底什么是NIO?这不是直接送分题???什么是NIO缓冲区(Buffer)缓冲区类型获取缓冲区核心属性核心方法非直接缓冲区和直接缓冲区非直接缓冲区直接缓冲区通道(Channel)Java Channel获得通道的方法对象调用getChannel() 方法getChannel()+非直接缓冲区open()+直接缓冲区通道间直接传输直接缓冲区VS非直接缓冲区分散和聚集非阻塞式网络通信概念阻塞式网络通信非阻塞式网络通信选择器什么是NIOJava NIO(New IO)是原创 2021-10-08 15:43:00 · 7214 阅读 · 13 评论 -
纳尼???我JVM优化过头了,直接把异常信息优化没了?怎么办
你好呀,我是why。你猜这次我又要写个啥没有卵用的知识点呢?不好意思,问的稍微有点早了,啥提示都没给,咋猜呢,对吧?先给你上个代码:public class ExceptionTest { public static void main(String[] args) { String msg = null; for (int i = 0; i < 500000; i++) { try { msg原创 2021-10-08 15:33:21 · 389 阅读 · 5 评论 -
.Net性能调优-垃圾回收!!!最全垃圾回收来了
目前项目开发基本都基于.NetCore 3.1以上了,有些老版本的规则和概念也没有列出来,低版本的垃圾回收类型和内存释放方式会有所不同垃圾回收器为什么存在开发人员不必手动释放内存。有效分配托管堆上的对象。回收不再使用的对象,清除它们的内存,并保留内存以用于将来分配。 托管对象会自动获取干净的内容来开始,因此,它们的构造函数不必对每个数据字段进行初始化。通过确保对象不能使用另一个对象的内容来提供内存安全。托管堆代数概述为优化垃圾回收器的性能,将托管堆分为三代:第 0 代、第原创 2021-08-23 17:03:23 · 1251 阅读 · 8 评论 -
华为二面!!!被问常用API,这也太偏门了吧,我秀了一波hhhh~
华为二面!!!被问常用API,这也太偏门了吧,我秀了一波hhhh~常用API一、API概述二、Scanner类代码三、Random类代码四、* ArrayList类**存储基本数据类型**代码五、匿名对象昨天我去了华为面试,问我常用API,我以为我被搞到了,可惜我也是对API很有见解的常用API一、API概述 API(Application Programming Interface),应用程序编程接口。Java API是一本程序员的 字典 ,是JDK中提供给 我们使用的类的说明文档。这些类将底原创 2021-08-05 14:31:27 · 943 阅读 · 24 评论 -
面试问外观模式???这不就是设计模式里面的吗?我给你上一课吧,面试官
面试问外观模式???这不就是设计模式里面的吗?我给你上一课吧,面试官外观模式介绍实现步骤 1Shape.java步骤 2Rectangle.javaSquare.javaCircle.java步骤 3ShapeMaker.java步骤 4FacadePatternDemo.java步骤 5外观模式外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一原创 2021-07-30 21:15:49 · 410 阅读 · 31 评论 -
项目经理问我Java内存区域模型!急急急
也就这么点吧Java内存区域主要分为:堆,栈,方法区三大部分1、堆:是内存区域中最大的部分,所有线程共享,其中存放创建的对象和数组。由于堆是垃圾收集器管理的主要区域,因此也叫GC堆。2、栈:线程私有,与线程共生死。也就是每个线程JVM都会给它创建一片栈内存。栈内存又分为:虚拟机栈,本地方法栈,和程序计数器虚拟机栈用来描述Java方法的执行过程。每个方法的执行对应一个栈帧的入栈,方法的返回对应栈帧的出栈。本地方法栈与虚拟机栈类似,区别是本地方法栈尾Native方法服务。Native方法也就是非Ja原创 2021-07-23 20:58:18 · 359 阅读 · 1 评论 -
掌握JVM 运行时数据区,其实不是很难,加薪也是要技巧可言的!!!
一、概念Java 内存区域和内存模型是不一样的东西,内存区域是指 Jvm 运行时将数据分区域存储,强调对内存空间的划分。而内存模型(Java Memory Model,简称 JMM )是定义了线程和主内存之间的抽象关系,即 JMM 定义了 JVM 在计算机内存(RAM)中的工作方式,如果我们要想深入了解Java并发编程,就要先理解好Java内存模型。二、JVM 运行时数据区结构图1、java虚拟机规范中的结构图2、java1.8 虚拟机(HotSpot)中的数据区域三、各个区域简介1、原创 2021-07-23 14:50:37 · 1454 阅读 · 9 评论 -
因为我把JMM原理讲解了一遍,这给足了我涨薪的底气!
一、什么是JMM?JMM指的是Java内存模型,即 Java Memory ModelJava内存模型并不是一种实际存在的东西,而是一种人为形成的约定,是一种概念。关于JMM,我们需要了解一些相关的同步约定 :线程在解锁前,必须将线程中的工作内存中存储的值即时刷新到主内存中的共享变量!线程在加锁前,必须读取主存中的最新值到工作内存中!加锁和解锁是同一把锁!线程中操作的数据要从主内存中读取,并备份到线程自己的工作内存中,作为副本,主存并不会主动向线程更新数据。线程的八种内存交互.原创 2021-07-22 21:51:03 · 540 阅读 · 3 评论 -
什么?面试官问我Java内存模型!这不得给我加薪?
内存模型的基础通信 线程之间以何种机制来交换信息共享内存 隐式通信消息传递 显示通信同步 程序中用于控制不同线程间操作,发生的相对顺序的机制共享内存 显式同步消息传递 隐式同步Java线程线程之间是通过共享内存的方式实现通信的.内存模型的抽象结构共享变量共享变量手内存模型影响,线程会去主内存里去加载共享变量,当线程需要改变共享变量时,会将本地内存已更改的副本提交到主内存.局部变量局部变量不会受内存模型的影响线程之间通信指令重排编译器优.原创 2021-07-22 21:37:11 · 346 阅读 · 1 评论 -
面试官问:怎么保证线程安全在对象内存分配过程中不出问题?emmmm 让我想想
Java一门面向对象的语言,在Java中使用的对象都需要被创建出来,在Java中创建一个对象的方法有很多种,但对象在创建过程中都需要进行内存分配。Java对象内存分配过程保证线程安全,对象的内存分配过程就必须进行同步控制。对象的内存分配过程中,主要是对象的引用指向这个内存区域进行【初始化操作】。但因为堆是全局共享,在同一时间可能有多个线程在堆上申请空间,在并发场景中如果两个线程先后把对象引用指向了同一个内存区域怎么办为了解决这个并发问题,对象的内存分配过程就必须进行同步控制。但是我们都知道,无论是使原创 2021-07-22 20:46:01 · 373 阅读 · 1 评论 -
面试阿里被问到JVM,不逼逼赖赖,直接盘给面试官看!!!
面试阿里被问到JVM,不逼逼赖赖,直接盘给面试官看!!!概述JVM体系结构类加载机制类加载器类加载过程双亲委派机制全盘负责委托机制打破双亲委派机制自定义类加载器实现JVM运行时数据区程序计数器虚拟机栈本地方法栈堆方法区(元空间)运行时常量池直接内存垃圾回收机制GC对象判定方法垃圾收集算法垃圾收集器JVM调优参数概述JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。J.原创 2021-07-21 20:04:47 · 3476 阅读 · 6 评论 -
初级Java开发面试必问项!!! 标识符、字面值、变量、数据类型,该学学了!
最近事情太多,没太时间写博客。今天抽空再整理整理面试中的那点事吧,帮助那些正在找工作或想跳槽找工作的学弟学妹们。前面我己写过多篇推文,相信看过我文章的伙伴们已经了解掌握了不少。从目前流行的开发技术、常见的面试问题以及问题的答案都已经写的特别清楚了,今天我给写一篇初级Java开发面试必问项!供大家阅读参考。标识符关于java语言当中的标识符1、什么是标识符在java源程序当中凡是程序员有权利自己命名的单词都是标识符标识符在EditPlus编辑器当中以黑色字体高亮显示标识符可以标识什么元素呢?原创 2021-07-21 14:29:50 · 1694 阅读 · 16 评论 -
入职第一天,我接手了号称【屎山】的祖传代码,这还能卷吗???
公司各种各样的祖传代码都是令新人虎躯一震的代码,因为有时候你根本不知道它是干嘛的,甚至觉得它毫无用处,关键是 还绝对不能动,碰一段改半年,别问我怎么知道的。最讽刺的是,你可能为了修改代码,也在里面拉了几次犯了罪恶…真的是绝绝子, 自此以后,遇到一些看着很奇怪的代码压根儿碰都不敢碰。有些祖传代码,你一动, 我们就再也回不去了有时候心血来潮改点东西……代码从头错到尾……//动都不要动,我试过了有时候当你只删了一行代码时,可能会发生下面这种情况说一个朋友经历的一座「屎山」,曾入职一家成立15.原创 2021-07-16 15:29:02 · 2812 阅读 · 13 评论 -
涨薪关键之反射机制,引得项目经理对你的看重,加薪触手可及!!!!
前言就比如我前几天被面试官问什么是反射???而我的回答是!!!反射是动态语言的关键,反射允许程序在执行期间借助Reflection API取得任何类的内部信息,并能直接操作任曦对象的内部属性及方法。1.Java反射提供的功能在运行时判断任意一个对象所属的类在运行时构造任意一个类的对象在运行时判断任意一个类具有的成员变量和方法在运行时调用任意一个对象的成员变量和方法2.放射常用的APIjava.lang.Class : 代表一个类java.lang.reflect.Method:.原创 2021-07-13 16:51:48 · 910 阅读 · 11 评论 -
Java面试会问的——数组、声明、初始化、冒泡、多维数组、稀疏数组
数组数组时相同类型数据的有序集合数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成其中,每一个数据称作一个数组元素,每一个数组元素可以通过一个下标来访问它们。数组声明创建首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法。da taType[] arrayRefVar //首选方法dateType arrayRefVar[] //效果相同,但不是首选方法java语言使用new操作符来创建数组,语法如下:dateType[] arrayRef原创 2021-07-10 21:41:51 · 1219 阅读 · 11 评论 -
大厂Java初级开发工程师!!!面试必问项之Set实现类:TreeSet
一、TreeSet 概述1、TreeSet是 SortedSet 接口的实现类, TreeSet 可以确保集合元素处于排序状态。2、TreeSet顾名思义他内部维护的是一个TreeMap,底层是红黑二叉树,他使得集合内都是有序的序列。3、Tree可以按照添加对象的指定属性,进行排序,所以向TreeSet中添加的数据,要求是相同类的对象。4、两种排序方式:自然排序(实现Comparable接口) 和 定制排序(Comparator);5、自然排序中,比较两个对象是否相同的标准为.原创 2021-07-10 15:53:47 · 4522 阅读 · 10 评论 -
世道变了,面试初级Java开发会问到Arrays!!!你不会还不知道吧!
一、基本定义Arrays类,全路径java.util.Arrays,主要功能为操作数组,Arrays类的所有方法均为静态方法,所以调用方式全部为Arrays.方法名二、常用方法1. <T> List<T> asList(T... a)可以将数组转化为相应的list集合,但是也只能转化为list,asList方法内部构建了一个内部静态类ArrayList,这个ArrayList也继承自AbstractList,但并不是我们集合中常用的ArrayList,这两者是有区别.原创 2021-07-09 22:32:17 · 2674 阅读 · 11 评论 -
秋招面试我去了拼多多,直接被问JVM&GC底层原理和算法,我吊打面试官
JVM 常用参数设置积累# 堆的初始值,默认物理内存的1/64-Xms:# 堆的最大值,默认物理内存的1/4-Xmx:# 年轻代大小「在整个堆内存大小确定的情况下,增大年轻代将会减小年老代,反之亦然。此值关系到JVM垃圾回收,对系统性能影响较大,官方推荐配置为整个堆大小的3/8」-Xmn:# 设置年轻代初始值为 1024 M-XX:NewSize=1024# 设置年轻代最大值为 1024 M-XX:MaxNewSize=1024m# 设置线程栈大小,设置越小,说明一个线程栈里面能分配.原创 2021-07-07 15:57:16 · 679 阅读 · 3 评论 -
【每日分享】我做程序员那些年犯下的罪,此时此刻我自己的笑出猪叫~
以前我刚入行,总是会犯这样几个常见错误,后面想起来是真的SB。当然每个程序员会犯错,重要的是从中吸取教训,得到成长。那么这些错误到底是什么呢?我来给大家盘点一下!!!当我感觉我测试的代码一点很棒棒,然而现实却是…我设计的接口和别人调用的接口甚至穿着NIKE鞋的测试在一旁外表紧张,内心有点点愉快咱们总得拥抱变化,可惜这个道理我懂得太晚了”躺在医院的的病床上,我才追悔莫及。明明是个小bug,但就是死活修不好终极 Bug 的 4 个走向多年的测试经验中,经常发现有这么一种现象:总有些提了的 bu原创 2021-07-07 14:35:55 · 4747 阅读 · 42 评论 -
TDengine和DolphinDB哪个更好,哈哈哈哈,闲来无聊分析了一下。
TDengine是专为时序数据设计的,针对的是物联网、工业互联网、IT运维场景。这些场景是不需要特殊的查询函数的,更关心的是写入速度、查询速度。而且这些场景下,也需要一些其他数据库不具备的功能,比如插值、时间聚合等等如果要问TDengine和DolphinDB最大的特色,存储引擎可能是TDengine最大的特色,性能也非常好;DolphinDB的最大特色毫无疑问是它的计算引擎。可以毫不夸张的说,DolphinDB的计算引擎是所有类别的国内外数据库中最有特色的之一。这跟DolphinDB从金融起步有关(金融原创 2021-07-07 13:51:45 · 3826 阅读 · 11 评论 -
超详细图解!【MySQL进阶篇】存储过程,视图,索引,函数,触发器
超详细图解!【MySQL进阶篇】存储过程,视图,索引,函数,触发器1.1 下载Linux 安装包1.2 安装MySQL1.3 启动 MySQL 服务1.4 登录MySQL2\. 索引2.1 索引概述2.2 索引优势劣势2.3 索引结构2.3.1 BTREE 结构2.3.3 B+TREE 结构2.3.3 MySQL中的B+Tree2.4 索引分类2.5 索引语法2.5.1 创建索引2.5.2 查看索引2.5.3 删除索引2.5.4 ALTER命令2.6 索引设计原则3\. 视图3.1 视图概述3.2 创建或者原创 2021-07-04 16:51:18 · 1825 阅读 · 53 评论 -
超详细图解!【MySQL进阶篇】SQL优化-索引-存储引擎
1. Mysql的体系结构概览整个MySQL Server由以下组成Connection Pool : 连接池组件Management Services & Utilities : 管理服务和工具组件SQL Interface : SQL接口组件Parser : 查询分析器组件Optimizer : 优化器组件Caches & Buffers : 缓冲池组件Pluggable Storage Engines : 存储引擎File System : 文件系统【白嫖资料】原创 2021-07-04 15:43:52 · 909 阅读 · 6 评论 -
超详细图解!【MySQL进阶篇】MySQL事务和锁
ACID 特性在关系型数据库管理系统中,一个逻辑工作单元要成为事务,必须满足这 4 个特性,即所谓的 ACID:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。原子性原子性:事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行。修改—》Buffer Pool修改—》刷盘。可能会有下面两种情况:【白嫖资料】事务提交了,如果此时Buffer Pool的脏页没有刷盘,如何保证修改的数据生效? Redo如果原创 2021-07-04 14:36:58 · 947 阅读 · 3 评论 -
面试被问到Java 静态代理/动态代理?不用怕,这样子就可以!!
理解Java动态代理需要对Java的反射机制有一定了解什么是代理模式#在有些情况下,一个客户不能或者不想直接访问另一个对象,这时需要找一个中介帮忙完成某项任务,这个中介就是代理对象。例如,购买火车票不一定要去火车站买,可以通过 12306 网站或者去火车票代售点买。又如找女朋友、找保姆、找工作等都可以通过找中介完成。定义#由于某些原因需要给某对象提供一个代理以控制对该对象的访问。访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。代理模式的主要角色#抽象.原创 2021-06-30 21:47:49 · 2075 阅读 · 11 评论 -
史上最全图详解Jvm—诊断工具和JVM监控
3.1. 工具概述使用上一章命令行工具或组合能帮您获取目标Java应用性能相关的基础信息,但它们存在下列局限:1.无法获取方法级别的分析数据,如方法间的调用关系、各方法的调用次数和调用时间等(这对定位应用性能瓶颈至关重要)。2.要求用户登录到目标 Java 应用所在的宿主机上,使用起来不是很方便。3.分析数据通过终端输出,结果展示不够直观。为此,JDK提供了一些内存泄漏的分析工具,如jconsole,jvisualvm等,用于辅助开发人员定位问题,但是这些工具很多时候并不足以满足快原创 2021-06-30 21:40:43 · 1616 阅读 · 12 评论 -
测试String, StringBuilder,StringBuffer 的数据,我居然发现这些了~~
懒的搞什么开头了,直接撸代码吧想了想还是给大家看看学姐照片吧,保持眼睛的明亮,代码敲多了,伤眼1: 作StringBuilder与String的拼接比较@Testpublic void testString () { String s=""; long begin = System.currentTimeMillis(); for(int i=0; i<500000; i++){ String s1 = "YYYYYYYYYYYYYYYYYYYYY原创 2021-06-30 21:16:18 · 1953 阅读 · 7 评论 -
今日笔记!——分析Java应用性能
1 问题描述因产品架构的复杂性,可能会导致性能问题的因素有很多。根据部署架构,大致的可以分为应用端瓶颈、数据库端瓶颈、环境瓶颈三大类。可以根据瓶颈的不同部位,选择相应的跟踪工具进行跟踪分析。应用层面瓶颈大致有如下两类,一是应用服务端复杂的逻辑处理导致应用端代码执行慢;二是资源锁争用导致线程阻塞问题(最典型的特征是线程状态为“java.lang.Thread.State: BLOCKED (on object monitor)”)等。数据库层面瓶颈表现出来的现象都是SQL执行慢,其原因可分为两种,一是因原创 2021-06-26 15:59:08 · 779 阅读 · 3 评论 -
初级Java开发工程师!绝密文档,面试手册全面突击!!!秋招已经到来
这里我要明说一下,不是Java初级和学习Java的千万不要乱看,否则~~~~你会怀疑人生,因为会浪费你时间啊!!!本次考点是Java初级开发工程师面试必备的一些东西!!!1、数据类型基本类型byte/8、short/16、int/32、long/64、boolean/ 、char/16、float/32、double/64boolean只有两个值,true、false,可以使用1bit来存储,但是具体大小没有明确规定,JVM会在编译时期将boolean类型转为int,使用1来表示true..原创 2021-06-25 23:28:39 · 1316 阅读 · 13 评论 -
直接裂开!京东二面被问SpringBoot整合MongoDB,我不会啊
开始进入正题一、技术介绍SpringBoot整合MongoDB的实现步骤一、技术介绍1.MongoDB是什么?二、使用步骤1.MongoDB是什么?MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是可以应用于各种规模的企业、各个行业以及各类应用程序的开源数据库。作为一个适用于敏捷开发的数据库,MongoDB的数据模式可以随着应用程序的发展而灵活地更新。与此同时,它也为开发人员 提供了传统数据库的功能:二级索引,完整的查询系统以及严格一致性等等。 MongoDB能够使.原创 2021-06-23 16:28:50 · 3663 阅读 · 15 评论 -
阿里最新面试必备项之Java的String类,持续更新中!
最新腾讯面试必备项之Java的String类,持续更新中!1.1 String的特性String类:代表字符串。Java程序中的所有字符串字面值(如“abc”)都作为此类的实例实现。String是一个final类,代表不可变的字符序列。String字符串是常量,用双引号引起来表示。他们的值在创建之后不能更改。String对象的找字符内容是存储在一个字符数组value[]中的。(jdk新版本已改为使用byte类型的数组value[]存放)1.2 String字面量赋值的内存理原创 2021-06-21 23:11:12 · 1514 阅读 · 10 评论 -
求职华为,被问观察者模式,从没有这种体验!!!
求职华为,被问观察者模式,从没有这种体验!!!模式的定义与特点模式的结构与实现1. 模式的结构2. 模式的实现模式的应用实例观察者模式可以说是非常贴近我们生活的一个设计模式,为什么这么说呢?哲学上有这么一种说法,叫做“万事万物皆有联系”,原意是说世上没有孤立存在的事物,但其实也可以理解为任何一个事件的发生必然由某个前置事件引起,也必然会导致另一个后置事件。我们的生活中,充斥着各种各样的相互联系的事件,而观察者模式,主要就是用于处理这种事件的一套解决方案。模式的定义与特点观察者(Observer)模原创 2021-06-21 22:14:35 · 863 阅读 · 4 评论 -
我已经把它摸的透透的了!!!Spring 动态数据源设计实践,全面解析
Spring 动态数据源动态数据源是什么?它能解决什么???在实际的开发中,同一个项目中使用多个数据源是很常见的场景。比如,一个读写分离的项目存在主数据源与读数据源。所谓动态数据源,就是通过Spring的一些配置来自动控制某段数据操作逻辑是走哪一个数据源。举个读写分离的例子,项目中引用了两个数据源,master、slave。通过Spring配置或扩展能力来使得一个接口中调用了查询方法会自动使用slave数据源。一般实现这种效果可以通过: 使用@MapperScan注解指定某个包下的所有方法走.原创 2021-06-17 16:53:27 · 847 阅读 · 6 评论 -
这次牛逼了,面试字节被问LinkedList原理了!手足无措啊
概述LinkedList底层是基于链表实现。链表没有长度限制,内存地址不需要固定长度,也不需要是连续的地址来进行存储,只需要通过引用来关联前后元素即可完成整个链表的连续。所以链表的优点就是添加删除元素比较快,只需要移动指针,并且不需要判断扩容。缺点就是因为没有索引,所以在查询和遍历元素时候比较慢。使用场景:在增删操作使用较多,查询遍历操作使用较少情况下比较适合去使用;例如:拿来当栈使用。数据结构继承实现关系1 public class LinkedList<E>2 exte.原创 2021-06-16 22:46:32 · 725 阅读 · 10 评论 -
学妹问我Java枚举类与注解,我直接用这个搞定她!
很多人问我学妹长什么样,不多说 上图吧!学妹问我Java枚举类与注解,我直接一篇文章搞定!一、枚举类① 自定义枚举类② enum关键字定义枚举类③ enum 枚举类的方法④ enum 枚举类实现接口二、注解① 生成文档相关注解②注解在编译时进行格式检查③注解跟踪代码的依赖性,实现替代配置文件功能④ 自定义注解⑤ jdk提供的4种元注解⑥ JKD8 新特性:可重复注解⑦ JDK8 新特性:类型注解【获取资料】一、枚举类类的对象只有有限个, 确定的. 我们称此类为枚举类.说明:1.类的对象只有原创 2021-06-15 21:28:33 · 2933 阅读 · 42 评论 -
学妹面试拼刀刀被问Java策略模式是什么鬼?哈哈哈哈
学妹面试拼刀刀被问Java策略模式是什么鬼?哈哈哈哈 学妹跟我讲怎么机智面对的 我呆了!????1.策略模式到底是什么鬼捏???????策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。简单的说,策略模式代表了一类算法的通用解决方案,你可以在运行时选择使用哪种解决方案。 策略模式的重心????策略模式的重心不是如何实现算法, 而是如何组织、调用这些算法, 从而使得程序结原创 2021-06-15 14:28:21 · 10023 阅读 · 36 评论 -
华为面试官问我:你真的明白Java垃圾回收器吗?我生气了!!(︶︿︶)
第一阶段:串行垃圾回收器:jdk1.3.1之前Java虚拟机仅仅只支持Serial收集器第二阶段:并行垃圾回收器:随着多核的出现,Java引入了并行垃圾回收器,充分利用多核性能提升垃圾回收效率第三阶段:并发标记清理回收器CMS:垃圾回收器可以和应用程序同时运行,降低暂停用户线程执行的时间第四阶段:G1(并发)回收器:初衷是在清理非常大的堆空间的时候能满足特定的暂停应用程序的时间,与CMS相比会有更少的内存碎片【资料获取】1 垃圾回收算法1-1 标记清除算法算法概述优点:回收速度快..原创 2021-06-10 17:14:56 · 10804 阅读 · 83 评论 -
高考落榜怎么办,奉劝学弟学妹们一些事情,请一定要擦亮眼睛
在目前这个社会情况Java技术是当前社会的一个热门专业,无论是pc端还是移动端对java的需求都是最多的,大学生学java正好顺应时代的发展,不仅有钱途还有前途,Java也适合零基础的人学习。最近看见一句话 高考不努力,学习Java做兄弟,挺意外的 我觉得还是那么一句话 高考落榜,并非是人生落榜,努力的人一定会有结果收到回报所以大学生零基础学Java是可以的,并且是个不错的选择如果在大学期间能系统的学习Java当然是最好的,但是这并不是说毕业后学习Java开发就来不及了。毕业之后学习Java开发.原创 2021-06-08 13:53:50 · 3675 阅读 · 21 评论 -
面试避坑手册之 Java字节流和字符流总结IO流!
从接收输入值说起在日常的开发应用中,有时候需要直接接收外部设备如键盘等的输入值,而对于这种数据的接收方式,我们一般有三种方法:字节流读取,字符流读取,Scanner 工具类读取。字节流读取直接看一个例子:public class Demo01SystemIn { public static void main(String[] args) throws IOException { int a = System.in.read(); System.out.pri原创 2021-06-07 18:01:57 · 824 阅读 · 10 评论 -
2021年度最全面JVM虚拟机,类加载过程与类加载器
前言类装载器子系统是JVM中非常重要的部分,是学习JVM绕不开的一关。一般来说,Java 类的虚拟机使用 Java 方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 java.lang.Class类的一个实例。【参考文献】每个这样的实例用来表示一个 Java 类。通过此实例的 newInstance()方法就可以创建出该类的一个对象。类的生命周期我们先来看下类原创 2021-06-05 13:20:06 · 613 阅读 · 13 评论