
学习工具
文章平均质量分 78
Java架构没有996
祝您早日学有所成,拿到满意offer。快速升职加薪,出任CEO,赢取白富美,走上人生巅峰。
展开
-
优快云《某一程序员竟然吃过shi?让我们走进他的生活,揭露背后的故事》
优快云《某一程序员竟然吃过屎?我们走进他的生活,揭露背后的故事》——————————接下来让我们走进他的故事 到底是什么原因让他吃屎这是这位程序员的自曝,我很好奇的不是他吃过屎,我在好奇是啥味的~接下来我们开始咨询这位平平无奇的程序员,究竟是因为什么导致他进行这种行为?相信不少聪明的程序员已经知道是为什么了会吃屎了~没错,就是™的代码屎山!!!说一个网友经历过的一座「屎山」,入职一家成立10年的软件公司,网友当时应聘的是中级程序员,但在入职几个月后,就神奇的调整到了高级程序员,这并不是因原创 2021-10-21 16:58:52 · 2151 阅读 · 8 评论 -
最近有粉丝向我请教Java泛型,于是重温了一下,希望学弟面试顺利
什么是泛型?泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。可以在集合框架(Collection framework)中看到泛型的动机。例如,Map 类允许您向一个 Map 添加任意类的对象,即使最常见的情况是在给定映射(map)中保存某个特定类型(比如 String)的对象。因为 Map.get() 被定义为原创 2021-10-11 22:13:55 · 591 阅读 · 0 评论 -
.Net性能调优-垃圾回收!!!最全垃圾回收来了
目前项目开发基本都基于.NetCore 3.1以上了,有些老版本的规则和概念也没有列出来,低版本的垃圾回收类型和内存释放方式会有所不同垃圾回收器为什么存在开发人员不必手动释放内存。有效分配托管堆上的对象。回收不再使用的对象,清除它们的内存,并保留内存以用于将来分配。 托管对象会自动获取干净的内容来开始,因此,它们的构造函数不必对每个数据字段进行初始化。通过确保对象不能使用另一个对象的内容来提供内存安全。托管堆代数概述为优化垃圾回收器的性能,将托管堆分为三代:第 0 代、第原创 2021-08-23 17:03:23 · 1315 阅读 · 8 评论 -
项目经理问我Java内存区域模型!急急急
也就这么点吧Java内存区域主要分为:堆,栈,方法区三大部分1、堆:是内存区域中最大的部分,所有线程共享,其中存放创建的对象和数组。由于堆是垃圾收集器管理的主要区域,因此也叫GC堆。2、栈:线程私有,与线程共生死。也就是每个线程JVM都会给它创建一片栈内存。栈内存又分为:虚拟机栈,本地方法栈,和程序计数器虚拟机栈用来描述Java方法的执行过程。每个方法的执行对应一个栈帧的入栈,方法的返回对应栈帧的出栈。本地方法栈与虚拟机栈类似,区别是本地方法栈尾Native方法服务。Native方法也就是非Ja原创 2021-07-23 20:58:18 · 371 阅读 · 1 评论 -
什么?面试官问我Java内存模型!这不得给我加薪?
内存模型的基础通信 线程之间以何种机制来交换信息共享内存 隐式通信消息传递 显示通信同步 程序中用于控制不同线程间操作,发生的相对顺序的机制共享内存 显式同步消息传递 隐式同步Java线程线程之间是通过共享内存的方式实现通信的.内存模型的抽象结构共享变量共享变量手内存模型影响,线程会去主内存里去加载共享变量,当线程需要改变共享变量时,会将本地内存已更改的副本提交到主内存.局部变量局部变量不会受内存模型的影响线程之间通信指令重排编译器优.原创 2021-07-22 21:37:11 · 357 阅读 · 1 评论 -
面试官问:怎么保证线程安全在对象内存分配过程中不出问题?emmmm 让我想想
Java一门面向对象的语言,在Java中使用的对象都需要被创建出来,在Java中创建一个对象的方法有很多种,但对象在创建过程中都需要进行内存分配。Java对象内存分配过程保证线程安全,对象的内存分配过程就必须进行同步控制。对象的内存分配过程中,主要是对象的引用指向这个内存区域进行【初始化操作】。但因为堆是全局共享,在同一时间可能有多个线程在堆上申请空间,在并发场景中如果两个线程先后把对象引用指向了同一个内存区域怎么办为了解决这个并发问题,对象的内存分配过程就必须进行同步控制。但是我们都知道,无论是使原创 2021-07-22 20:46:01 · 390 阅读 · 1 评论 -
面试阿里被问到JVM,不逼逼赖赖,直接盘给面试官看!!!
面试阿里被问到JVM,不逼逼赖赖,直接盘给面试官看!!!概述JVM体系结构类加载机制类加载器类加载过程双亲委派机制全盘负责委托机制打破双亲委派机制自定义类加载器实现JVM运行时数据区程序计数器虚拟机栈本地方法栈堆方法区(元空间)运行时常量池直接内存垃圾回收机制GC对象判定方法垃圾收集算法垃圾收集器JVM调优参数概述JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。J.原创 2021-07-21 20:04:47 · 3498 阅读 · 6 评论 -
入职第一天,我接手了号称【屎山】的祖传代码,这还能卷吗???
公司各种各样的祖传代码都是令新人虎躯一震的代码,因为有时候你根本不知道它是干嘛的,甚至觉得它毫无用处,关键是 还绝对不能动,碰一段改半年,别问我怎么知道的。最讽刺的是,你可能为了修改代码,也在里面拉了几次犯了罪恶…真的是绝绝子, 自此以后,遇到一些看着很奇怪的代码压根儿碰都不敢碰。有些祖传代码,你一动, 我们就再也回不去了有时候心血来潮改点东西……代码从头错到尾……//动都不要动,我试过了有时候当你只删了一行代码时,可能会发生下面这种情况说一个朋友经历的一座「屎山」,曾入职一家成立15.原创 2021-07-16 15:29:02 · 2949 阅读 · 13 评论 -
求职华为,被问观察者模式,从没有这种体验!!!
求职华为,被问观察者模式,从没有这种体验!!!模式的定义与特点模式的结构与实现1. 模式的结构2. 模式的实现模式的应用实例观察者模式可以说是非常贴近我们生活的一个设计模式,为什么这么说呢?哲学上有这么一种说法,叫做“万事万物皆有联系”,原意是说世上没有孤立存在的事物,但其实也可以理解为任何一个事件的发生必然由某个前置事件引起,也必然会导致另一个后置事件。我们的生活中,充斥着各种各样的相互联系的事件,而观察者模式,主要就是用于处理这种事件的一套解决方案。模式的定义与特点观察者(Observer)模原创 2021-06-21 22:14:35 · 883 阅读 · 4 评论 -
二面京东,面试官直接问我JVM,我心里一阵暗爽~
二面京东,面试官直接问我JVM,我心里一阵暗爽~简直了,hhhh明人不说暗话,直接进入主题!!!一、什么是JVM二、JAVA代码编译和执行过程类加载机制类执行机制三、JVM内存管理和垃圾回收垃圾回收按照基本回收策略分JVM分别对新生代和旧生代采用不同的垃圾回收机制新生代的GC:与旧生代的并发GC配合使用旧生代的GC:四、JVM内存调优(1)新生代设置过小(2)新生代设置过大(3)Survivor设置过小(4)Survivor设置过大最后汇总一下JVM常见配置堆设置收集器设置垃圾回收统计信息并行收集器设置并发原创 2021-06-09 23:00:04 · 6267 阅读 · 32 评论 -
我丢,去面试初级Java开发岗位,被问到泛型?
1、泛型的基础概念1.1 为什么需要泛型 List list = new ArrayList();//默认类型是Object list.add("A123"); list.add("B234"); list.add("C345"); System.out.println(list); for(int i=0;i<list.size();i++){ //若要将list中的元素赋给.原创 2021-06-07 21:25:51 · 6938 阅读 · 49 评论 -
2021年度最全面JVM虚拟机,类加载过程与类加载器
前言类装载器子系统是JVM中非常重要的部分,是学习JVM绕不开的一关。一般来说,Java 类的虚拟机使用 Java 方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 java.lang.Class类的一个实例。【参考文献】每个这样的实例用来表示一个 Java 类。通过此实例的 newInstance()方法就可以创建出该类的一个对象。类的生命周期我们先来看下类原创 2021-06-05 13:20:06 · 627 阅读 · 13 评论 -
被问到了!为什么一定要使用分布式,内行啊
一、为什么要使用分布式如果需求要测试 4000 虚拟用户数,而本机只能支持1000 虚拟用户,如果测试结果有可能是电脑的问题,而不是服务器的问题,所以需要把其他虚拟用户分配到多台电脑上把虚拟用户数分配到其他电脑上面去执行,执行结束后,在主电脑上查看执行结果就可以二、什么是分布式测试分布式测试是指通过局域网和Internet,把分布于不同地点、独立完成特定功能的测试计算机连接起来,以达到测试资源共享、分散操作、集中管理、协同工作、负载均衡、测试过程监控等目的的计算机网络测试三、执行原理对分布式测.原创 2021-06-02 15:57:03 · 1058 阅读 · 9 评论 -
面试官问:你做过什么Java线程池实践,我写了一篇博客给他看~
线程池大家都## 标题很熟悉,无论是平时的业务开发还是框架中间件都会用到,大部分都是基于JDK线程池ThreadPoolExecutor做的封装,都会牵涉到这几个核心参数的设置:核心线程数,等待(任务)队列,最大线程数,拒绝策略等。但如果线程池设置不当就会引起一系列问题, 下面就说下我最近碰到的问题。案件还原比如你有一个项目中有个接口部分功能使用了线程池,这个功能会去调用多个第三方接口,都有一定的耗时,为了不影响主流程的性能,不增加整体响应时间,所以放在线程池里和主线程并行执行,等线程池里的任.原创 2021-06-02 15:27:34 · 791 阅读 · 32 评论 -
牛逼!不得不服,第一次有人把Java 反射机制讲解这么透!
反射概述什么是反射将类的各个组成部分封装为其他对象的过程就叫做 反射,其中 组成部分 指的是我们类的 成员变量(Field)、构造方法(Constructor)、成员方法(Method)。使用反射的优缺点优点在程序运行过程中可以操作类对象,增加了程序的灵活性;解耦,从而提高程序的可扩展性,提高代码的复用率,方便外部调用;对于任何一个类,当知道它的类名后,就能够知道这个类的所有属性和方法;而对于任何一个对象,都能够调用它的一个任意方法。缺点性能问题:Java 反射中包含了一些动态类型,JV原创 2021-05-14 21:38:41 · 559 阅读 · 0 评论 -
面试难点!常用算法技巧之“滑动窗口”
算法简介滑动窗口,顾名思义,就是有一个大小可变的窗口,左右两端方向一致的向前滑动(右端固定,左端滑动;左端固定,右端滑动)。可以想象成队列,一端在push元素,另一端在pop元素,如下所示:假设有数组[a b c d e f g h]一个大小为3的滑动窗口在其上滑动,则有:[a b c] [b c d] [c d e] [d e f] [e f g] [f g h]适用范围1、一般是字符串或者列表2、一般是要求最值(最大长原创 2021-04-26 16:53:07 · 720 阅读 · 2 评论 -
Docker最全教程之使用Docker搭建Java开发环境
前言Java是一门面向对象的优秀编程语言,市场占有率极高,但是在容器化实践过程中,发现官方支持并不友好,同时与其他编程语言的基础镜像相比(具体见各语言镜像比较),确实是非常臃肿。JavaJava是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此[Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java具有简单性、面向对象、分布式、健壮性、原创 2021-01-19 17:22:57 · 2039 阅读 · 0 评论 -
eclipse配置tomcat 和JRE环境
配置JRE环境,通俗点讲就是添加一个不同版本的jdkwindow——preferences——java——installed jres点击add添加 选择standard VM择一个本机正确的jdk路径 name和下面lib加载都是系统自动完成的 选择好路径后 点 finish就ok了配置tomcatwindow——preferences——server——runtime envrionments选择一个tomcat eclipse版本不同 ,可选择tomcat版本的也不一样原创 2021-01-03 21:27:54 · 1747 阅读 · 0 评论 -
手把手教你java快速过滤关键词
java过滤关键词敏感词、文字过滤是一个网站必不可少的功能,如何设计一个好的、高效的过滤算法是非常有必要的。前段时间我一个朋友(马上毕业,接触编程不久)要我帮他看一个文字过滤的东西,它说检索效率非常慢。我把它程序拿过来一看,整个过程如下:读取敏感词库、如果HashSet集合中,获取页面上传文字,然后进行匹配。我就想这个过程肯定是非常慢的。对于他这个没有接触的人来说我想也只能想到这个,更高级点就是正则表达式。但是非常遗憾,这两种方法都是不可行的。当然,在我意识里没有我也没有认知到那个算法可以解决问题,但是原创 2020-12-16 21:49:07 · 2194 阅读 · 0 评论 -
2018年最受大家欢迎的五大机器学习工具和五大数据学习工具
2018年将会是人工智能和机器学习快速发展的一年,有专家表示:相较之下Python比Java更加接地气,也自然而然地成为机器学习的首选语言在数据科学方面,Python的语法与数学语法最为接近,因此是数学家或经济学家等专业人士最容易理解和学习的语言。本文将罗列机器学习和数据科学应用程序中最有用的十大Python工具五大机器学习工具1、ShogunSHOGUN是一个机器学习工具箱,专注于支持向量机(S...原创 2018-05-09 16:55:58 · 8593 阅读 · 0 评论