自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 jdk8,Java开发者该学习哪些东西提高竞争力

通过averagingInt()进行平均值获取 public class CollectorsDemo { public static void main(String[] args) { List<Student> studentList = new ArrayList<>(); studentList.add(new Student("张三", 23)); studentList.add(new Student(

2021-08-11 18:29:35 110

原创 JDK8 Stream 数据流效率分析,Java开发你需要了解的那些事

此外还有一系列特化流,如 IntStream,LongStream,DoubleStream等 ),Java 8 引入的的Stream主要用于取代部分Collection的操作,每个流代表一个值序列,流提供一系列常用的聚集操作,可以便捷的在它上面进行各种运算。 集合类库也提供了便捷的方式使我们可以以操作流的方式使用集合、数组以及其它数据结构; 作为阅读福利,小编也整理了一些Java学习笔记(包含面试真题+脑图+手写pdf等)现在免费分享给阅读到本篇文章的Java程序员朋友们,需要的自行领取~ 最全学习笔记大

2021-08-11 18:28:21 236

原创 Java,看完我工资从12K变成了20K

三、ASCII可显示字符 二进制十进制十六进制图形0010 00003220(空格)(␠)0010 00013321!0010 00103422"0010 00113523#0010 01003624$0010 01013725 %0010 01103826&0010 01113927'0010 10004028(0010 10014129)0010 1010422A*0010&

2021-08-11 18:27:15 105

原创 java,看完你还觉得算法不重要

⑥UDP实现发送端: 基本流程  a.定义我是发送端 b.准备数据 c.打包 d.发送 e.关闭 (2)①UDP实现接收端: 基本流程 a.定义我是接收端 b.准备字节数组,打包 c.接收数据 d.处理数据 e.关闭 ②注意;  统一协议下端口号不能冲突 3**、tcp** (1)客户端  Socket ①Socket(String host, int port) 创建流套接字并将其连接到指定主机上的指定端口号。 a.InputStream getInputStream()

2021-08-11 18:26:08 103

原创 Java面试题:如何判断一个字符串中某个字符出现的次数,金蝶Java笔试题及答案

2. 如何判断一个字符串中某个字符出现的次数? 在直接问这个问题之前,面试官先问了我下面这个问题: 请说一下String常用的方法有哪些? 该问题其实是考察Java基础,毕竟String类在平时的开发中使用非常广泛,我当时主要说了以下方法: 1. length 2. equals 3. trim 4. substring 5. concat 6. indexOf 7. lastIndexOf 8. replace 9. split 10. toLowerCase 11. toUpp

2021-08-11 18:24:57 442

原创 JAVA面试题进阶,面试分享一次失败的经历

Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法 详细描述一下 Elasticsearch 更新和删除文档的过程。 Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法? (文末附面试答案) Redis面试题 随着应用研发技术的不断成熟,Redis 缓存技术已经成为后台研发同学必备的能力之一。在很多公司面试的过程中,都必不可少地考察 Redis 知识点的掌握。 使用 Redis 有哪些好处? Redis 是单进程单线程的? Red..

2021-08-11 18:23:43 163

原创 Java面试题篇·(大神分享总结,大V推荐

可以看出,调用next()方法获取下一个元素时,第一行代码就是调用了checkForComodification();,而该方法的核心逻辑就是比较modCount和expectedModCount这2个变量的值。 在上面的例子中,刚开始modCount和expectedModCount的值都为3,所以第1次获取元素"博客园"是没问题的,但是当执行完下面这行代码时: platformList.remove(platform); modCount的值就被修改成了4。 所以在第2次获取元素时,modCou.

2021-08-11 18:21:22 80

原创 Java程序员跳槽,Java开发新手入门教程

程序员小李: 中间件是处于操作系统和应用程序之间软件,使用时往往是一组中间件集成在一起,构成一个平台(开发平台+运行平台),在这组中间件中必须要有一个通信中间件,即中间件=平台+通信。该定义也限定了只有用于分布式系统中才能称为中间件。 主要分类:远程过程调用、面向消息的中间件、对象请求代理、事物处理监控。 面试官:那如果要你自己设计一个中间件,你会怎么设计呢? **程序员小李:**我会从以下几个方面考虑: 1、远程过程调用 **2、面向消息:**利用高效的消息传递机制进行平台无关的数据交流,并给予数据

2021-08-10 14:39:16 93

原创 Java程序员跳槽(1),字节跳动最新开源

碰巧有一家互联网公司在招人,Java开发工程师,薪资范围18K~25K。 程序员小李一看,哟,也不算很低啊!于是投了简历,等着面试邀请。 不出两天,面试邀约就来…程序员小李如期赴约,经过了前面两场面试后,就有了如下的情形… 面试官:说一下sleep和wait的区别? **程序员小李:**哦,这个简单 1. 对于 sleep()方法,我们首先要知道该方法是属于 Thread 类中的。而 wait()方法,则是属于Object 类中的。 2. sleep()方法导致了程序暂停执行指定的时间,让出 cpu 该

2021-08-10 14:38:08 87

原创 Java知识总结,面试官问Spring,一个问题就趴下了

===================== Spring 是个Java企业级应用的开源开发框架,主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用,目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。 主要有以下优点: 提供了 IOC 技术,容器会帮你管理依赖的对象,从而不需要自己创建和管理依赖对象了,更轻松的实现了程序的解耦。 提供了事务支持,使得事务操作变得更加方便。 提供了面向切片编程,这样可以更方便的处理某一类的问题。 更方便的框架集

2021-08-10 14:36:57 60

原创 Java环境搭建,首发Java程序员人手必备的进阶知识体系

然后更改安装路径,点击更改(c),更改到好记得路径,把路径记下来或者复制到某个地方 配置环境变量 我的电脑——右键——属性——选择更改高级设置 选择环境变量 在系统变量中选择新建 在变量名中输入JAVA_HOME(这里要大写,全英才能打出这个_下划线),然后变量值是你刚刚更改的安装路径复制进去,确定就可以了 在系统变量中找到path,双击进去 然后新建两个变量,照着图中圈出来的两个变量写就行了 然后一直点确定就完成了 检测是否安装成功 打开cmd窗口,输入j..

2021-08-10 14:35:42 78

原创 Java注解全面总结,netty架构原理图

该注解是表示我们在运行或者编译时的一个保留状态,指示要保留带注释类型的注释的时间长度。 SOURCE:在源文件中有效(即源文件保留),在编译时将其抛弃掉。 CLASS:在class文件中有效(即class保留),不会添加载到JVM中 RUNTIME:在运行时有效(即运行时保留),这个和我们常用的加载是一致的,运行时会加载到JVM中,一般通过反射可获取到,一般这个是我们常用的。 @Retention(RetentionPolicy.RUNTIME)//在使用该注解其,只能选择其中一种属性,.

2021-08-10 14:33:22 102

原创 Java面试题总结(附答案,记录一次腾讯Java岗面试笔试总结

18、什么是反射? 19、什么是 java 序列化?什么情况下需要序列化? 20、动态代理是什么?有哪些应用? 21、怎么实现动态代理? 22、为什么要使用克隆? 23、如何实现对象克隆? 24、深拷贝和浅拷贝区别是什么? 25、throw 和 throws 的区别? 26、final、finally、finalize 有什么区别? 27、try-catch-finally 中哪个部分可以省略? 28、try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗

2021-08-09 15:43:21 222

原创 Java面试题总结(基础面试题完结版,2020-10-13

同理:Collections包也提供了对list和set集合的方法。 Collections.unmodifiableList(List) Collections.unmodifiableSet(Set) 五、队列和栈是什么?有什么区别? 1、队列先进先出,栈先进后出。 2、遍历数据速度不同。 栈只能从头部取数据 也就最先放入的需要遍历整个栈最后才能取出来,而且在遍历数据的时候还得为数据开辟临时空间,保持数据在遍历前的一致性; 队列则不同,他基于地址指针进行遍历,而且可以从头或尾部开始遍历,但不能同时遍

2021-08-09 15:42:12 85

原创 Java面试题总结(乱序版,来自大厂面试官的MySQL灵魂十连问

Synchronized是java语言的关键字,是原生语法层面的互斥,需要JVM实现;ReentrantLock 是JDK1.5之后提供的API层面的互斥锁,需要lock和unlock()方法配合try/finally代码块来完成。 Synchronized使用较ReentrantLock 便利一些; 锁的细粒度和灵活性:ReentrantLock强于Synchronized; 3、性能区别 Synchronized引入偏向锁,自旋锁之后,两者的性能差不多,在这种情况下,官方建议使用Sync..

2021-08-09 15:41:04 113

原创 Java面试题总结(乱序版(1),美团Java面试题库

二、Java 中的线程池是如何实现的 创建一个阻塞队列来容纳任务,在第一次执行任务时创建足够多的线程,并处理任务,之后每个工作线程自动从任务队列中获取线程,直到任务队列中任务为0为止,此时线程处于等待状态,一旦有工作任务加入任务队列中,即刻唤醒工作线程进行处理,实现线程的可复用性。 线程池一般包括四个基本组成部分: 1、线程池管理器 用于创建线程池,销毁线程池,添加新任务。 2、工作线程 线程池中线程,可循环执行任务,在没有任务时处于等待状态。 3、任务队列 用于存放没有处理的任务,一种缓存机制。 4、任

2021-08-09 15:39:53 89

原创 Java面试题及答案2019版(下,springmvc源码分析图

public final class MyUtil { private MyUtil() { throw new AssertionError(); } public static void fileCopy(String source, String target) throws IOException { try (Input

2021-08-09 15:37:27 104

原创 Java面试经验(1),成为阿里P7移动架构师到底有多难

根据key通过哈希算法 与 (数组长度减1) 进行与运算 得出数组下标。 如果数组下标的位置元素为空,则将key和value封装为Entry对象(JDK1.7是Entry对象,1.8是Node对象)并且存放到该位置上。【HashMap 在1.7是数组+链表实现的;1.8是数组+链表+红黑树】吧 如果不为空,就需要分情况了: 如果是JDK1.7 则先判断是否需要扩容,如果不需要扩容,就生成Entry对象,使用头插法 添加到当前链表中。 如果是JDK1.8,则先判断当前位置上的Node类型,..

2021-08-09 15:36:16 79

原创 《JVM系列,Java实战视频下载

因为CPU需要不停的切换各个线程,这时候切换回来以后,就得知道接着从哪开始继续执行。 JVM的字节码解释器就需要通过改变PC寄存器的值来明确下一条应该执行什么样的字节码指令。 PC寄存器为什么被设定为私有的? 由于CPU时间片轮限制,众多线程在并发执行过程中,任何一个确定的时刻,一个处理器或者多核处理器中的一个内核,只会执行某个线程中的一条指令,CPU会不停地进行任务切换,这样必然导致经常中断或恢复。 为了能够准确地记录各个线程正在执行的当前字节码指令地址,最好的办法自然是为每一个线程都分配一个..

2021-08-08 19:14:39 129

原创 《JVM系列(2),尚硅谷springboot百度云

public static void main(String[] args) { System.out.println(ClassInitTest.num);//2 System.out.println(ClassInitTest.number);//10 } } 运行结果:分别测试静态变量在静态代码块之前、之后执行 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210603085254237.png?x-oss-process=i

2021-08-08 19:13:25 185

原创 “项目经理,程序员的中年危机

四、增量模型 五、螺旋模型 六、Rational统一模型 七、微软过程模型 Hello,你好呀!我是灰小猿,一个超会写bug的程序猿! 今天来和大家分享一下在进行系统的软件开发的过程中常用的七大软件过程模型,熟悉软件开发常用的几种模型方法。助力每一个程序员小伙伴都可以尽早成为项目经理哟! 一.瀑布模型 ========== 瀑布模型严格遵循软件生命周期各阶段的固定顺序:计划、分析、设计、编程、训试和维护,上一阶段完成后才能进入到下一阶段, 整个模型就像一个飞流直下的瀑布。 瀑布模型的过程如下图

2021-08-08 19:12:17 279

原创 “金三银四,最新Java高级面试题汇

这里都是以图片形式展示介绍,如要下载原文件以及更多的性能调优笔记(MySQL+Tomcat+JVM)可以 直接**【点击 “性能调优”】**免费下载!! ###1.2 关于MySQL,面试官会问哪些问题? 第一个:MySQ性能优化最佳实践21个(有具体的解释)你知道哪些? 为查询缓存优化你的查询 EXPLAIN你的SELECT查询 当只要一行数据时使用LIMIT 1 为搜索字段建索引 在Join表的时候使用相当类型的例,并将其索引 千万不要 ORDER BY RAND() .

2021-08-08 19:11:11 161

原创 “百思不得姐,2021最新Java面试笔试题目分享

(2)写请求2更新数据库,将 age 字段更新为20; (3)写请求2更新缓存,缓存 age 设置为20; (4)写请求1更新缓存,缓存 age 设置为18; 执行完预期结果是数据库 age 为20,缓存 age 为20,结果缓存 age为18,这就造成了缓存数据不是最新的,出现了脏数据。 踩坑二:先删缓存,再更新数据库 如果写请求的处理流程是先删缓存再更新数据库,在一个读请求和一个写请求并发场景下可能会出现数据不一致情况。 如上图的执行过程: (1)写请求删除缓存数据; (2)读请求查询缓存未击中(Hi

2021-08-08 19:10:02 74

原创 “并发,让你的String性能提升10倍的几个秘诀

如果仔细看看上面执行流程就会发现步骤2会带来两次连续的回调,这个连续回调也引发了本文的问题。 在测试兑换失败场景时我这边要把扣的积分返还给用户,操作伪代码如下: ServiceImpl: @Transactional public void dealOrderExchangeNotice(....){ RedisLock lock = null; try{ lock=new RedisLock(bizId); if (lock.lock()) { //查询订单 Int

2021-08-08 19:08:58 197

原创 treeMap按值排序,Java后端校招面试题

treeMap.put("ls",18); treeMap.put("ww", 22); String key = treeMap.firstEntry().getKey(); String key2 = treeMap.lastEntry().getKey(); System.out.println(key); System.out.println(key2); } ### 2、treeMap按值排序 private static void test02(){ TreeMap&l

2021-08-08 19:07:46 168

原创 Tomcat是如何运行的,Java高级工程师面试答案大全

整体架构 ======================================================================= 我们想要了解一个框架,首先要了解它是干什么的,Tomcat我们都知道,是用于处理连接过来的Socket请求的。那么Tomcat就会有两个 对外处理连接,将收到的字节流转化为自己想要的Request和Response对象 对内处理Servlet,将对应的Request请求分发到相应的Servlet中 那么我们整体的骨架就出来了,Tomcat其实就

2021-08-08 19:06:39 97

原创 Java程序员面试笔试宝典下载,【Spring Boot 1

3、配置文件值注入 --------- ### (1)yml配置文件 person: lastName: hello age: 18 boss: false birth: 2017/12/12 maps: {k1: v1,k2: 12} lists: - lisi - zhaoliu dog: name: 小狗 age: 12 ### (2)javaBean: /** 将配置文件中配置的每一个属性的值,映射到这个组件中 @Co...

2021-08-07 06:19:23 176

原创 Java程序员面试笔记,Java性能优化的35个细节(珍藏版

1、尽量使用final修饰符 带有final修饰符的类是不可派生的,在Java核心API中,有很多应用final的例子,例如Java.lang.String,整个类都是final的。为类指定final修饰符可以让类不可继承,为方法指定final修饰符可以让方法不可以被重写。如果制定了一个类为final,则该类所有的方法都是final的。Java编译器会寻找机会内联所有的final方法,内联对于提升Java运行效率作用巨大,能使性能平均提升50%。 2、尽量重用对象 特别是String对象的使用,出现字符串连

2021-08-07 06:18:04 236

原创 Java程序员面试笔记pdf,JqGrid完整例子

<link type="text/css" rel="stylesheet" href="js/JqGrid/css/jquery-ui.min.css"> <span>定义>类型</span> <div class="frame_border"> <div class="titleColor"> <span>已定义模拟量测点信息</span> <div

2021-08-07 06:16:46 234

原创 Java程序员面试常问的问题,原来SqlSession只是个甩手掌柜

PS:doFlushStatements方法在BaseExecutor中的commit(),rollback(),close()方法中会被调用(即:事务提交,事务回滚,事务关闭三个方法)。 BatchExecutor BatchExecutor从名字上也可以看出来,这是一个支持批量操作的执行器。 如果说大家都用过jdbc就知道,jdbc是支持批量操作的,有一个executeBatch()方法用来执行批量操作,但是有一个前提就是执行批量操作的sql除了参数不同,其他都应该是相同的(关于这一点,下面我们会举例.

2021-08-07 06:15:22 298

原创 Java程序员面试书籍,Java在2018年的形势

Java9和Java10的采用率依然非常低,分别都只有低于5%的占比。 作为参考,在2017年采用占比为24.4%的Java7在现在也只占了10.6%,可想而知,整个生态差不多都升级为Java8了。 2. Spring的采用率 现在让我们来看看spring的数据: 在这里可以看出,Spring5的推进步伐相当明显,在整个Spring体系占比中,最新版本的Spring5占据了24%,比上一年增长了差不多2.2%。 而且理所当然的是,在今年依然有不少人是使用非Spring的JavaEE框架进行开发,所以得出,

2021-08-07 06:14:07 190

原创 Java程序员进阶路线,【Spring注解驱动开发(2)

其实,我们之前使用过XxxAware接口,例如,我们之前创建的Employee类,就实现了ApplicationContextAware接口,Employee类的源码如下所示。 package io.mykit.spring.plugins.register.bean; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.sprin

2021-08-07 06:12:46 160

原创 Java程序员架构之路该如何继续学习,近5年常考Java面试题及答案整理(二

class StackOverflowErrorTest { public static void main(String[] args) { main(null); } } 提示:用递归编写程序时一定要牢记两点:1. 递归公式;2. 收敛条件(什么时候就不再继续递归)。 46、try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,什么时候被执行,在return前还是后? 答:会执行,在方法返回前执行。 .

2021-08-07 06:11:25 186

原创 Java程序员架构之路该如何继续学习,【备战秋招冲击大厂

Redis的字符串也会遵守C语言的字符串的实现规则,即最后一个字符为空字符。然而这个空字符不会被计算在len里头。 Redis动态扩展步骤: 计算出大小是否足够 开辟空间至满足所需大小 开辟与已使用大小len相同长度的空闲free空间(如果len < 1M),开辟1M长度的空闲free空间(如果len >= 1M) Redis字符串的性能优势 快速获取字符串长度:直接返回len 避免缓冲区溢出:每次追加字符串时都会检查空间是否够用 降低空间分配次数提升内存使用

2021-08-07 06:10:11 186

原创 Java程序员必看,用JavaScript实现图片上传并预览

width: 100, }, { name: 'operate', index: 'operate', width: 200, search: false, formatter : function(cellvalue,options,rowObject){ var id = rowObject.mark...

2021-08-07 06:08:53 388

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除