-
滴滴网约车-面经
一面全程一个小时,自我介绍结束就做题,两道算法题,然后问了一些八股文,难度不大,但是自身准备不充分,估计要白给了自我介绍这里就不详细介绍了动态规划完全背包二叉树的公共祖先剑指offer68如何保证reids缓存和mysql的数据一致性链接Reactor多线程模型Netty 的 I/O 模型是基于非阻塞 I/O 实现的,底层依赖的是 NIO 框架的多路复用器 Selector。采用 epoll 模式后,只需要一个线程负责 Selector 的轮询。当有数据处于就绪状态后,需要一个事件分发器(...…
-
光大银行信息科技部-面经
初面全程一共20分钟左右,四个面试官,一位负责引导流程,一位负责提问工程技术、另一位面试官询问一些现状,比如:为什么想离职、现在住在哪里等等,整体的节奏比较快,面试难度一颗星自我介绍这里就不详细介绍了项目中提到的多任务高并发是如何实现的项目中的任务推进是什么意思,详细介绍一下线程池是怎么实现的?有哪些参数?参数介绍: corePoolSize 核心线程池大小 maximumPoolSize 最大线程池大小 keepAliveTime 线程池中超过 corePoolSize 数目的空...…
-
static静态变量使用@Value注入方式
static静态变量使用@Value注入方式在项目中遇到一个工具类,类中的变量都是static类型并且需要使用注解的方式注入值,原始的代码设计如下@Data@Slf4j@Componentpublic class Utills { @Value("${ACCESS_ID}") private static String ACCESS_ID ; @Value("${ACCESS_KEY}") private static String ACCESS_KEY ; ...…
-
快速解决数据中自动生成的转义字符
快速解决转义字符问题背景:需要解析json字符串中的图片路径,字符串如下 ,直接使用json解析抛出异常,标准的json格式是没有字符串中的\的 ``` String str = "{\\\"path\":\\\"https://image.com/12324354354\\\"}" ```解决方案StringEscapeUtils工具类 apache工具包common-lang中有一个很有用的处理字符串的工具类,其中之一就是StringEscapeUtils。利用它可方便地进行htm...…
-
腾讯后台开发——CSIG
一面链表求中间值快排和堆排Redis的快照和主从数据库Redis的阻塞Synchronized关键字Lock和Synchronized的区别,队列同步器CAS底层原理垃圾收集算法垃圾收集器、并行、并发(用户线程和收集线程)JVM内存分配数据库的隔离级别,mvccJMM模型Dubbo的原理TCP三次握手和四次挥手二面有一个100万个数组,每个数组的数值在0-1000万之间,排序二叉树的先跟遍历,非递归死锁,以及解决办法hash冲突计算机网络的超时重传、重传几次放弃Ip地址分配,一个部门10个...…
-
Spring源码分析——AOP
[TOC]AOP:指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式@EnableAspectJAutoProxy@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Import({AspectJAutoProxyRegistrar.class})//给容器中导入组件public @interface EnableAspectJAutoProxy { boolean ...…
-
大型网站系统与Java中间件实践
[TOC]分布式系统定义: 组件分布在网络计算机上 组件之间仅仅通过消息传递通信并协调行动网络IO实现的方式: BIO方式:阻塞的方式实现,一个线程处理一个socket NIO方式:非阻塞的方式实现,基于事件驱动思想,采用reactor模式 Reactor会管理所有的handler 通过Reactor对所有的客户端的socket事件处理,然后派发到不同的线程 AIO方式 异步IO,采用Proactor模式。 ...…
-
Java并发编程的艺术
[TOC]Java中的并发工具类等待多线程完成的CountDownLatchCountDownLatch允许一个或多个线程等待其他线程完成操作,可以实现一个计数器的功能,但要注意,计数器必须大于等于0,等于0的时候,调用await方法不会阻塞。CountDownLatch不可能重新初始化或者修改CountDownLatch对象的内部计数器的值,一个线程调用countDown方法happen-before另一个线程调用await方法看一下源码:public class CountDownLa...…
-
Spring源码分析——BeanPostProcessor
[TOC]BeanFactoryPostProcessorpublic interface BeanFactoryPostProcessor { /** * 允许在工厂里所有的bean被加载进来但还没有初始化之前,对所有的bean的属性进行修改,也可以添加属性值 */ void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException;}方法...…
-
猫眼电影
一面自我介绍介绍一下项目项目中的单点登陆怎么实现的,为什么会携带tokenhttp无状态项目中为什么使用zookeeper 配置信息同步 集群内节点状态快速感知项目中使用redis做了什么 使用redis存储用户登录信息 使用redis的list结构存储用户订阅的币种信息……说一下Java的特征面向对象,封装、继承、多态封装利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之...…
-
腾讯后台开发
一面自我介绍介绍项目看你用了redis,知道redis如何实现分布式锁么Redis 的 SETNX 指令使用 SETNX(set if not exist)指令插入一个键值对,如果 Key 已经存在,那么会返回 False,否则插入成功并返回 True。SETNX 指令和数据库的唯一索引类似,保证了只存在一个 Key 的键值对,那么可以用一个 Key 的键值对是否存在来判断是否存于锁定状态。EXPIRE 指令可以为一个键值对设置一个过期时间,从而避免了数据库唯一索引实现方式中释放锁失败的问...…
-
腾讯-分布式开发
介绍项目,问了单点登录参考博客为什么项目中使用redis,好处是什么 速度快,因为数据存储在内存中 支持丰富的数据类型 redis是单进程单线程:利用队列技术将并发访问变成串行访问,消除传统数据库串行控制的开销 可以设置过期时间项目中的用户表如何设计的,采用什么索引进程和线程的区别进程是资源分配的基本单位。进程控制块 (Process Control Block, PCB) 描述进程的基本信息和运行状态,所谓的创建进程和撤销进程,都是指对 PCB 的操作。线程是独立调度的基本单位。...…
-
字节跳动
byte和bit是什么意思bit:二进制位数的缩写,意为“位”或者“比特”,是计算机运算的基础。取值范围0或1byte:是计算机文件大小的基本计算单位关系:1byte=8bitJava中的基本数据类型以及数据范围整数类型: byte:8位 -128~127 short:16位 -2^15 ~ 2^15-1 int:32位 -2^31 ~ 2^31-1 long:64位 -2^63 ~2^63-1浮点数类型: float:32位 ,后缀F或f。 double:64位,默...…
-
java.lang.NoClassDefFoundError:org/apache/commons/logging/LogFactory
在搭建SSH项目时出现了这样的错误:Exception in thread "main" java.lang.NoClassDefFoundError:org/apache/commons/logging/LogFactory at org.apache.pdfbox.pdmodel.PDDocument.<clinit>(PDDocument.java:95) at 读取PDF.getMessage_pdf.ParsePdf(getMessage_pdf.java...…
-
Spring入门(一)
介绍Spring是一个开源框架,spring是一个轻量级的Java开发框架。一站式框架,核心是控制反转IOC和面向切面AOP三层结构:WEB层:springMVC业务层:Bean管理(IOC)持久层:spring的jdbc模板ORM模板用于整合其他的持久层框架入门案例userDAO类:public interface UserDAO { public void sayHello();}public class UserDAOImpl implements UserDAO { @...…
-
Struts2入门(二)
OGNLOGNL的全称是对象图导航语言,是一种功能强大的开源表达语言,使用这种表达式语言,可以通过某种表达式语法,存取Java对象的任意属性,调用Java对象的方法,同时能够自动实现必要的类型转换作用 支持对象方法调用 支持静态方法调用和值的访问,表达式的格式为@[类全名(包括包路径)]@[方法名 值名],例如:@java.lang.String@format(‘foo%s’,’bar’) ...…
-
Struts2入门(一)
struts2介绍Struts2是一种基于MVC模式的轻量级web框架。它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(controller)来建立模型与视图的数据交互。优势 自动封装参数 参数校验 结果的处理(转发、重定向) 国际化 显示等待界面 防止表单的重复提交Struts2具有更加先进的架构以及思想servlet是线程不安全的?struts2的前身是workweb创建项目解压struts2的开发包apps:官方提供的示例程序,各实例是wa...…
-
Hibernate入门(四)
hibernate检索方式分类 导航对象图检索方式 OID检索方式 HQL检索方式 QBC检索方式 SQL检索方式对象图导航检索根据已经加载的对象,导航到他的关联对象。利用类与类的关系来检索对象。例子:查找一个联系人对应的客户,就可以由联系人对象自动导航到联系人所属的客户对象,前提是必须在对象关系映射文件上配置了多对一关系LinkMan linkMan = (LinkMan) session.get(LinkMan.class,1);Customer customer = lin...…
-
Hibernate错误
在运行hibernate多对多关系时一直报下图的错误代码实体类public class SysUser { private long userId; private String userCode; private String userName; private String userPassword; private String userState; private Set<SysRole> roles=new HashSet<&...…
-
Hibernate入门(三)
表于表的关系一对多建表原则:在多的一方创建外键指向一的一方的主键多对多建表原则:创建一个中件表,中间表至少要两个字段作为外键分别指向多对多双方的主键一对一建表原则:原则一:唯一外键对应:假设一对一中的任意一方为多,在多的一方创建外键指向的一方的主键,然后将外键设置为唯一原则二:主键对象:一方的主键作为是另一方的主键在hibernate中采用Java对象关系来描述数据表之间的关系,具体如下图:一对多关系customer类 private Set<CstLinkmanEntity>...…