java
文章平均质量分 93
折翼之舞°
断剑,知其主。
展开
-
学到了!受益匪浅啊,终于有人把什么是JVM同步讲清楚了!
JVM 的内存模型和 JVM 的垃圾回收机制一直是 Java 业内从业者绕不开的话题(实际调优、面试),大家再来一起学习一下 JVM的垃圾回收机制。作为 Java 从业者如果不掌握这些知识点可能很难跳过高级走向架构师阶段。怎么理解什么是同步?答案:同步用来控制共享资源在多个线程间的访问,以保证同一时间内只有一个线程能访问到这个资源。在非同步保护的多线程程序里面,一个线程正在修改一个共享变量的时候,可能有另一个线程也在使用或者更新它的值。同步避免了脏数据的产生。对方法进行同步:public.原创 2021-02-02 20:51:28 · 2110 阅读 · 1 评论 -
MyBatis——缓存机制(一、二级缓存\缓存实验\源码分析\缓存工作流程及其原理)
前言MyBatis是常见的Java数据库访问层框架。在日常工作中,开发人员多数情况下是使用MyBatis的默认缓存配置,但是MyBatis缓存机制有一些不足之处,在使用中容易引起脏数据,形成一些潜在的隐患。个人在业务开发中也处理过一些由于MyBatis缓存引发的开发问题,带着个人的兴趣,希望从应用及源码的角度为读者梳理MyBatis缓存机制。目录本文按照以下顺序展开。一级缓存介绍及相关配置。一级缓存工作流程及源码分析。一级缓存总结。二级缓存介绍及相关配置。二级缓存源码分析。二级缓存总结。原创 2021-01-14 20:43:30 · 468 阅读 · 3 评论 -
一图解千愁,jvm内存从来没有这么简单过!
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210105204749461.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1MxMTAzNTc2Mg==,size_16,c...原创 2021-01-05 21:12:00 · 326 阅读 · 2 评论 -
Spring Cloud 入门总结(Eureka、Ribbon、Hystrix、Zuul、配置管理/Config)
什么是Spring cloud构建分布式系统不需要复杂和容易出错。Spring Cloud 为最常见的分布式系统模式提供了一种简单且易于接受的编程模型,帮助开发人员构建有弹性的、可靠的、协调的应用程序。Spring Cloud 构建于 Spring Boot 之上,使得开发者很容易入手并快速应用于生产中。官方果然官方,介绍都这么有板有眼的。(吹牛逼)我所理解的 Spring Cloud 就是微服务系统架构的一站式解决方案,在平时我们构建微服务的过程中需要做如 服务发现注册 、配置中心 、消息总线原创 2020-12-30 15:22:36 · 366 阅读 · 3 评论 -
10年JAVA架构师成长之路,和你聊聊JAVA和工作方面那点事
从事近十年的 JavaEE 应用开发工作,现任阿里巴巴公司系统架构师。对分布式服务架构与大数据技术有深入研究,具有丰富的 B/S 架构开发经验与项目实战经验,擅长敏捷开发模式。国内开源软件推动者之一,Smart Framework 开源框架创始人。热爱技术交流,乐于分享自己的工作经验。著有《架构探险——从零开始写Java Web框架》一书。我的十年技术之路和大家介绍下我目前所从事的工作。我目前从事分布式服务架构的设计与开发工作,在阿里的大数据平台上进行应用程序开发。我们整个系统架构采用了“前后端分离”原创 2020-12-24 19:57:29 · 390 阅读 · 3 评论 -
2020是我自学JAVA的一年,用这份JAVA核心知识来证明我一年来的努力是有收获的!
这也算是这一年交出的一份答案吧目录1、面向对象的特征有哪些方面?2、访问修饰符public,private,protected,以及不写(默认)时的区别?3、String 是最基本的数据类型吗?4、float f=3.4;是否正确?5、short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?6、int和Integer有什么区别?7、&和&&的区别?8、解释内存中的栈(stack)、堆(heap)和静态区(static area原创 2020-12-22 13:38:28 · 2778 阅读 · 3 评论 -
学到了,2020超强Dubbo核心面试26题和答案:核心组件+服务治理+架构设计等
1.Dubbo是什么?Dubbo 是一个分布式、高性能、透明化的 RPC 服务框架,提供服务自动注册、自动发现等高效服务治理方案, 可以和 Spring框架无缝集成。2.Dubbo的由来?互联网的快速发展,Web应用程序的规模不断扩大,一般会经历如下四个发展阶段。单一应用架构:当网站流量很小时,只需一个应用,将所有功能都部署在一起即可。垂直应用架构:当访问量逐渐增大,单一应用按照有业务线拆成多个应用,以提升效率。欢迎各位大佬进群共同交流学习,我们的交流分享群:1149778920 暗号原创 2020-12-21 20:54:14 · 258 阅读 · 2 评论 -
在国外没有盛行的MyBatis,在国内为什么相当流行?原因有竟然是这些点 ! . . . . . . . . . . . . . . . . . . .
咱们开门见山,不绕弯直奔主题!mybatis流行的原因很简单就是做好了自动封装数据对象这件事,又没有搞出其他的破事实际上在mybatis的应用场景里面,开发者要的就是自动封装,把sql查询结果转化为指定的java对象,这就够了hibernate也可以做到这些,但是它自己给自己加了不少戏。什么缓存什么Criteria什么Lazy最后导致结果是当项目大了或者业务复杂了,除了优化业务程序和数据库,还得优化它。用mybatis只要优化业务程序和数据库就行了。用hibernate白白增加工作量还增加学习.原创 2020-12-20 20:21:59 · 4240 阅读 · 4 评论 -
作为行业过来人,给后面即将入门的晚辈说的一些话
年纪轻轻不是迫不得已,千万不要进传统公司的伪互联网项目。事儿少,福利好,混子多,和老油条们摸鱼一两年,哪天项目突然被裁掉了,再出社会,你完全没有竞争力。一、在校期间,一定要好好学习,打扎实基础工作中遇到的问题,往往不是直接编程可以解决,往往是一个复杂的体系,这时候,把现实问题转化成IT方案的能力就会变得极其重要。而这种能力,一定是建立在对整体的信息体系结构的理解上的。所以,那些数学,数据结构,计算机原理,网络基础,数据库基础软件工程,看起来好像和早期的工作没用,但是他就埋藏在你的思维的深处,随着工作.原创 2020-12-17 16:08:50 · 1757 阅读 · 3 评论 -
我做了4年的面试官,靠着这7道Spring面试题就能刷掉70%的人!为什么呢?
本文中我们主要介绍微服务开发框架——Spring Cloud。尽管Spring Cloud带有"Cloud"的字样,但它并不是云计算解决方案,而是Spring Boot的基础上构建的,用于快速构建分布式系统的通用模式的工具集。欢迎各位大佬进群共同交流学习,我们的交流分享群:1149778920 暗号:CSDN博主在这里给大家整理了包括但不限于:JAVA基础和进阶类、Spring、Spring boot、Spring MVC、MyBatis、MySQL、JVM等各种资料有,免费分享给各位进群的.原创 2020-12-15 22:29:48 · 3408 阅读 · 4 评论 -
多线程是JAVA绕不去的坎,为什么坚持多线程不选择协程呢?让我来告诉你原因:。。。。。。。
前言:发现面试时多线程是Java绕不去的坎,就有几个问题:1.为什么多线程在Java中这么重要2.据说多线程会出现难以排查的BUG,那么使用协程的话能否避免这些BUG呢3.go的协程是可以跑满整个核心的,但Java是不是除非从语言底层改造,否则做不到这一点4.Kotlin支持协程,是否用起来比多线程好呢所以,学好Java中的多线程是否还有必要呢?欢迎各位大佬进群共同交流学习,我们的交流分享群:1149778920 暗号:CSDN博主在这里给大家整理了包括但不限于:JAVA基础和进阶类、原创 2020-12-14 14:31:04 · 341 阅读 · 2 评论 -
(建议收藏)2020最新排序算法总结:冒泡、选择、插入、希尔、快速、归并、堆排序、基数排序
一. 冒泡排序(BubbleSort)基本思想:两个数比较大小,较大的数下沉,较小的数冒起来。过程:1.比较相邻的两个数据,如果第二个数小,就交换位置。2.从后向前两两比较,一直到比较最前两个数据。最终最小数被交换到起始的位置,这样第一个最小数的位置就排好了。3.继续重复上述过程,依次将第2.3…n-1个最小数排好位置。平均时间复杂度:O(n2)java代码实现:public static void BubbleSort(int [] arr){ ..原创 2020-12-12 16:37:34 · 3342 阅读 · 3 评论 -
JAVA学习路线之:Spring从懵逼到精通——Sping架构\依赖注入\应用切面
关于SpringSpring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。学习Spring是基础课程。但是大多数同学都只知其然但是不知其所以然。在这里我们就系统的来说一下Spring的点点滴滴吧。今天作为第一讲,就来聊聊Spring到底做了啥。让大家从懵逼的状态下开始我们的Spring之旅。Spring能够激发POJO的潜能很多框架通过强迫应用继承他们的类或者实现它们的接口从原创 2020-12-11 16:43:38 · 3572 阅读 · 4 评论 -
2020接近尾声,深入理解Java线程池核心技术:ThreadPoolExecutor(各种接口、构造方法)内附详细代码
线程池介绍在web开发中,服务器需要接受并处理请求,所以会为一个请求来分配一个线程来进行处理。如果每次请求都新创建一个线程的话实现起来非常简便,但是存在一个问题:如果并发的请求数量非常多,但每个线程执行的时间很短,这样就会频繁的创建和销毁线程,如此一来会大大降低系统的效率。可能出现服务器在为每个请求创建新线程和销毁线程上花费的时间和消耗的系统资源要比处理实际的用户请求的时间和资源更多。欢迎各位大佬进群共同交流学习,我们的交流分享群:1149778920 暗号:CSDN博主在这里给大家整理了包括原创 2020-12-10 20:37:20 · 3467 阅读 · 4 评论 -
学习规划梳理:要想学习Spirng,那我们在学习Spring之前应该做好哪些准备呢?
要开始学习Spring(以IOC和Spring MVC为核心),只需要做好以下准备即可:《Java核心技术》前6章。Java反射原理(选学)。Servlet。而想理解上面的结论,则首先必须理解Spring是干什么的。打开Spring的官方网站,点击projects页面,你会看到一个偌大的结构图。其中列出许多项目,包括:Spring Boot、Spring Cloud 、Spring Data…。对初学来说,乍一看着实吓一跳,完全不知道从何下手。但透过表现看本质。无论是Spring Data,原创 2020-12-09 15:41:56 · 3448 阅读 · 5 评论 -
2021不多BB不走弯路,我认为我这份Java学习路线是适合绝大多数人的
提前预警:本文适合Java新手阅读(老手可在评论区给下建议),希望大家看完能有所收获。如何快速学Java这里我以Java EE(Jakarta EE)/Java Web的经验来说哦。(都把你们看做是零基础入门的了)学习Java EE(Jakarta EE)总体来说会有以下三大模块:Java数据库Web前端在我看来,无论学习什么技术都好,在学习该项技术的细节之前都得知道:这项技术是什么,为什么我要学习这项技术,学习了这项技术有什么好处。看似好像我在说多余的话,但如果你在原创 2020-12-08 16:18:24 · 3203 阅读 · 6 评论 -
走进Java程序员——MyBatis的创建执行流程(内附源码)
最近刚学完MyBatis,趁着大好机会,总结一下它的执行流程,面试也爱问这个学习就像干饭,干完这顿接下顿——————鲁迅第一步:首先Mybaitis自己的一个Resources类会去调用一个叫getResourceAsStream()的方法加载配置MyBatis的核心配置文件,得到一个流对象。(本质上还是走的java.lang包下的ClassLoader类加载器的getResourceAsStream)源码:本质上还是去使用java.lang包下的类加载器第二步:有了这个流对象,下.原创 2020-12-07 19:21:12 · 3421 阅读 · 6 评论 -
高级映射持久层框架:Mybatis核心知识点大全解析—— ( mybatis框架、缓存、分页插件、映射、语法设定)学完技术上生一个点!
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC代码和手动设置参数以及获取结果集。mybatis框架讲下 MyBatis 的缓存答:MyBatis 的缓存分为一级缓存和二级缓存,一级缓存放在 session 里面,默认就有,二级缓存放在它的命名空间里,默认是不打开的,使用二级缓存属性类需要实现 Serializable 序列化接口(可用来保存对象的状态),可在它的映射文件中配置欢迎各位大佬进群共同交流学习,我.原创 2020-12-04 21:04:57 · 3555 阅读 · 5 评论 -
吐血整理收集时间长达一个月的Java: JVM(生命周期、结构体系、堆、栈、运行机制&原理)核心知识要点梳理
JVM的基础概念JVM的中文名称叫Java虚拟机,它是由软件技术模拟出计算机运行的一个虚拟的计算机。JVM也充当着一个翻译官的角色,我们编写出的Java程序,是不能够被操作系统所直接识别的,这时候JVM的作用就体现出来了,它负责把我们的程序翻译给系统“听”,告诉它我们的程序需要做什么操作。我们都知道Java的程序需要经过编译后,产生.Class文件,JVM才能识别并运行它,JVM针对每个操作系统开发其对应的解释器,所以只要其操作系统有对应版本的JVM,那么这份Java编译后的代码就能够运行起来,这就是原创 2020-12-01 16:17:01 · 6924 阅读 · 42 评论 -
好家伙——面试阿里被P8质问:ConcurrentHashMap真的线程安全吗?
没啥深入实践的初中级工程师,使用并发工具时,自以为把HashMap改为ConcurrentHashMap,就能完美解决并发。或者使用写时复制的CopyOnWriteArrayList,性能更佳呀!技术言论虽然自由,但面对P8魔鬼面试官时, 你能针对他提问的场景还能做出是否线程安全的正确判断吗?我们都知道ConcurrentHashMap是个线程安全的哈希表容器,但它仅保证提供的原子性读写操作线程安全。案例有个含900个元素的Map,现在再补充100个元素进去,这个补充操作由10个线程并发进行。 开原创 2020-11-30 21:12:35 · 3393 阅读 · 5 评论 -
真实的面试翻车经历,我以为我对Mysql事务很熟,直到我遇到了阿里面试官。。。
前言感谢这位网友的分享,以下面试过程全程由第一人称欢迎各位大佬进群共同交流学习,我们的交流分享群:1149778920 暗号:CSDN博主在这里给大家整理了包括但不限于:JAVA基础和进阶类、Spring、Spring boot、Spring MVC、MyBatis、MySQL、JVM等各种资料有,免费分享给各位进群的小伙伴闲话不多扯,咱们直接进入正题迎面走来了一个风尘仆仆的身穿格子衫的男子,手里拿着一个MacBook Pro,看着那稀少的发量,和那从容淡定的眼神。我心里一颤,我去,原创 2020-11-26 17:17:48 · 349 阅读 · 3 评论 -
《Spring》源码学习指南:有时候不是你笨!掌握正确的学习方法很重要。
因为不断有朋友,或留言,或私信,问我Spring源码阅读问题。我本有心回答,但奈何这是一个非三言两语能说清出的事。所以就决定写一篇小文,来分享下我的浅薄经验。因为Spring的源代码量非常大。如果像阅读小说一样,一行不拉的读,是不现实的。所以,现实,而且有用的做法,是只阅读核心代码。至于其他边支代码,如果通读,一则不现实,二则没有必要。但因为Spring复杂,且设计精妙。初学者刚开始阅读,必然会面比较茫然,不知从那里入手。而我的做法,有一下几个关键点:1.先掌握Spring的基本用法。在阅读Spr原创 2020-11-25 20:24:23 · 5421 阅读 · 8 评论 -
看完你还敢说你懂JVM吗?没人比我更懂JVM!
在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约 600m ,Linux自身使用大约800m。从表面上,物理内存应该是足够使用的;但实际运行的情况是,会发生大量使用SWAP(说明物理内存不够使用了),如下图所示。由于SWAP和GC同时发生会致使JVM严重卡顿,所以我们要追问:内存究竟去哪儿了?要分析这个问题,理解JVM和操作系统之间的内存关系非常重要。接下来主要就Linux与JVM之间的内存关系进行一些分析。原创 2020-11-23 15:45:27 · 1998 阅读 · 5 评论 -
加油,奥里给!为了备战2021春招整理了最新 最强 最全 JAVA 核心知识点 !~
俗话说的好,要做什么事情之前,先准备好才能万无一失。智者往往早就提前做好了准备~这样面试起来,面对面试官的各种刁钻的提问才能轻松应对不会像无头苍蝇一般,面对问题无从下手!学完此文,面试官只能牛逼3连问Java基础JDK 和 JRE 有什么区别?== 和 equals 的区别是什么? = =解读两个对象的 hashCode() 相同, 那么 equals() 也一定为 true吗?final 在 Java 中有什么作用?Java 中的 Math. round(-原创 2020-11-22 21:50:53 · 3905 阅读 · 8 评论 -
网友:”谢谢博主,看完此文对于并发编程以及各种锁总算吃透撤了!“
死锁、活锁、饥饿是关于多线程是否活跃出现的运行阻塞障碍问题,如果线程出现 了这三种情况,即线程不再活跃,不能再正常地执行下去了。1.什么是活锁、饥饿、无锁、死锁?死锁死锁是多线程中最差的一种情况,多个线程相互占用对方的资源的锁,而又相互等 对方释放锁,此时若无外力干预,这些线程则一直处理阻塞的假死状态,形成死锁。举个例子,A 同学抢了 B 同学的钢笔,B 同学抢了 A 同学的书,两个人都相互占 用对方的东西,都在让对方先还给自己自己再还,这样一直争执下去等待对方还而 又得不到解决,老师知道此.原创 2020-11-20 20:57:35 · 2183 阅读 · 3 评论 -
学Mybatis,入门看这一篇就够你学的了!
首先什么是MyBatis?MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis。是一个基于Java的持久层框架基本概念你总得给摸清楚为什么我们要用Mybatis?无论是Mybatis、Hibernate都是ORM的一种实现框架,都是对JDBC的一种封装!本人在这里整理了20多家公司的面试题,以及各种关于Spring、Spring boot、Spring原创 2020-11-19 21:37:50 · 2162 阅读 · 2 评论 -
这是一道面试题,90%的人被问过!明明很常见为什么却无从下手?
这是一道很常见的面试题,但是大多数人并不知道怎么回答,这种问题其实可以有很多形式的提问方式,你一定见过而且感觉无从下手:面对业务急剧增长你怎么处理?业务量增长10倍、100倍怎么处理?你们系统怎么支撑高并发的?怎么设计一个高并发系统?高并发系统都有什么特点?…本人在这里整理了20多家公司的面试题,以及各种关于Spring、Spring boot、Spring MVC、MyBatis、MySQL、JVM等知识点,如果有需要的小伙伴可以加群1149778920 暗号:qf微服务架构演化原创 2020-11-16 16:56:24 · 4088 阅读 · 8 评论 -
一文带你了解为什么我们做分布式使用 Redis ?Redis优势体现在哪里?
绝大部分写业务的程序员,在实际开发中使用 Redis 的时候,只会 Set Value 和 Get Value 两个操作,对 Redis 整体缺乏一个认知。这里对 Redis 常见问题做一个总结,解决大家的知识盲点。1、为什么使用 Redis在项目中使用 Redis,主要考虑两个角度:性能和并发。如果只是为了分布式锁这些其他功能,还有其他中间件 Zookpeer 等代替,并非一定要使用 Redis。性能:如下图所示,我们在碰到需要执行耗时特别久,且结果不频繁变动的 SQL,就特别适合将运行结果放入缓原创 2020-11-10 20:40:42 · 3908 阅读 · 6 评论 -
超级干货分享 | 后端真的那么难吗?5年面试官手把手教你如何去应对面试官
在上周,密集面试了若干位Java后端的候选人,工作经验在3到5年间。我的标准其实不复杂:第一能干活,第二Java基础要好,第三最好熟悉些分布式框架,我相信其它公司招初级开发时,应该也照着这个标准来面的。我也知道,不少候选人能力其实不差,但面试时没准备或不会说,这样的人可能在进团队干活后确实能达到期望,但可能就无法通过面试,但面试官总是只根据面试情况来判断。但现实情况是,大多数人可能面试前没准备,或准备方法不得当。要知道,我们平时干活更偏重于业务,不可能大量接触到算法,数据结构,底层代码这类面试必问的问题原创 2020-11-08 15:21:57 · 2208 阅读 · 5 评论 -
Mybatis与Jdbc相比优势在哪?不比不知道,一比吓一跳!网友:Mybatis 牛逼!
两个字:方便Mybatis应该是国内用得最多的「数据访问层」框架了,我看了我司的好几个系统,基本都是用Mybatis的。实话实说,我对Mybatis没有很深入的了解,也仅仅是处于「会用」的阶段上。日常的要加张表,加个字段就是写写 DAO/Mapper 。为什么没有深入去研究Mybatis的原因很可能是面试其实问得不是特别多,起码我在校招的时候面了很多家公司,也没怎么问我Mybatis的。Mybatis如果仅仅是要「会用」,入门是非常快的,感觉两三天就可以搞好了。认识Mybatis在前阵子已经原创 2020-11-07 20:49:45 · 5927 阅读 · 4 评论 -
欢迎来到“多核时代”!多线程,并发锁?今天就来带你解析看看什么是“多线程、并发锁”
多线程编程,是 “多核时代” 提升计算性能的关键因素之一,亦属于开发者必须掌握的核心技能。现在不管是大公司还是小公司,去面试都会问到多线程与并发编程的知识,大家面试的时候这方面的知识一定要提前做好储备。JVM 对 Java 的 原 生 锁 做 了 哪 些 优 化 ?在Java6之 前 ,Monitor的实现完全依赖底层操作系统的互斥锁来实现,也就是我们刚才在问题二中所阐述的获取/释放锁的逻辑 。由于Java层面的线程与操作系统的原生线程有映射关系,如果要将一个线程进行阻塞或唤起都需要操作系.原创 2020-11-06 19:24:03 · 2357 阅读 · 5 评论 -
男默女泪,努力复习的我终于通过社招进入BAT工作了!(JAVA+JVM+框架+中间件+Spring干货分享)
我觉得在boss直聘上找人推荐挺好用的(绝对不是广告,个人经验,我在杭州,面的阿里),我前后被推荐过好几次,都因为项目经验的问题没进去,结论都是基本功可以,但没有大型项目经验(原来做的都是政府项目,项目经验确实是弱项,感觉拉低知乎平均水平)经过不断的努力,我终于成功了!心酸呐说说我的个人经验吧,我学java的,面试经常遇到的问题有以下这些ps:由于答案内容过多我就不放上来了,需要答案的小伙伴可以自行加群来免费领取,(里面包含了Spring、并发、数据库、Redis、分布式、dubbo、JV.原创 2020-11-05 19:55:27 · 5131 阅读 · 14 评论 -
细节决定成败,一份你需要的JAVA学习路线图前来助力 !看完学习效率提升10倍!
我把自己的实践经验整理成几篇文章,目的是帮助后来者高效的学习Java。在过去的一年里,根据读者的反馈,以及我个人的思考,我觉得有必要基于这些文章,提供给读者一个凝练,且不失细节的“Java学习路线图”。该路线图在保留了文章的核心架构外,也做了一些优化,包括:更详细的学习内容。更精确的学习时间。优化学习方法,避开前端知识。及时引入Jar包管理(Maven)。下面是具体的 “Java学习路线图”:在图中,我把Java学习分成3个阶段:基础知识Spring应用服务阶段划分的原.原创 2020-11-04 15:11:33 · 4111 阅读 · 4 评论 -
我:“基于JAVA的Spring为什么能这么火?” 大牛:“且看我一 一 道来!”
Spring 框架是一个为 Java 应用程序的开发提供了综合、广泛的基础性支持的 Java 平台。Spring 帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。Spring 框架本身亦是按照设计模式精心打造,这使得我们可以在开发环境中安心的集成 Spring 框架,不必担心 Spring 是如何在后台进行工作的。Spring 框架至今已集成了 20 多个模块。这些模块主要被分如下图所示的核心容器、数据访问/集成,、Web、AOP(面向切面编程)、工具、消息和测试模块。.原创 2020-11-03 20:53:23 · 6486 阅读 · 27 评论 -
2021面试题抢先泄露备战春招,铁汁们我先收藏了!
偷偷分享一波嘿嘿!解释 Java 堆空间及 GC?当通过 Java 命令启动 Java 进程的时候,会为它分配内存。内存的一部分用于创建堆空间,当程序中创建对象的时候,就从对空间中分配内存。GC 是 JVM 内部的一个进程,回收无效对象的内存用于将来的分配。你能保证 GC 执行吗?不能,虽然你可以调用 System.gc() 或者 Runtime.getRuntime().gc(),但是没有办法保证 GC 的执行。怎么获取 Java 程序使用的内存?堆使用的百分比?可以通过 java.la.原创 2020-11-02 19:17:31 · 445 阅读 · 3 评论 -
面试官:“JAVA基础都不牢靠,我为什么要聘请你?”
Java 中实现多态的机制是什么?多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编译时不确定,在运行期间才确定,一个引用变量到底会指向哪个类的实例。这样就可以不用修改源程序,就可以让引用变量绑定到各种不同的类实现上。Java 实现多态有三个必要条件:继承、重定、向上转型在多态中需要将子类的引用赋值给父类对象,只有这样该引用才能够具备调用父类方法和子类的方法。如何将一个 Java 对象序列化到文件里?ObjectOutputStream.writeObject()负原创 2020-10-31 15:23:30 · 646 阅读 · 7 评论 -
灵魂三连:控制反转(IOC) ?什么是依赖注入?你真的看懂Spring了吗?
Spring 框架带来的主要好处:Dependency Injection(DI) 方法使得构造器和 JavaBean properties 文件中的依赖关系一目了然。与 EJB 容器相比较,IoC 容器更加趋向于轻量级。这样一来 IoC 容器在有限的内存和 CPU 资源的情况下进行应用程序的开发和发布就变得十分有利。Spring 并没有闭门造车,Spring 利用了已有的技术比如 ORM 框架、logging 框架、J2EE、Quartz 和 JDK Timer,以及其他视图技术。Spring原创 2020-10-30 20:59:55 · 392 阅读 · 6 评论 -
(6年+滴滴offer)来自一位老程序员的自述,人过的太安逸真的不行!
以下皆为第一人称叙述本人在传统公司呆了几年,每天都是一些增删改查鸡毛蒜皮的小事。技术下滑的很厉害今年又因为疫情的原因被公司裁掉了,无奈出来找工作,刚开始处处碰壁(真的不适应),恶补了几个月后面试才成功拿到offer!一面初面面试官点到我的名字之后,我跟着面试官去他的那个位置。介绍+项目(其实面试流程和大多数互联网公司流程差不多,首先让自己介绍一个比较满意的项目。)mybatis的映射能否处理枚举类?mvc的流程Integer a =new Integer(7);Integer b原创 2020-10-29 17:33:18 · 6770 阅读 · 3 评论 -
大佬手撕Mybatis源码的资本是什么?原来竟然是这样!
Mybatis作为目前最为常用的持久层框架,我们不仅仅要会使用,更要了解它的底层实现原理。手写框架不仅仅能帮我们了解原理,更能让我们快速从初级程序员向高级程序员迈进。1、什么是 MyBatis?答:MyBatis 是一个可以自定义 SQL、存储过程和高级映射的持久层框架。2、讲下 MyBatis 的缓存答:MyBatis 的缓存分为一级缓存和二级缓存,一级缓存放在 session 里面,默认就有,二级缓存放在它的命名空间里,默认是不打开的,使用二级缓存属性类需要实现 Serializable 序.原创 2020-10-28 19:52:50 · 3903 阅读 · 3 评论 -
面试时算法题的解答思路小结
面试中纯粹考算法的问题一般是让很多程序员朋友痛恨的,这里分享下我对于解答算法题的一些思路和技巧。一般关于算法的文章,都是从经典算法讲起,一种一种算法介绍,见得算法多了,自然就有了感悟,但如此学习花费的时间和精力却是过于巨大,也不适合在博客里面交流。这一篇文,却是专门讲快捷思路的,很多人面对算法题的时候几乎是脑子里一片空白,这一篇文章讲的就是从题目下手,把毫无思路的题目打开一个缺口的几种常见技巧。(一)由简至繁事实上,很多问题确实是很难在第一时间内得到正确的思路的,这时候可以尝试一种由简至繁的思路。首先原创 2020-10-27 14:54:54 · 490 阅读 · 3 评论