pending1
问:Redis 数据类型
答: List Set String Hash Zset
问:Redis 事务
答:一个Redis 事务执行三个步骤 : 开始事务 命令入队 执行事务
问:Redis 除了缓存的应用
答:新列表,排行榜应用,数据排重,计算器应用,消息队列
问:Redis 持久化
答: ROB持久化 和 AOF持久化
问:TCP协议 和 HTTP协议区别
答:TCP 传输控制协议,是一种面向连接,可靠的,基于字节流的传输层通讯协议
HTTP 是一个属于应用层的面向对象协议,由于便捷,快速适用于分布式超媒体信息系统
问:WebScoket使用及其原理
答:WebScoket看起来是一种类似TCP/ip的Scoket技术,此Scoket在Web应用中实现,并获得了TCP/ip通信一样灵活方便的双向通信功能
问:Cookie 和 Session 的区别
答:Cookie 存储在浏览器上,Session存储在服务器上
Cookie因为存储本地,不安全, Session更安全
问:多线程和锁 同步锁 异步锁 实现多线程的三种方法
答:一个类的类锁只有一个,所以一个类的锁都是相同的 ———— 一个类的对象锁有很多个,一个类的对象锁互不相同 ———— 类锁和对象锁互不相同
同步锁:发送一个指令,需要等待返回结果,才能发布下一个指令,需要等待;
异步锁:发送一个指令,不需要等待返回结果,即可发布下一条指令
问:NIO 用法
答:NIO即IO,buffer和channel是NIO的核心对象,其中数据放入Buff中,应用程序即channel必须通过buffer来读写数据,channel可以看作流
问:IO流
答:intputStream字节输入流,OutputStream字节输出流,Reader字符输入流,Writer字符输出流
问:Solr
答:Solr是独立的企业级搜索应用服务器,它对外提供Web server的API接口,Solr对外提供标准的http接口来实现对数据索引的增加,删除,修改,查询
问:简单说下hadoop
答:haddop是一个能对大量数据进行分布式处理的软件框架
问:数据加密
答:对称加密,MD5
问:Token,Jwt,Session,Cookie简述
答:Token是用来验证登录注册,Jwt就是Token认证的实现,定义了一些自己的规则,Session是存储内存,磁盘,服务器里,Cookie存储在本地,最大存储4K
问:Shiro 安全框架
答:Shiro 是一个强大而灵活的开源安全框架,能够非常清晰的处理认证,授权,管理,会话,以及密码加锁
问:try,catch,finally 执行顺序
答:没有异常,先执行try 然后进入finnally
有异常,顺序执行
问:Map的遍历方式
答:Keyset,先得到Key列,然后使用Map的get方法获取键对应的值
Entryset,得到Key和Value的映射关系,在从这个关系中得到对应的Key和Value值
问:简述HashMap
答:HashMap是一张哈希表,键和值都没有排序,HashMap是非线程安全,只用于单线程环境下
问:ArrayMap和HashMap 区别
答:存储方式不同,增添数据扩容时的处理不一样,ArrayMap提供了数组收缩功能,ArrayMap采用二分法查找
问:HashTable和HashMap 区别
答:HashMap是非线程安全的,HashMap的键和值都允许有null值存在,HashMap效率比HashTable的要高,HashMap适用于单线程
HashTable是线程安全的,HashTable的键和值不允许为null,HashTable是同步的,HashTable适用于多线程
问:ArrayList和LinkedList 区别
答:ArrayList底层是数组,LinkedList底层是链表,ArrayList查询快,LinkedList新增删除快
问:throws和throw
答:throw是指语句抛出异常,一般是代码块内部。throws是表示该方法可能抛出异常
问:创建对象的注解
答: @Component @Controller @Service @Repostory
问:创建对象的方法
答:空参构造方法,静态工厂方法,实例工厂方法
问:平常使用哪些集合
答:Map Set List Map是键值对,Set是无序的,List是有序的
问:常用的设计模式
答:单例模式:如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决办法
工厂模式:在编码时不能遇见需要创建哪种类的实例
观察者模式:对一个对象状态的更新,需要其他对象同步更新,而且对其他对象的数量动态可变
问:创建对象的方式
答:new关键字,使用Class类的newInstance方法,使用Constructor类的newInstance方法,使用clone方法,使用反序列化
问:多态的实现方法有
答:虚方法,抽象类,接口
问:接口的优点
答:继承具有单一性,接口可以多实现,打破了继承的局限性,降低了程序的耦合度,使各层调用更透明,更灵活,提高开发效率
问:重载和重写的区别
答:方法重载发生在同一个类里面两个或多个方法,方法名相同但参数不同
重写是子类继承父类,方法名相同,参数类型,参数个数,返回值都相同。子类访问权限大于等于父类
问:面向对象的特点
答:封装可以使类具有独立性和隔离性,只暴露给类外部或者子类必须的属性和操作
继承:子类继承父类的非私有特性的属性和操作,子类也可以有自己的方法
多态:父类的引用指向之类的对象
抽象:抽象模型称之为类,对类进行实例化得到对象
问:Springbuffer和SpringBulider
答:SpringBuffer和SpringBulider方法完全相同,SpringBuffer线程安全,SpringBulider线程不安全,适合单线程,但是SpringBuider效率高
问: & 和 && 区别
答:不管怎么样都执行&左右两边的程序
只有当&&左边程序为true,才会执行右边的程序
问:冒泡排序
答:比较相邻的两个数,将值较大的交换到右边
问:int和interga哪个占用内存大
答:interga 是包装类占用内存大
问:String a = new String("A");创建了几个对象
答:两个
问:继承父类后父类的构造方法会不会被重写
答:不能,构造方法不能被重写
问:HashMap遍历用什么方法
答:利用Iterator迭代器或 for each方法遍历键值集,然后通过遍历键集,获得值集,或者直接遍历键值关系
问:keyset 和 entry 区别
答:keyset效率低 需要遍历两次才可以获得值,entry效率高,遍历一次就可以获得键值集
问:Ajax能不能实现同步
答:能
问:Ajax的异步同步实现和流程
答:Ajax 的异步实现 async默认的设置值为 false
Ajax 的同步实现 async默认的设置值为 true
问:Ajax实现同步和异步有什么不同
答:一个需要等待,一个不需要等待,在部分情况下,项目开发优先使用异步交互
问:前后台怎么交互
答:利用Ajax 进行异步数据请求
问:Spring的底层原理
答:IOC将组件对象的控制权转移到 外部容器(spring 容器)降低代码耦合度
AOP(面向切面编程):AOP 切面将那些与业务逻辑无关,却被业务模块共同调用的逻辑提取并封装起来,减少了系
统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性。
一句话概括:
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
问:Spring 里运用了哪几种设计模式
答:工厂模式 模板模式 代理模式 单例模式 迭代器模式 原型模式