- 博客(53)
- 收藏
- 关注
原创 【SpringMVC笔记,大厂Java高级面试题汇总解答
=================================================================================== SpringMVC 的处理器拦截器类似于 Servlet 开发中的过滤器 Filter,用于对处理器进行 预处理 和 后处理。开发者可以自己定义一些拦截器来实现特定的功能。 过滤器与拦截器的区别:拦截器是 AOP 思想的具体应用。 过滤器(filter): servlet 规范中的一部分,任何 java web 工程都可以使用; 在
2021-08-10 21:00:01
271
原创 【SpringMVC 笔记,Java经典面试题及答案
用户发出请求,DispatcherServlet 接收请求并拦截请求。 我们假设请求的 URL 为 : http://localhost:8080/sm/hello 如上 URL 拆分成三部分: http://localhost:8080 表示服务器域名 sm 表示部署在服务器上的 web 站点 hello 表示控制器 通过分析,如上URL表示为: 请求位于服务器 localhost:8080 上的 sm 站点的 hello控制器,用户发出请求。 HandlerMapping 为处理
2021-08-10 20:58:51
237
原创 【SpringMVC 笔记(1),字节跳动面试分享
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.6.RELEASE</version> </dependency> <de.
2021-08-10 20:56:34
232
原创 【SpringBoot (1),一份非常适合收藏的Java进阶面试题
private Date bir; @Value("${strs}") private String[] strs; @Value("${list}") private List<String> list; @Value("#{${maps}}") // map注入取值有点特殊 private Map<String, String> maps; @GetMapping("hello") public String hello() { // p
2021-08-10 20:54:26
179
原创 【Spring5,搞定kafka看这一篇就够了
如果⼀个对象既实现 InitializingBean 同时又提供的 普通的初始化方法,执行顺序? 答:先执行 InitializingBean,再执行 普通初始化方法。 注入⼀定发生在初始化操作的前面。 初始化操作到底是什么? 资源的初始化:数据库、IO、网络、… 销毁阶段 - DisposableBean、destroy-method Spring 销毁对象前,会调用对象的销毁方法,完成销毁操作。 Spring 什么时候销毁所创建的对象?ctx.close(); 销毁方法提供:程序员根据..
2021-08-10 20:53:11
250
原创 中软国际Java面试题和答案,Java开发环境搭建超全详解
接受许可协议,下一步 选择安装路径,选择增强版(也可以不选),下一步 下一步 下一步 安装 安装中… 安装结束,输入许可证 输入许可证 重启电脑,安装完毕。 (三) CentOS Linux镜像官网:https://www.centos.org/download/ 从官网,可以看出提供了三种类型的CentOS镜像: 1.DVD ISO:常用版本,包含大部分功能,大小为4.2G左右; 2.Everything ISO:功能最全版本,大小为8.8G左右; 3.Minimal ISO:压缩版
2021-08-07 13:32:27
549
原创 中级Java工程师面试题,Android热修复方案盘点
腾讯 QZone Muitidex方案 正文 热修复方案按照是否必须重启 分为两类: 重启生效 / 即时生效。按照 实现方式可以分为3类: java层的实现 / native层的实现 / java native混合实现 阿里AndFix 方案(已弃用) AndFix 是 无需重启 的 native层 的实现. 但是,AndFix目前已经3年多没维护更新。因为阿里已经有了新的替代方案,不再需要维护。另外,这种纯native的实现方式,兼容性十..
2021-08-07 13:29:47
360
2
原创 一起看看这些大厂面试真题查漏补缺吧,Kafka是如何实现高性能的
在存储机制上,使用了Log Structured Merge Trees(LSM) 。 注:Log Structured Merge Trees(LSM),谷歌 “BigTable” 的论文,中提出,LSM是当前被用在许多产品的文件结构策略:HBase, Cassandra, LevelDB, SQLite,Kafka。LSM被设计来提供比传统的B+树或者ISAM更好的写操作吞吐量,通过消去随机的本地更新操作来达到这个目标。这个问题的本质还是磁盘随机操作慢,顺序读写快。这二种操作存在巨大的差距,无论是磁盘还
2021-08-07 13:27:02
268
原创 一起看看这些大厂面试真题查漏补缺吧,Java面试题总结(附答案
3、Java 中什么叫单例设计模式?请用 Java 写出线程安全的单例模式 4、在 Java 中,什么叫观察者设计模式(observer design pattern)? 5、使用工厂模式最主要的好处是什么?在哪里使用? 6、举一个用 Java 实现的装饰模式(decorator design pattern)?它是作用于对象层次还是类层次? 7、在 Java 中,为什么不允许从静态方法中访问非静态变量? 8、设计一个 ATM 机,请说出你的设计思路? 9、在 Java 中,什么时候用重载,什么时候用重写?
2021-08-07 13:25:41
251
原创 一个星期+4轮面试终拿下offer,Java基础知识面试题
JRE(Java Runtime Environment),Java运行环境 JDK中包含JRE,JDK中有一个名为jre的目录,里面包含两个文件夹bin和lib,bin就是JVM,lib就是JVM工作所需要的类库。 二、== 和 equals 的区别是什么? 对于基本类型,==比较的是值; 对于引用类型,==比较的是地址; equals不能用于基本类型的比较; 如果没有重写equals,equals就相当于==; 如果重写了equals方法,equals比较的是对象的内容; 三、
2021-08-07 13:24:21
196
原创 【Spring Boot 15】启动类原理解析
而基于JavaConfig的配置形式是这样的: @Configuration public class MockConfiguration{ @Bean public MockService mockService(){ return new MockServiceImpl(); } } 任何一个标注了@Bean的方法,其返回值将作为一个bean定义注册到Spring的IOC容器,方法名将默认成该bean定义的id。 3、表达依赖注入关系层面 为了
2021-08-07 13:23:05
225
原创 让你的String性能提升10倍的几个秘诀,【计算机网络 15
package com.tcpip; import java.net.DatagramPacket; import java.net.DatagramSocket; public class UdpServerTest { public static void main(String[] args) throws Exception { //1、开放端口 DatagramSocket socket = new DatagramSocket(9090);.
2021-08-06 15:46:18
119
原创 被面试官问的Java问题难倒了,2021阿里Java面试题目大汇总
25.写一个JAVA死锁的列子? 26.如何解决死锁? 27.GC回收算法,及实现原理? 28.HashMap数据存储结构? key重复了怎么办? 是如何解决的? 29.Spring AOP的实现原理,底层用什么实现的? 我把这些都整理成了一份文档,如下 阿里技术二面(技术原理、个人擅长的项目) ======================================================================================= 重点是面试技术原理,以及对技术的热情
2021-08-06 15:45:11
383
原创 腾讯T2大牛手把手教你,非科班的B站惊险之旅
select的缺点 select返回的是含有整个句柄的数组,应用程序需要遍历整个数组才能发现哪些句柄发生了事件 select的触发方式是水平触发,应用程序如果没有完成对一个已经就绪的文件描述符进行IO操作,那么之后每次select调用还是会将这些文件描述符通知进程 内核 / 用户空间内存拷贝问题,select每次都会改变内核中的句柄数据结构集,因而每次select调用时都需要从用户空间向内核空间复制所有的句柄数据结构,产生巨大的开销 单个进程能够监视的文件描述符的数量存在最大限制,通常是10
2021-08-06 15:42:50
230
原创 腾讯T2亲自讲解,【计算机网络 11
package servlet.websocket; import java.io.IOException; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import javax.websocket.OnClose; import javax.websocket.OnError; import javax.websocket.OnMessage; import javax.websocket.OnOpen; imp
2021-08-06 15:41:45
151
原创 腾讯Java社招面试,Dubbo如何支持本地调用?InJvm方式解析
阿里二面凉经:设计模式+缓存+Spring+虚拟机+MySQL+中间件+并发等难题,全部迎刃而解 阿里巴巴字节跳动那些大厂必问的HTTP该怎么学?我建议你看看这篇文章! 蚂蚁、字节、PDD社招面经Java岗(分布式+线程安全+MySQL+CAS) Dubbo是一个远程调用的框架,对于一个服务提供者,暴露了一个接口供外部消费者调用, 那么对于提供者自己是否可以调用这个接口,需要什么特殊处理吗? 这篇文章就分享下Dubbo关于本地调用的实现机制,以及如何开启和关闭本地调用。 injvm支持本地调用 使用 D.
2021-08-06 15:40:39
220
原创 腾讯Java社招面试经验,要懂redis,首先得看懂sds
s = (char*)sh+hdrlen; //因为可以看到地址的顺序是 len,alloc,flag,buf,目前s是指向buf, //那么后退1位,fp 正好指向了flag对应的地址。 fp = ((unsigned char*)s)-1; //下面就是根据 switch(type) { case SDS_TYPE_5: { *fp = type | (initlen << SDS_TYPE_BITS); break; } case .
2021-08-06 15:39:31
232
原创 腾讯Java开发面试记录,Tomcat内存释放不了
JAVA_OPTS="-server -Xms768m -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=256m -XX: NewSize=192m -XX:MaxNewSize=384m" CATALINA_OPTS="-server -Xms768m -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:NewSize=192m -XX:MaxNewSize=384m" Linux: 在/usr/local/apac
2021-08-06 15:38:18
206
原创 腾讯+华为+阿里面试真题分享,2020-08-22(1)
return salary; } public void setSalary(BigDecimal salary) { this.salary = salary; } } <?xml version="1.0" encoding="UTF-8" ? <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dt...
2021-08-06 15:37:08
152
原创 在阿里工作5年了,拼多多
6、什么是线程池?有哪几种创建方式? 7、线程池的优点? 8、CyclicBarrier 和 CountDownLatch 的区别 二面 1、介绍你的项目? 2、什么是乐观锁和悲观锁 3、sleep 方法和 wait 方法有什么区别? 4、多线程同步有哪几种方法? 5、Linux 环境下如何查找哪个线程使用 CPU 最长 6、Java 死锁以及如何避免? 7、如果你提交任务时,线程池队列已满,这时会发生什么 8、死锁的原因 携程三面:JVM+类加载+垃圾回收 一面 1. 描述一下 JVM 加载 Class
2021-08-05 15:04:37
135
原创 在阿里工作5年了,你技术这么好,总要改变点什么把
对于这个事情,我首先是很庆幸,庆幸自己当时还留下了自己阅读的心得和文字。但是转念一想,更多的是恐惧,恐惧的是,我不知道我现在头脑里面的技术知识,在几年之后,又会在哪里?唯一所幸我文笔还未辍,几年之后的文章估摸大都还在我的博客中。但是我头脑里面的东西呢?我还会记得多少呢?如果几年后这些知识注定忘记,我现在还有必要学习么? 技术焦虑 现在的技术圈子很火热,任何技术点,任何知识,只要你肯搜索,都能找到资料。但是现在技术圈确实有一个不好的地方,就是贩卖焦虑。这种贩卖焦虑的点并不在于形式,而是一种普遍的心态。特别是对
2021-08-05 15:03:30
172
原创 图文详解!老板,运维和开发又打起来了
那么虚拟机机就是下面这样的套房: 最后就是我们的容器,就是下面这样的胶囊公寓: Docker本身并不是容器,它是创建容器的工具,是应用容器引擎。Docker有两句口号: “Build, Ship and Run” “Build once,Run anywhere(搭建一次,到处能用)”。 容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。 容器之间是共享同一套操作系统资源的,由于容器是共享主操作系统的内核,因此就无法在服务器上运行与主服务器不同的操作系统,也.
2021-08-05 15:02:21
136
原创 图文详解!Java常用事件监听器与实例分析
import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.WindowConstants; public class ActionEvent extends JFrame{ JButton jButton; //定义点击按钮 public ActionEvent() { setTitle("动作事件监听器"); setSize(400,400
2021-08-05 15:01:13
750
原创 原理解析!「Java面试必看
实际上还有很多很多优秀的项目用到了 Netty,Netty 官方也做了统计,统计结果在这里:https://netty.io/wiki/related-projects.html 。 介绍一下Netty的核心组件? ????????面试官 :Netty 核心组件有哪些?分别有什么作用? ???? 我 :表面上,嘴上开始说起 Netty 的核心组件有哪些,实则,内心已经开始 mmp 了,深度怀疑这面试官是存心搞我啊! 简单介绍 Netty 最核心的一些组件(对于每一个组件这里不详细介绍)。通过下面这张图
2021-08-05 15:00:06
140
原创 原理竟然是这!当年
敲完这段话以后,我顿了下,完全停下了打字。思考了很久,我决定把准备了四五天的,各种为了讲清楚 BASE 理论的应用实例全部删掉。 因为我很想谈谈自身的一些经历。也许,那些折腾和熬人的经历能更清楚的告诉大家,为什么会有 BASE 理论这套东西出来。 一、 前些年,互联网行业里对架构师这个岗位的标准还不是很清晰。所以,很多架构师的工作往往就是一些技术被公司认可的资深工程师负责。 彼时,正巧我也是这类人员之一,故也得到了一个从零开始架设一套广告投放平台的机会。 我很喜欢钻研技术,对这种机会自然很看重。 那时候,架
2021-08-05 14:59:01
119
原创 原创Kafka学习笔记,Redis面试题及答案整理
512M 8、为什么Redis需要把所有数据放到内存中? Redis为了达到最快的读写速度将数据都读到内存中,并通过异步的方式将数据写入磁盘。 所以redis具有快速和数据持久化的特征,如果不将数据放在内存中,磁盘I/O速度为严重影响redis的性能。 在内存越来越便宜的今天,redis将会越来越受欢迎, 如果设置了最大使用的内存,则数据已有记录数达到内存限值后不能继续插入新值。 9、Redis集群方案应该怎么做?都有哪些方案? 1.codis 2.目前用的最多的集群方案,基本和twemproxy一致的效果
2021-08-05 14:57:54
413
原创 历经30天,C#位运算(1)
} else if ((i_name& 16) == 16) { ret= StaticUtil.girlIni.ReadValue(“girl”,country+"-10"); } else if ((i_name& 32) == 32) { ret= StaticUtil.girlIni.ReadValue(“girl”,country+"-20"); } return ret; } ③保留某一个数的某一位 与一个数进行&运算,此数在该位取1 例如:9&am
2021-08-05 14:57:00
194
原创 卑微打工人!漫画编程:Java如何在二叉树中进行添加
 1. `public class BinTree {` 2. `BNode theBTRootNode;` 4. `public BinTree() // constructor` 5. `{` 6. `theBTRoot
2021-08-05 14:55:47
125
原创 卑微打工人!jdk8
Collectors.counting 中内部做的调用reducing()进行数据汇总 public static <T> Collector<T, ?, Long> counting() { return reducing(0L, e -> 1L, Long::sum); } 通过maxBy()与minBy()获取最大值最小值 public class CollectorsDemo { public static void
2021-08-05 14:54:35
109
原创 全网首发!Java学习笔记(三(1)
public void mouseReleased(MouseEvent e) { //鼠标释放 x2 = e.getX(); y2 = e.getY(); System.out.println("release!"); } @Override public void mouseEntered(MouseEvent e) { //鼠标进入界面 System.out.println("In"); } @Override public .
2021-08-04 22:29:43
119
原创 全网疯传!Java利用TCP协议实现客户端与服务器通信【附通信源码
目录 TCP协议概念 ServerSocket类 服务器端程序 客户端程序 Hello!大家好哇!我是灰小猿! 上一篇博客和大家分享了在网络编程中要注意的基础知识,关于IP、TCP、UDP以及端口和套接字的一些概念,想了解的小伙伴可以看我的这篇文章“盘点那些进行网络编程必须要知道的基础知识”,那么今天大灰狼就来和大家分享一下如何使用TCP/IP进行网络程序的开发。 TCP协议概念 ======= 先来了解一下TCP协议的基本概念。 我们知道**TCP是可靠而非安全的网络协议。它可以保证数据在从一端送至另一
2021-08-04 22:28:28
399
原创 全网最全原理讲解!Python教程之正则表达式(提高篇)
| \s | 空格、制表符、换行符 | | \S | 除空格、制表符、换行符以外的任何字符 | 同时在正则表达式的使用过程中,re模块中还有另外一种读取文本匹配内容的方法:findall()方法。 该方法与我们之前所讲的group()方法不同,re模块中的group()方法只能匹配文本中的第一个符合要求的匹配对象,而findall()方法则匹配文本中所有符合要求的内容。 并且以列表的形式返回所有符合要求的匹配。对比实现效果代码如下: search()和findall()方法比较 import re
2021-08-04 22:27:03
269
原创 全球最火的程序员学习路线!B站崩了,作为微博程序员的我还在加班
6.反射用途 7.所用数据库 8.项目难点,问题 9.如何解决项目中遇到的问题 10.项目中遇到的最难解决的地方 二面 1.自我介绍 2.你这项目技术栈太老了…你对什么技术比较熟悉,或者说看过什么的源码? 答:看过Hashmap的,然后Spring的源码也看过一点(说完我就后悔了,这要是往深了问我Spring源码我不完蛋了) 3.那你说说对Spring的了解吧 答:IOC、AOP那一套 4.AOP有用过吗?怎么实现的? 答:项目里没用过,但知道有JDK实现和CGLib实现 5.这俩实现的区别? 答:接口、
2021-08-04 22:25:55
142
原创 你花了多久弄明白架构设计?Java已死,有事烧纸
与其被捉弄,倒不如逃离,逃离这个看似五光十色,实际却昏暗无比的世界。 **眼角的一滴泪水算是我留在这个世界最后的礼物。**闭上双眼,脑中思绪万千,回想起这10多年来的点点滴滴。 作为一名合格的Java程序员,我也称得上是戎马一生: 看过很多的人倒在了08年的金融海啸; 嘲笑过许多人撑不过互联网的“996”; 感叹过那个让大多数人为之颤栗的2018; 自己却始终没有逃过2020伊始的疫情爆发。 不要误会,我没有被病毒感染,身体好得很! 我万万没有想到的是,我为之付出了无数心血的企业,在优化人员的时候最先考虑的
2021-08-04 22:22:51
161
原创 字节跳动技术总监自爆:Java开发转行小学数学教师
为什么要用多线程 任何一项技术的出现都是为了解决现有问题。 之前的互联网大多是单机服务,体量小;而现在的更多是集群服务,同一时刻有多个用户同时访问服务器,那么会有很多线程并发访问。 比如在电商系统里,同一时刻比如整点抢购时,大量用户同时访问服务器,所以现在公司里开发的基本都是多线程的。 使用多线程确实提高了运行的效率,但与此同时,我们也需要特别注意数据的增删改情况,这就是线程安全问题,比如之前说过的 HashMap vs HashTable,Vector vs ArrayList。 要保证线程安全也有很多方
2021-07-30 17:28:09
523
原创 字节跳动学习笔记:Java语言程序设计第十版课后答案
第一部分 项目+自我介绍 首先上来简单做一下自我介绍? 然后让介绍简历里的项目,说下项目里的难点,技术架构。 平时开发过程中都遇到过哪些难题? 平时都这么和同事沟通? 第二部分 java基础方面 首先还是老生常谈的hashmap。hashmap的set和get的时间复杂度是多少?为什么是O(1), hashmap 在jdk1.8是线程安全的吗? 为什么是线程安全的?concureenthashmap了解吗?他是如何实现线程安全的? 说说java泛型,为什么称java泛型为伪泛
2021-07-30 17:27:22
288
原创 字节跳动学习笔记:Java数组遍历的几种方法
如何使用Spring Boot构建微服务体系 通过本文内容的学习,你将循序渐进的学习到Spring Boot微框架的设计理念和原理,并对框架重点功能和模块进行逐一详解;其次,你将会学习到如何基于Spring Boot微框架构建一套完整的微服务体系;最后总结Spring Boot相关内容,以温故知新。 文档内容分为七大模块,为了方便大家阅读,小编就以截图展示部分内容 第1章:了解微服务 SpringBoot是一个可使用Java构建微服务的微框架,所以在了解SpringBoot之前,我们需要先了解什么是微服务
2021-07-30 17:26:37
176
原创 字节跳动学习笔记:Java传智播客网盘电子书
第1 章 并发编程线程基础 1.1 什么是线程 1.2 线程创建与运行 1.3 线程通知与等待 1.4 等待线程执行终止的join 方法 1.5 让线程睡眠的sleep 方法 1.6 让出CPU 执行权的yield 方法 1.7 线程中断 1.8 理解线程上下文切换 1.9 线程死锁 1.10 守护线程与用户线程 1.11 ThreadLocal 第2 章 并发编程的其他基础知识 2.1 什么是多线程并发编程 2.2 为什么要进行多线程并发编程 2.3 Java 中的线程安全问题 2.4 Java 中共
2021-07-30 17:25:48
334
原创 字节跳动大神讲座:华为Java开发工程师要求
事故背景 公司最近安排了一波商品抢购活动,由于后台小哥操作失误最终导致活动效果差,被用户和代理商投诉了。经理让我带同事们一起复盘这次线上事故。 什么原因造成的? 抢购活动计划是零点准时开始, 22:00 运营人员通过后台将商品上线 23:00后台小哥已经将商品导入缓存中,提前预热 抢购开始的瞬间流量非常大,按计划是通过Redis承担大部分用户查询请求,避免请求全部落在数据库上。 如上图预期大部分请求会命中缓存,但是由于后台小哥预热缓存的时候将所有商品的缓存时间都设置为2小时过期,所有的商品在同一个时间点全
2021-07-30 17:24:59
152
原创 字节跳动大神讲座:Java观察者模式和发布订阅模式的区别
选择 在现在这个浮躁而又拜金的社会,我相信很多人做技术并非出于热爱,只是被互联网的高薪吸引,毕竟技术岗位非常枯燥,不仅要面对奇奇怪怪的需求,还要不停的充实自己避免被淘汰。所以想要吃好技术这碗饭并不容易。 我一直在思考,我喜欢什么,我适合什么,我应该从事什么岗位。我的前同事东哥和我境遇相似,只是他比我毕业早了差不多十年,毕业之后读了在职硕士,有近三年没有休过周末,这一点我很佩服。 选择的重要性不言而喻,如果方向错了,再努力也是徒劳。回首走过的这几年,我自认为我在关键的节点做出了还算正确的选择。我身边有很多对职
2021-07-30 17:24:08
156
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅