Java之路
文章平均质量分 89
你丫才CRUD
这个作者很懒,什么都没留下…
展开
-
SpringBoot 的@Value注解真是太强了,谁用谁说爽!
一、前言在日常开发中,经常会遇到需要在配置文件中,存储 List 或是 Map 这种类型的数据。Spring 原生是支持这种数据类型的,以配置 List 类型为例,对于 .yml 文件配置如下:test: list: - aaa - bbb  原创 2021-07-21 15:27:52 · 182 阅读 · 0 评论 -
常见的Java锁总结:公平锁,可重入锁,独享锁,互斥锁,乐观锁,分段锁,偏向锁,自旋锁等等
前言在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下:1.公平锁 / 非公平锁2.可重入锁 / 不可重入锁3.独享锁 / 共享锁4.互斥锁 / 读写锁5.乐观锁 / 悲观锁6.分段锁7.偏向锁 / 轻量级锁 / 重量级锁8.自旋锁上面是很多锁的名词,这些分类并不是全是指锁的状态,有的指锁的特性,有的指锁的设计,下面总结的内容是对每个锁的名词进行一定的解释。整理了100+个Java项目教程+笔记+源码。公平锁 / 非公平锁公平锁公平锁原创 2021-03-18 14:36:38 · 259 阅读 · 0 评论 -
美团二面:内存耗尽后Redis会发生什么?
前言作为一台服务器来说,内存并不是无限的,所以总会存在内存耗尽的情况,那么当 Redis 服务器的内存耗尽后,如果继续执行请求命令,Redis 会如何处理呢?设置有效期使用Redis 服务时,很多情况下某些键值对只会在特定的时间内有效,为了防止这种类型的数据一直占有内存,我们可以给键值对设置有效期。Redis中可以通过 4 个独立的命令来给一个键设置过期时间:10多套Java面试文档,地址:2021年面试必问的Java面试题expire原创 2021-02-24 14:23:10 · 171 阅读 · 0 评论 -
为什么都说 HashMap 是线程不安全的?
前言我们都知道HashMap是线程不安全的,在多线程环境中不建议使用,但是其线程不安全主要体现在什么地方呢,本文将对该问题进行解密。1、jdk1.7中的HashMap在jdk1.8中对HashMap做了很多优化,这里先分析在jdk1.7中的问题,相信大家都知道在jdk1.7多线程环境下HashMap容易出现死循环,这里我们先用代码来模拟出现死循环的情况:关于Java项目整理了100+Java项目视频+源码+笔记,地址:100+Java项目视频+源码+笔记public class HashMapTes原创 2021-02-19 13:57:53 · 206 阅读 · 0 评论 -
京东面试官:为什么不建议在 MySQL 中使用 UTF-8?
一、报错回顾将emoji文字直接写入SQL中,执行insert语句报错;INSERT INTO `csjdemo`.`student` (`ID`, `NAME`, `SEX`, `AGE`, `CLASS`, `GRADE`, `HOBBY`) VALUES ('20', '陈哈哈????', '男', '20', '181班', '9年级', '看片儿');[Err] 1366 - Incorrect string value: ‘\xF0\x9F\x98\x93’ for colum转载 2021-01-21 14:32:53 · 166 阅读 · 0 评论 -
String还有长度限制?是多少?
前言话说Java中String是有长度限制的,听到这里很多人不禁要问,String还有长度限制?是的有,而且在JVM编译中还有规范,而且有的家人们在面试的时候也遇到了。本人就遇到过面试的时候问这个的,而且在之前开发的中也真实地遇到过这个String长度限制的场景(将某固定文件转码成Base64的形式用字符串存储,在运行时需要的时候在转回来,当时文件比较大),那这个规范限制到底是怎么样的,咱们话不多说先䁖䁖去。关于Java项目还整理了100+Java项目视频+源码+笔记,地址:100+Java项目视频+源原创 2021-01-14 13:51:46 · 520 阅读 · 1 评论 -
阿里面试官:你没搞清楚HashMap原理,竟然敢写精通!
一、散列表结构散列表结构就是数组+链表的结构二、什么是哈希?Hash也称散列、哈希,对应的英文单词Hash,基本原理就是把任意长度的输入,通过Hash算法变成固定长度的输出这个映射的规则就是对应的哈希算法,而原始数据映射后的二进制就是哈希值Java并发编程学习笔记,关注公众号:程序员追风,回复 013 领取422页PDF文档不同的数据它对应的哈希码值是不一样的哈希算法的效率非常高三、HashMap原理讲解3.1、继承体系图3.2、Node数据结构分析static class Nod原创 2021-01-13 15:14:32 · 216 阅读 · 0 评论 -
为什么MySQL不推荐使用uuid作为主键?
前言在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一,单机递增),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究竟有什么坏处?关注公众号:程序员追风,回复012获取一套500多页PDF总结的MySQL学习笔记。关于MySQL的知识点总结了一个思维导图分享给大家一、mysql和程序实例1.1.要说明这个问题,我们首先来建立三张表分别是user_auto_key,user_u原创 2020-12-29 14:08:50 · 380 阅读 · 1 评论 -
这 8 种Synchronized 的用法,真是绝了!
简介本文将介绍8种同步方法的访问场景,我们来看看这8种情况下,多线程访问同步方法是否还是线程安全的。这些场景是多线程编程中经常遇到的,而且也是面试时高频被问到的问题,所以不管是理论还是实践,这些都是多线程场景必须要掌握的场景。整理了100+个Java项目视频+源码+笔记八种使用场景:接下来,我们来通过代码实现,分别判断以下场景是不是线程安全的,以及原因是什么。1、两个线程同时访问同一个对象的同步方法2、两个线程同时访问两个对象的同步方法3、两个线程同时访问(一个或两个)对象的静态同步方法4、两原创 2020-12-28 13:28:31 · 193 阅读 · 0 评论 -
蚂蚁金服面试官:ConcurrentHashMap线程安全吗?
前言没啥深入实践的理论系同学,在使用并发工具时,总是认为把HashMap改为ConcurrentHashMap,就完美解决并发了呀。或者使用写时复制的CopyOnWriteArrayList,性能更佳呀!技术言论虽然自由,但面对魔鬼面试官时,我们更在乎的是这些真的正确吗?整理了100+个Java项目视频+源码+笔记线程重用导致用户信息错乱生产环境中,有时获取到的用户信息是别人的。查看代码后,发现是使用了ThreadLocal缓存获取到的用户信息。ThreadLocal适用于变量在线程间隔离,而在方法原创 2020-12-27 14:21:52 · 865 阅读 · 0 评论 -
Spring Boot 与 Spring MVC有什么区别
前言Spring 框架就像一个家族,有众多衍生产品例如 boot、security、jpa等等。但他们的基础都是Spring 的 ioc和 aop ioc 提供了依赖注入的容器 aop ,解决了面向横切面的编程,然后在此两者的基础上实现了其他延伸产品的高级功能。整理了100+个Java项目视频+源码+笔记Spring MVC是基于 Servlet 的一个 MVC 框架 主要解决 WEB 开发的问题,因为 Spring 的配置非常复杂,各种XML、 JavaConfig、hin处理起来比较繁琐。于是为了简原创 2020-12-24 15:54:02 · 187 阅读 · 0 评论 -
4个步骤,解决在生产环境下JVM内存泄露de 问题
发现异常首先通过我们内部搭建的日志平台发现我们线上环境一个java应用有大量的http接口请求超时,登录linux服务器查看网络环境没有问题,判断是应用自身运行异常,重启应用后发现异常还在,开始查找问题。整理了100+个Java项目视频+源码+笔记初步查找问题通过指令:jstat -gcutil 查看jvm内存占用和gc情况:发现老年代内存占用比例过高,并且每次fullGC后并没有有效回收。老年代内存占用百分比变化趋势大致如下:初步判断大量请求超时和服务瘫痪的直接原因:每次fullGC后的内存原创 2020-12-24 15:43:23 · 187 阅读 · 0 评论 -
MyBatis 中 @Param 注解的四种使用场景,最后一种经常被人忽略!
前言有一些小伙伴觉得 MyBatis 只有方法中存在多个参数的时候,才需要添加 @Param 注解,其实这个理解是不准确的。即使 MyBatis 方法只有一个参数,也可能会用到 @Param 注解。但是,在你总结出规律之前,你可能会觉得莫名其妙,有的时候一个参数明明不用添加 @Param 注解,有的时候,却需要添加,不添加会报错。整理了100+个Java项目视频+源码+笔记有的人会觉得这是 MyBatis 各个版本差异的锅,不可否认,MyBatis 发展很快,不同版本之间的差异还挺明显的,不过这个加不原创 2020-12-24 15:38:24 · 208 阅读 · 0 评论 -
掌握MyBatis插件原理轻松写出自己的PageHelper分页插件
前言提到插件,相信大家都知道,插件的存在主要是用来改变或者增强原有的功能,MyBatis中也一样。然而如果我们对MyBatis的工作原理不是很清楚的话,最好不要轻易使用插件,否则的话如果因为使用插件导致了底层工作逻辑被改变,很可能会出现很多意料之外的问题。。整理了100+个Java项目视频+源码+笔记本文主要会介绍MyBatis插件的使用及其实现原理,相信读完本文,我们也可以写出自己的PageHelper分页插件了。MyBatis中插件是如何实现的在MyBatis中插件式通过拦截器来实现的,那么既原创 2020-12-24 14:08:31 · 187 阅读 · 0 评论 -
为什么 ConcurrentHashMap 的读操作不需要加锁?
前言我们知道,ConcurrentHashmap(1.8)这个并发集合框架是线程安全的,当你看到源码的get操作时,会发现get操作全程是没有加任何锁的,这也是这篇博文讨论的问题——为什么它不需要加锁呢?为什么 ConcurrentHashMap 的读操作不需要加锁?ConcurrentHashMap的简介“我想有基础的同学知道在jdk1.7中是采用Segment + HashEntry + ReentrantLock的方式进行实现的,而1.8中放弃了Segment臃肿的设计,取而代之的是采用Nod原创 2020-12-21 14:50:21 · 176 阅读 · 0 评论 -
扩招1W人,字节跳动内部公开12月份Java岗71道面试题,厉害了!
前言近日,字节跳动官宣扩招信息,在年底前再招满10000人!这其中技术岗的需求占比非常高。不少人对字节跳动技术岗的体系结构和技术要求设置不太清楚,想去面试心里没底,下面简单介绍一下字节跳动技术岗要求体系,并给大家分享一份最新入职字节跳动的同事总结出的完整面试题!字节跳动的职级研发序列一共 10 级:不同序列间月薪base差异较大,技术base整体偏高。比如2-1月薪会在20k+,2-2的package会在60w-100w左右(算上期权,大概会占30%左右)。T2-2级别的薪资约.原创 2020-12-17 17:22:11 · 216 阅读 · 0 评论 -
外包Java后端开发5年,字节跳动2面美团2面都凉凉, 2021还有没有机会了?
前言对于Java开发岗来说,到底该如何准备技术面呢?其实,除了表达能力和面试技巧外,无非就从这几个方面进行准备:源码阅读、JVM、高并发,分布式、集群、中间件,微服务架构等。下面是最新的字节跳动和美团的Java面试题,希望对大家面试有帮助!字节跳动一面:1.看过Spring的源码吗,开局暴击。2.Class.forName()和ClassLoader.loaderClass()有什么区别,开局暴击*2.。3.ConcurrentHashMap的原理,为什么是线程安全的,.原创 2020-12-17 16:00:45 · 640 阅读 · 0 评论 -
2020年最高频的MyBatis面试题总结!我只会3道!(含答案解析)
前言MyBatis是一个优秀的持久层ORM框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。Mybatis通过xml或注解的方式将要执行的statement配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。关于MyBati原创 2020-12-17 15:38:24 · 748 阅读 · 0 评论 -
2020年面试官最喜欢问的72道Java并发编程面试题,也不过如此!(含答案解析)
Java 并发编程1、在 java 中守护线程和本地线程区别?2、线程与进程的区别?3、什么是多线程中的上下文切换?4、死锁与活锁的区别,死锁与饥饿的区别?5、Java 中用到的线程调度算法是什么?6、什么是线程组,为什么在 Java 中不推荐使用?7、为什么使用 Executor 框架?8、在 Java 中 Executor 和 Executors 的区别?9、如何在 Windows 和 Linux 上查找哪个线程使用的 CPU 时间最长?10、什么是原子操作?在原创 2020-12-17 15:27:05 · 690 阅读 · 0 评论 -
2020年Redis面试都问了什么?这40道面试题够你喝一壶了!(含答案解析)
Redis 面试题1、什么是 Redis?.2、Redis 的数据类型?3、使用 Redis 有哪些好处?4、Redis 相比 Memcached 有哪些优势?5、Memcache 与 Redis 的区别都有哪些?6、Redis 是单进程单线程的?7、一个字符串类型的值能存储最大容量是多少?8、Redis 的持久化机制是什么?各自的优缺点?9、Redis 常见性能问题和解决方案:10、redis 过期键的删除策略?11、Redis 的回收策略(淘汰策略)?12原创 2020-12-17 15:15:15 · 454 阅读 · 0 评论 -
2020年Spring Boot面试都问了什么?(含答案解析)
Spring Boot 面试题1、什么是 Spring Boot?2、Spring Boot 有哪些优点?3、什么是 JavaConfig?4、如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?5、Spring Boot 中的监视器是什么?6、如何在 Spring Boot 中禁用 Actuator 端点安全性?7、如何在自定义端口上运行 Spring Boot 应用程序?8、什么是 YAML?9、如何实现 Spring Boot 应用程序的安全性?原创 2020-12-17 15:03:46 · 689 阅读 · 2 评论 -
Spring中BeanFactory与FactoryBean到底有什么区别?
一、BeanFactoryBeanFactory是一个接口,它是Spring中工厂的顶层规范,是SpringIoc容器的核心接口,它定义了getBean()、containsBean()等管理Bean的通用方法。Spring的容器都是它的具体实现如:DefaultListableBeanFactoryXmlBeanFactoryApplicationContext这些实现类又从不同的维度分别有不同的扩展。1.1、源码public interface BeanFactory { //对Fa原创 2020-12-14 13:58:56 · 658 阅读 · 0 评论 -
肝了三周时间,把Spring核心知识点做了一个思维导图,大功告成!
前言如今做Java尤其是web几乎是避免不了和Spring打交道了,但是Spring是这样的大而全,新鲜名词不断产生,学起来给人一种凌乱的感觉,在这里总结一下,理顺头绪。关于spring的知识点总结了一个思维导图,分享给大家Spring 概述Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的(替代更加重量级的企业级Java技术, 尤其是EJB),它完成了大量开发中的通用步骤,留给开发者的仅仅是与特定应用相关的部分,从而大大提高了企业应用的开发效率。Sp..原创 2020-12-12 15:55:07 · 2508 阅读 · 1 评论 -
2020年度总结:面试7家公司,拿到4个offer,把遇到的面试题做了一个总结!
Spring 面试题1、一般问题1.1、不同版本的 spring Framework 有哪些主要功能?1.2、什么是 spring Framework?1.3、列举 spring Framework 的优点。1.4、spring Framework 有哪些不同的功能?1.5、spring Framework 中有多少个模块,它们分别是什么?1.6、什么是 spring 配置文件?....1.7、spring 应用程序有哪些不同组件?1.8、使用 springg 有哪些方式原创 2020-12-12 14:44:31 · 242 阅读 · 0 评论 -
外包开发5年,阿里、腾讯、头条、京东的面试全部凉凉,最后拿到美团offer!
前言Java开发五年多.投递阿里、腾讯、头条、美团、京东等各互联网公司的高级Java岗位,最终得到了美团的面试机会,并成功拿下美团高级Java岗的offer。美团Java岗四面,前三面都是技术面,第四面是HR面,下面是面试题!美团Java岗一面(技术,电话面,约40分钟) 自我介绍。 项目介绍。 了解过redis源码及redis集群么? 分布式下redis如何保证线程安全? Hashmap的原理,源码? Hashmap增删的情况后端数据结构原创 2020-12-12 14:27:15 · 487 阅读 · 0 评论 -
凭借这份pdf三个月拿到饿了么P6的offer,今年真的太难了!
前言最近一位年前裸辞的朋友来找我诉苦,说因为疫情原因现在都在家吃老本。本想着年后就来找工作的,但是现在这个情况也不好找,而且很多公司也随着这次疫情面临着资金紧缺导致裁员严重的甚至倒闭,导致很多人失业找不到工作,就更加竞争压力大了朋友说自己实力不过关,很多面试题都答不上,问我有没有之前的面试总结,于是我给了他这份(核心知识点)还有一些面试题总结。现在他拿到了offer,我觉着这个文档对大家应该也有帮助,现在分享给大家!这些资料的内容都是面试时面试官必问的知识点,篇章包括了很多知识点,其中包括了有基原创 2020-12-12 14:24:25 · 900 阅读 · 0 评论 -
很多人说MyBatis重不重要?字节跳动内部的这份MyBatis文档是真香!
前言很多人说 mybatis重不重要?这里再说下,互联网公司基本都是用mybatis做为持久层框架的,所以mybatis是一定要学的。程序员80%时间都在CRUD,对了mybatis就是干这个的什么是 MyBatis ?MyBatis是一个实现了JPA规范的用来连接数据库并对其进行增删改查操作的开源框架 (就和传统的JDBC一样,就是个连接数据库的东西),其实,它底层就是一个JDBC封装的组件。MyBatis的前身是Ibatis,Ibatis创建与2002年最初为Apache下面的一个开原创 2020-12-03 12:48:32 · 366 阅读 · 0 评论 -
不会吧!Spring用了这么久,IOC的这4个特性竟然还有人不知道!
1. lazy-Init延迟加载Bean对象的延迟加载(延迟创建)ApplicationContext 容器的默认⾏为是在启动服务器时将所有 singleton bean 提前进⾏实例化。提前实例化意味着作为初始化过程的⼀部分,ApplicationContext实例会创建并配置所有的singleton bean。1.1 XML方式开启延迟加载:lazy-init="" 配置bean对象的延迟加载 ,true或者false false就是立即加载<bean id="lazyResult" c原创 2020-12-01 17:08:40 · 216 阅读 · 0 评论 -
还搞不懂Spring AOP原理,这篇你一点要看看!
前言为什么会有面向切面编程(AOP)?我们知道Java是一个面向对象(OOP)的语言,但它有一些弊端,比如当我们需要为多个不具有继承关系的对象引入一个公共行为。例如日志,权限验证,事务等功能时,只能在在每个对象里引用公共行为,这样做不便于维护,而且有大量重复代码,AOP的出现弥补了OOP的这点不足。为了阐述清楚Spring AOP,我们从将以下方面进行讨论: 代理模式。 静态代理原理及实践。 动态代理原理及实践。 Spring AOP原理及实战。 代理模式原创 2020-11-23 14:46:34 · 239 阅读 · 0 评论 -
重新看一下Redis缓存穿透、缓存击穿和缓存雪崩
前言在Redis缓存中有三个必须要知道概念:缓存穿透、缓存击穿和缓存雪崩。缓存穿透那什么是缓存穿透,它就是指当用户在查询一条数据的时候,而此时数据库和缓存却没有关于这条数据的任何记录,而这条数据在缓存中没找到就会向数据库请求获取数据。它拿不到数据时,是会一直查询数据库,这样会对数据库的访问造成很大的压力。如:用户查询一个 id = -1 的商品信息,一般数据库 id 值都是从 1 开始自增,很明显这条信息是不在数据库中,当没有信息返回时,会一直向数据库查询,给当前数据库的造成很大的访问压力。原创 2020-11-22 14:42:56 · 127 阅读 · 0 评论