Java实习一年面试题
内卷成仙
十年饮冰,难凉热血!
展开
-
事务是什么
事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。 ...原创 2018-04-27 21:54:41 · 2399 阅读 · 0 评论 -
常用手写代码
冒泡排序:public class MyClass { public static void main(String[] args) { int arr[] = new int[]{1, 3, 5, 7, 9, 2, 4, 6, 8, 0}; for (int i = 0; i < arr.length; i++)...原创 2019-03-17 22:26:11 · 277 阅读 · 0 评论 -
支付接口实现思路
实现思路流程:1、生成订单信息2、商户到银行,商户发起请求到银行把订单信息的部分数据拼接,然后通过银行端给的MD5加密工具加密,然后作为参数,通过http的post请求 发送到支付提供的目标银行网站。3、界面跳转到支付页面,客户在页面支付成功,银行进行业务处理4、银行到商户,银行调用商户接口返回处理结果,商户接收后验证数字签名,更...原创 2019-03-17 22:26:34 · 927 阅读 · 0 评论 -
git使用操作流程
Git下载安装双击安装,默认安装即可设置个人信息$ git config --global user.name "你的姓名"$ git config --global user.email "你的邮箱"设置ssh key(pull/push代码无需输入密码验证,除第一次)生成ssh keyssh-keygen -t rsa -C "你的邮箱"//一直回车复制密钥M...原创 2019-03-17 22:27:53 · 116 阅读 · 0 评论 -
springboot+springcloud+nginx相关理解
什么时候用到nginx tomcat负载均衡他请求量到达一定程度,单tomcat无法负载的时候,就需要使用nginx做负载均衡了什么是springboot用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties或yml文件)创建独立的spring引用程序 main方法运行...原创 2019-03-17 22:29:01 · 2864 阅读 · 0 评论 -
Java多线程问题
Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别?sleep()方法(休眠)是线程类(Thread)的静态方法,调用此方法会让当前线程暂停执行指定的时间,将执行机会(CPU)让给其他线程,但是对象的锁依然保持,因此休眠时间结束后会自动恢复。wait()是Object类的方法,调用对象的wait()方法导致当前线程放弃对象的锁(线程暂停执行),进入对...原创 2019-03-17 22:30:05 · 150 阅读 · 0 评论 -
用Java写一个单例类
饿汉式单例public class Singleton {private Singleton(){}private static Singleton instance = new Singleton();public static Singleton getInstance(){return instance;}}懒汉...原创 2019-03-17 22:31:11 · 279 阅读 · 0 评论 -
JVM虚拟机工作原理
首先我想从宏观上介绍一下Java虚拟机的工作原理。从最初的我们编写的Java源文件(.java文件)是如何一步步执行的,如下图所示,首先Java源文件经过前端编译器(javac或ECJ)将.java文件编译为Java字节码文件,然后JRE加载Java字节码文件,载入系统分配给JVM的内存区,然后执行引擎解释或编译类文件,再由即时编译器将字节码转化为机器码。主要介绍下图中的类加载器和运行时数据区两个...原创 2019-03-17 22:31:52 · 103 阅读 · 0 评论 -
多线程中产生死锁的原因和解决死锁的办法
产生死锁的原因:(1)竞争系统资源(2)进程的推进顺序不当产生死锁的必要条件:互斥条件:进程要求对所分配的资源进行排它性控制,即在一段时间内某资源仅为一进程所占用。请求和保持条件:当进程因请求资源而阻塞时,对已获得的资源保持不放。不剥夺条件:进程已获得的资源在未使用完之前,不能剥夺,只能在使用完时由自己释放。环路等待条件:在发生死锁时,必然存在一个进程--资源的环形链。...原创 2019-03-17 22:32:28 · 486 阅读 · 0 评论 -
Sql优化
1. 尽量使用列名代替*,提高执行效率2 查询条件减少使用函数,避免全表扫描3.应尽量避免在 where 子句中对字段进行 null 值判断4.减少不必要的表连接5.使用视图,给视图建立索引进行优化6不要把SQL语句写得太复杂7参考SQL执行顺序进行优化8.应尽量避免在 where 子句中使用 or 来连接条件...原创 2019-03-18 13:02:34 · 109 阅读 · 0 评论 -
Redis面试回答
Redis有哪些好处:1.速度快,因为数据存在内存中,类似于hashmap,hashmap的优势就是查找和操作的时间复杂度都是O(1)2.支持丰富的数据类型,支持string, list, set, sorted set, hash3.支持事务,操作都是原子性,所谓原子性就是对数据的更改要么全部执行,要么全部不执行4.丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自...原创 2019-03-18 13:02:38 · 138 阅读 · 0 评论 -
分布式与集群的区别
简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。例如:如果一个任务由10个子任务组成,每个子任务单独执行需1小时,则在一台服务器上执行改任务需10小时。采用分布式方案,提供10台服务器,每台服务器只负责处理一个子任务,不考虑子任务间的依赖关系,执行完这个任务只需一个小时。(这种工作模式的一个典型代表就是Hadoop的Map/Re...原创 2019-03-18 13:02:40 · 120 阅读 · 0 评论 -
事务除了事务提交和事务回滚还有什么
还有ACIDACID(事务)分别表示(数据库事务正确执行的四个基本要素的缩写)原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。一个支持事务(Transaction)的数据库,必须要具有这四种特性,否则在事务过程(Transaction processing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要...原创 2019-03-18 13:02:44 · 174 阅读 · 0 评论 -
谈谈你对多线程的理解
线程是由一个主线程和很多个子线程组成的,主线程消失,子线程也会消失,但是子线程消失其中一个主线程不会消失线程的生命周期分为5个步骤像人的一生一样,这5个步骤分别对应了5个方法新生-->启动-->运行-->阻塞-->销毁继承Thread类or实现runnable方法-->start-->run-->sleep(睡眠)or wait(挂起)--&g...原创 2019-03-18 13:02:46 · 724 阅读 · 0 评论 -
常用手写代码
冒泡排序:public class MyClass { public static void main(String[] args) { int arr[] = new int[]{1, 3, 5, 7, 9, 2, 4, 6, 8, 0}; for (int i = 0; i < arr.length; i++)...原创 2019-03-17 22:23:14 · 397 阅读 · 0 评论 -
项目中签名的用法
签名是用来干什么的?签名是对外发布的内容里带了一段密文,用户接收到以后可以解密,然后证明这段内容的确是你的。就像你签字授权一样,从笔迹说明这是你。什么时候会用到签名?比如我调用第三方接口的时候,要通过他给我的密钥来生成一个新的密钥来发送给我调用第三方接口的路径,有了他的密钥我才可以调用他的接口(附上代码) Map<String, Object> data = new ...原创 2019-03-17 22:21:01 · 399 阅读 · 0 评论 -
Spring是什么?SpringMVC是什么?Spring和springMVC的区别?
Spring:Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。Spring的两大核心AOP与IOC,可以单独用于任何应用,包括与Struts等MVC框架与Hibernate等ORM框架的集成,目前很多公司所谓的轻量级开发就是用 Spring + Struts(2)+Hibernate。SpringMVC: Spring MVC就是一个MVC框架,个人觉得Spring ...原创 2018-04-27 22:09:26 · 15632 阅读 · 0 评论 -
log4j 中%t代表什么意思
%t: 输出产生该日志事件的线程名原创 2018-04-28 00:04:38 · 10225 阅读 · 0 评论 -
List中插入dcab和set插入dcab中输出结果是什么?
List是有序的ArrayList和LinkedList所以输出结果为dcab是无序的HashSet和TreesSet输出结果为abcd中LinkedHashSet是有序的所以输出为dcab原创 2018-04-28 08:35:28 · 564 阅读 · 0 评论 -
什么是延迟加载
ResultMap中的assosiation和collection标签具有延迟加载的功能延迟加载的意思是说,在关联查询时,利用延迟加载,先加载主信息。使用关联信息时再去加载关联信息。 需要查询关联信息时,使用mybatis延迟加载特性可有效的减少数据库压力,首次查询只查询主要信息,关联信息等用户获取时再加载。...原创 2018-06-28 18:56:00 · 4611 阅读 · 0 评论 -
Redis的好处
1.速度快,因为数据存在内存中,类似于hashmap,hashmap的优势就是查找和操作的时间复杂度都是O(1)2.支持丰富的数据类型,支持string, list, set, sorted set, hash3.支持事务,操作都是原子性,所谓原子性就是对数据的更改要么全部执行,要么全部不执行4.丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除...原创 2018-06-28 18:58:44 · 285 阅读 · 0 评论 -
什么是hashmap冲突?
如果存在相同的hashCode值,那么它们确定的索引位置就相同,这时判断它们的key是否相同,如果不相同,那么就产生了hash冲突。原创 2019-03-17 22:01:46 · 807 阅读 · 0 评论 -
HashMap原理及冲突解决办法
当拿到一个hash值,通过indexFor(hash, table.length)获取数组下标,先查询是否存在该hash值,若不存在,则直接以Entry<V,V>的方式存放在数组中,若存在,则再对比key是否相同,若hash值和key都相同,则替换value,若hash值相同,key不相同,则形成一个单链表,将hash值相同,key不同的元素以Entry<V,V>的方式存放...原创 2019-03-17 22:02:29 · 357 阅读 · 0 评论 -
springboot的优点
1:springBoot内置servlet容器,降低对环境的要求,可以将项目打包成jar包,通过java -jar命令来执行2:快速整合第三方框架,无需配置文件3:内置tomcat启动方便,并提供一切注解方便开发4:简化Manen配置5:自动配置Spring...原创 2019-03-17 22:03:06 · 422 阅读 · 0 评论 -
mysql中两种引擎的理解?
Innodb引擎提供了对数据库ACID事务的支持,并且实现了SQL标准的四种隔离级别。该引擎还提供了行级锁和外键约束,它的设计目标是处理大容量数据库系统,它本身其实就是基于MySQL后台的完整数据库系统,MySQL运行时Innodb会在内存中建立缓冲池,用于缓冲数据和索引。但是该引擎不支持FULLTEXT类型的索引,而且它没有保存表的行数,当SELECT COUNT(*) FROM TABLE时需...原创 2019-03-17 22:05:50 · 170 阅读 · 2 评论 -
springcloud如何实现服务的注册和发现
服务在发布时指定对应的服务名(服务名包括了IP地址和端口)将服务注册到注册中心(eureka或者zookeeper)这一过程是springcloud自动实现只需要在main方法添加@EnableDisscoveryClient同一个服务修改端口就可以启动多个实例调用方法:传递服务名称通过注册中心获取所有的可用实例通过负载均衡策略调用(ribbon和feign)对应的服务...原创 2019-03-17 22:09:16 · 7694 阅读 · 1 评论 -
springcloud断路器的作用
当一个服务调用另一个服务由于网络原因或者自身原因出现问题时调用者就会等待被调用者的响应当更多的服务请求到这些资源时导致更多的请求等待这样就会发生连锁效应(雪崩效应)断路器就是解决这一问题断路器有完全打开状态一定时间内达到一定的次数无法调用并且多次检测没有恢复的迹象断路器完全打开,那么下次请求就不会请求到该服务半开短时间内有恢复迹象断路器...原创 2019-03-17 22:10:06 · 7754 阅读 · 2 评论 -
二年面试题
spring框架中哪些地方用到了哪些设计模式(举例子说明)mq中怎么解决消息重复rabbitMq和kafuka区别注册服务zk断了一秒有什么影响mysql的存储过程tcp3次握手和4次挥手...原创 2019-03-17 22:11:06 · 125 阅读 · 0 评论 -
java基础必会题
什么是事务?在数据库操作中,一项事务是指由一条或多条对数据库更新的sql语句所组成的一个不可分割的工作单元。只有当事务中的所有操作都正常完成了,整个事务才能被提交到数据库,如果有一项操作没有完成,就必须撤消整个事务。事务除了事务提交和事务回滚还有什么还有ACIDACID(事务)分别表示(数据库事务正确执行的四个基本要素的缩写)原子性(Atomicity)、一致性(Consis...原创 2019-03-17 22:14:05 · 195 阅读 · 0 评论 -
spring全家桶
spring框架简单理解spring框架基于mvc理念中的c层也就是控制器层,他和很多框架都能够随意组合简称为一栈式,spring这个框架是由两大部分组成的一个是IOC俗称控制反转意思就是将组件的控制权交由外部也就是spring这个框架来处理,IOC还有一种表达方式称之为DI依赖注入,就是在运行期间由外部容器动态地将依赖对象注入到组件中,DI的底层是反射机制,有三种注入方式:构造器注入,接口注...原创 2019-03-18 13:02:20 · 689 阅读 · 0 评论