My java

1.1面向对象的三大特性是什么?
回答:封装,继承和多态。
封装就是将对象包装成一个具有高度自治和相对封闭的个体,对象的属性由方法来进行调用。对数据的访问通过get,set方法获取。
继承就是子类具有父类的方法和属性,继承可以重用父类的代码。
多态就是(同一行为具有不同的表现形式或形态)不同的类可以对同一消息进行响应。
多态的三个条件:继承,重写,父类引用指向子类对象。Person person =new Student();
3.1常用的设计模式有哪些?
回答;设计模式分为创建型,结构型和行为型。
创建型主要有单例模式,工厂方法模式,抽象工厂模式,建造者模式,原型模式。
结构型模式主要有代理模式,适配器模式,桥接模式,装饰模式,外观模式,享元模式,组合模式和模板方法模式
行为型模式主要有策略模式,命令模式,指责链模式,状态模式,观察者模式。中介者模式,迭代器模式,访问者模式,备忘录模式和解释器模式。
3.2设计模式的七大原则是什么?
回答:1开放封闭原则:对扩展开放,对修改封闭。2.里氏代换原则:子类可以替代父类。
3.依赖倒转原则:高层模块不应该依赖于底层,要依赖于抽象(接口和抽象类),
抽象不能依赖于细节(实现类),细节应该依赖于抽象。要针对接口编程。
4.单一指责原则:导致类更改的原因只能有一个。
5.迪米特原则:一个类应该与其他类尽可能少的接触。
6.合称复用原则;尽量使用组合聚合不要使用继承。
7.接口隔离原则;要为各个类建立他们专用的接口,不要用大接口。
4.1TCP/IP协议和HTTP协议相关问题(计算机网络方面)
4.1.1 一次完成的HTTP请求是什么?
回答:首先对www.baidu.com进行域名解析得到其IP地址,然后根据这个ip地址找到其服务器,对服务器发起TCP连接请求,三次握手,建立TCP连接之后发起HTTP请求,服务器响应客户端HTTP请求,浏览器得到对应的HTML代码,然后进行解析代码请求资源(css和图片)再渲染页面给用户呈现。
4.1.2 http和https有什么区别?
回答: 1http连接是明文传输的简单连接,https是经过ssl加密的安全连接。2.http端口是80,https端口是443端口,3.https需要ca申请认证证书,需要费用。
4.1.3 为什么TCP连接断开需要4次挥手?
回答:TCP连接三次握手四次挥手,其中四次挥手是因为TCP的半关闭状态决定的,TCP是全双工的,就是同时双向传输。所以关闭的时候需要双向的每个方向单独关闭,关闭的方法是对对面传输一个FIN终止连接。具体的是A向B发送一个FIN,然后B收到A的FIN,给A发送一个ACK表示收到确认序列号为收到+1,然后B关闭给A发送一个FIN,然后A回复一个ACK确认序列号为收到序号+1.
4.1.4 为什么TCP连接是可靠的?
回答:因为TCP三次握手四次挥手,有超时重传,滑动窗口和拥塞避免,所以是可靠的。

5.1.1什么是java的异常?
回答;java异常的总接口是throwable,表示可抛出的。分为Exception和error。其中error指程序不常见的且一旦发生就可能导致崩溃的程序错误。
包括AWTerror和JVM error(常见的有StackoverFlow和Outofmemory),
Exception指程序执行中可预见的可抛出解决的异常,常见有1/0,ClassNotFound,NullPoint,Unkowntype,ArrayIndexout of Bound Exception
5.1.2常见的IO流有哪些?
回答:io流包括字节流,字符流,节点流和处理流。
字节流:InputStream,OutputStream.
字符流:Reader和Writer
节点流:StringReader,Writer CharArrayReader
处理流:buffer(bufferReader,bufferWriter,BufferInputStream),data,Filter,print
5.1.3多线程?
回答;进程和线程。进程是执行着的应用程序,线程是操作系统调度的最小单位。一个进程可以有多个线程。Run()和Start()
线程创建的方式:Tread() start()调用
Runable() 函数式接口(只有一个抽象方法的接口可以和Lambda表达式
Callable() 可以有返回值
Lambda表达式 函数式编程,为了避免内部类过多 Lambda表达式就是将函数当作参数
New Thread(()->{System.out.println();}).start();
线程的状态:新建,就绪,运行,阻塞,死亡。
常用的方法有sleep()和wait()
Join yield start intrrupt
线程同步
多个对象操作一个资源:并发
Synchronized 同步方法 弊端锁太多了
同步代码块(常用!)
死锁:两个人都抱着对方的锁,两个对象互相等待对方释放锁
死锁条件:互斥,请求与保持,不剥夺条件,循环等待条件。
5.1.4常用集合?
回答:Collection和Map
Collection 包括List和Set List 包括ArrayList和LinkedList
Set 包括 Hashset和Treeset
Map HashMap和TreeMap
6.1常用类?
回答:Object类(hashcode(),toString(),clone(),getClass(),notify(),wait(),equals()),Math类,Random类,File类,包装类。Data类,String类,StringBuilder,
StringBuffer类

6.2.JVM底层原理?
回答:.java->Class File->Class Loader(类加载器)->运行时数据区

GC常用算法
引用计算法 每次都要维护计数器,
复制算法 新生代 8:1:1 伊甸园是8,谁to谁为空.浪费内存。
标记清除算法 养老带 效率不高
标记压缩算法

Part2 SSM框架,简历项目相关问题
1.什么是Spring框架,主要有哪些模块?
回答:
Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架
2.什么是IOC和AOP?
什么是Bean:在 Spring 中,构成应用程序主干并由Spring IoC容器管理的对象称为bean。bean是一个由Spring IoC容器实例化、组装和管理的对象。
回答:控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI)
控制反转技术描述:简单来讲假如有两个类A和B,A类中需要调用B的对象,一般情况下就需要在A类中new一个类B对象,而使用了依赖注入的技术的时候只需要在A类中定义一个私有的B对象,不需要new来操作,通过相关的容器控制程序在将B对象在外面new出来并注入到A的引用中。具体获取的方法由XML配置文件来决定。
2.1AOP面向切面编程,主要功能:日志记录,事务处理,异常处理 性能统计,安全控制,
AOP可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术
ORM(对象关系映射)框架就是用于实现ORM技术的程序。
  常见的ORM框架有:Hibernate、TopLink

项目相关问题
1.如何使用Redis缓存热点数据?
回答:首先Redis是Nosql(Notonlysql非关系型数据库),是一种内存键值数据库。Redis的五种基本类型,字符串,列表,散列表,集合,有序集合。
Redis适用场景:缓存,将热点数据放入内存。
消息队列,List类型是双向链表很适用于消息队列。
键的过期时间:清理缓存数据
2.如何使ajax实现异步删除功能?
回答:首先Ajax是一种无需加载整个网页的情况下能够更新部分网页的技术。
AJAX创建异步对象XMLHttpRequest在chrome中,XMLHttpRequest对象的创建方法直接
var xmlHttp=new XMLHttpRequest(); post和get;

3.Mysql主从读写分离?
回答:Mysql主从又叫Replication,AB复制。
主从过程:主将更改操作记录到binlog中,从将binlog事件(sql语句)同步本机并记录在relaylog里,从根据relaylog中的sql语句按顺序执行。
主从主要作用:
实时灾备,用于故障切换
读写分离,提供查询服务
3.项目2问题。
bootstrap是一个比较流行的前端框架。使用他提供的html和css代码可以美化外观。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值