面试准备
CR2018
这个作者很懒,什么都没留下…
展开
-
Jsonp跨域解决如何配置
首先我们在mvc配置文件加上<mvc:annotation-driven content-negotiation-manager="negotiationManager"> <!-- register-defaults属性是 是否注册成默认 ,不想设置为默认直接改成false即可 spring默认有一个StringConverter,我们又定义了一个,sp...原创 2018-06-27 14:21:25 · 922 阅读 · 0 评论 -
uri和url的区别?什么是restful风格?
uri是统一资源定位符。url是统一资源标识符。uri是具体的资源,而url是具体的资源的地址,url是属于uri的一部分。restful风格四个特点1.资源,大多数资源以json格式表示2.统一的接口,crud分别对应http的get,post,put,delete3.uri。每个uri对应一个特定的资源4.无状态。所有的资源搜可以采用uri去定位,而不与其他资源产生耦合。...原创 2018-06-30 10:18:41 · 2963 阅读 · 1 评论 -
stringbuffer和stringbuilder哪个效率高
stringbuffer时线程安全的,因为他的append方法会有同步锁,stringbuilder时线程不安全的所以我们在单线程的时候使用stringbuilder在多线程的时候使用stringbuilder...原创 2018-06-18 22:08:11 · 3969 阅读 · 4 评论 -
final,finally,finalize的区别
final修饰类,方法,成员变量,局部变量,修饰类的时候,表示类不能被 继承,修饰方法的时候,表示方法不能被重写修饰变量的时候,对于基本数据类型,值确定后便不能更改,对于引用数据类型,不能指向另一个对象...原创 2018-06-18 22:01:41 · 152 阅读 · 0 评论 -
HashSet为什么要重写equals和tohashcode方法
hashset为了确保值的唯一性,会对对象的哈希值取模,来确定对象应该放的位置,如果对象的取模后哈希值相等,我们会 再进行equals判断,如果返回true则丢弃,如果返回false,证明两个对象不相等,那么我们会用链表的形式,在这个值的后面追加另一个值。这就达到了对象的唯一性。重写的意义,在于我们的hashset会调用这两个方法进行判断。public class test01 extends O...原创 2018-06-18 21:58:08 · 1015 阅读 · 0 评论 -
object类里面的方法
object类中的方法1.toString打印对象的信息,返回对象的字符串表示public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode());}2.finalize垃圾回收时调用protected void finalize() throws Throwable ...原创 2018-06-18 21:44:43 · 768 阅读 · 0 评论 -
mysql服务器的优化
根据服务器的性能调整mysql的默认参数有索引缓存,表缓存,查询缓存和排序缓存等,在my.conf或者my.ini的mysql组中可以根据压力测试,测试出合适的数值。...原创 2018-06-24 21:19:16 · 290 阅读 · 0 评论 -
数据库插入的优化mysim和innodb
数据库的存储引擎主要有两种一种是myisam,一种是innodb(默认)myism支持全文检索,不支持事务。适合做读非常多,而写非常少的数据库innodb是事务型引擎,支持行级锁定。适合做写表。总之是myism效率高,innodb安全。mysim插入的优化1.禁用索引2.禁用唯一性检查3.使用loda data infile代替insertinnodb插入的优化1.禁用唯一性检查2.禁用外键3.关...原创 2018-06-24 21:08:12 · 1553 阅读 · 0 评论 -
mysql结构的优化
1.尽量使用合适的数据类型,能用正数就不用小数。字符串能用数字,就不用字符串(男女),但是要设置数据字典2.字段尽量都是not null。null值不仅占数据空间,还会使查询的效率变低3.字段过多使用垂直i切分4.数据过多,使用水平分表5.可以将多表查询转化为单表查询,例如使用中间表,或者在单表中添加冗余字段。...原创 2018-06-24 20:39:35 · 193 阅读 · 0 评论 -
你们公司怎么解决高并发问题?
从数据库的角度。我们使用mycat做读写分离,优化数据库从静态页的角度。 我们将商品详情页生成静态页。从图片资源。我们建立单独的图片服务器。从缓存角度。将商品分类等不经常改变的资源做缓存。从负载均衡的角度。让每一台服务器的性能得到很好的利用。另外,我们微服务的拆分,运行在不同的服务器上,本身就有一定的应对高并发的能力。...原创 2018-06-25 22:10:18 · 1055 阅读 · 0 评论 -
truncate和delete的区别
从效果上来看:truncate是删除整个表,然后重构整个表。delete只是删除逐条删除没一条数据。从空间上来看:delete会产生碎片,并不会释放空间,而truncate不会产生碎片。从事务的角度:truncate不可以回滚,delete可以回滚。...原创 2018-06-19 19:58:15 · 8330 阅读 · 0 评论 -
解决406问题
406问题的原因是服务器响应的数据类型和浏览器想要的数据类型不一致。,比如浏览器要json,我们却返回的是html问题产生的原因是springmvc会自动根据我们请求路径的后缀判断媒体类型。我们需要在配置文件中配置不让他自己去给我们判断<!-- 注解驱动 content-negotiation-manager:注册一个自定义的ContentNegotiationManager-->&l...原创 2018-06-27 14:08:09 · 712 阅读 · 0 评论 -
再玩springmvc的拦截器
spingmvc的执行步骤用户发送请求到dispatcherservlet,前端控制器到handermaping去找对应的handler,然后返回一个执行链,是handler和响应的拦截器,执行链经过适配器,做一些处理,到达对应的handler,经过handler来处理后,返回modelandview,前端控制器会先对视图对象进行解析,解析完成后,前端控制器会对视图进行渲染,渲染完成之后,将视图返...原创 2018-06-27 13:50:47 · 209 阅读 · 0 评论 -
redis和memcached的区别
redis支持5中数据结构,memcached值支持key,value的结构redis可以持久化,memcached不可以持久化redis是单进程单线程的,memcached是多线程的redis支持数据的备份,主从模式的备份大神的博客 https://www.cnblogs.com/457248499-qq-com/p/7392653.html...原创 2018-06-27 08:19:20 · 198 阅读 · 0 评论 -
sql的优化
1.尽量不使用select * 。因为他会全字段扫描2.多个过滤条件,将过滤个数多的条件放在后面。因为执行的原理是where 。。 And 。。,会先执行后面的语句。...原创 2018-06-20 10:36:00 · 231 阅读 · 0 评论 -
怎么查询用sql查到不重复的数据
select distinct name from A多个字段select distinct name,id from A他会根据两个字段去去重原创 2018-06-20 10:34:08 · 22217 阅读 · 0 评论 -
springboot的启动原理,终极理解
@SpringbootAplication下面有三个注解@springbootConfiguration相当于@configuration 声明这个类是一个配置类@Companscan 扫描同一个包下的类及其子包,当我们需要改变配置方式的时候,我们可以选择@companscan后面配置自己想要扫面的包。@EnableAutoCOnfiguration根据依赖自动配置@import扫描autocon...原创 2018-07-01 21:40:05 · 2070 阅读 · 5 评论 -
如何避免用户不断发送请求,服务器压力过大的问题
页面静态化,将页面交给tomcat处理。那么,如何防止nginx的压力过大呢?nginx集群,keepalived实现nginx的主从静态资源缓存,减少io读写的压力把静态资源交给cdn服务器处理。...原创 2018-06-20 00:05:17 · 3627 阅读 · 0 评论 -
你们在什么地方应用过AOP?
我们在数据库读写分离的时候用到。我们对数据库做了读写分离,在主表中进行写操作,在从表中进行读操作。我们在服务端对Service层的所有方法进行了代理,当我们发现方法是以get,find,query开头的时候,我们使用从表的数据源,其他方法,使用主表的数据源。...原创 2018-06-19 23:41:39 · 3012 阅读 · 0 评论 -
跨域的方式
ajax因为安全原因不允许跨域,我们对跨域解决主要有三种1.jsonp,利用js的<script>标签发送请求,并且提前定义好一个函数,在服务端也写上这个函数,当服务端被解析到前端的时候,我们就可以解析出服务端的函数,从而实现调用。我们通常使用jquery的方式,在ajax中添加一个datatype=jsonp的属性来实现跨域。缺点,只支持get请求优点,轻量化2.nginx反向代理的...原创 2018-06-19 23:36:22 · 159 阅读 · 0 评论 -
数据库的三范式(简单总结)
1.表中的列必须具有原子性,不能被切分2.必须有主键3.非主键列依赖于主键原创 2018-06-24 20:21:03 · 315 阅读 · 0 评论 -
线程池
ThreadUtils.execute(new Runnable() { @Override public void run() { try { createHtml(id); } catch (Exception e) { e.printStackTrace(); } }})...原创 2018-06-24 18:46:21 · 187 阅读 · 0 评论 -
利用mq的最终一致性,解决分布式事务。
分布式事务及解决方案 1、 经典事务经典事务,是指传统的单机数据库事务,必须具备ACID原则:l 原子性(A)所谓的原子性就是说,在整个事务中的所有操作,要么全部完成,要么全部不做,没有中间状态。对于事务在执行中发生错误,所有的操作都会被回滚,整个事务就像从没被执行过一样。 l 一致性(C)事务的执行必须保证系统的一致性,就拿转账为例,A有500元,B有300元,如果在一个事务里A成功转给B50...原创 2018-06-23 20:50:38 · 13706 阅读 · 0 评论 -
分布式系统中的cap原则
cap原则:CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性)可靠性?,三者不可得兼 [1] 。实际体现:我们的eureka和zookeeper的服务治理使用了cap原则eureka宁可接受故障实例,也不愿意丢掉健康的实例,zookeeper则比较严格,对于故障实例会直接...原创 2018-06-23 19:31:19 · 856 阅读 · 0 评论 -
我用过的工厂模式
将类的路径和类的别名写在配置文件中,写一个工厂工具类,读取配置文件,方法的参数是类的别名。这样,当我们创建对象的时候,就调用工厂的工具类,将别名作为参数。这样工厂就可以拿到类的全路径。可以通过反射创造出类的路径。...原创 2018-06-23 18:57:39 · 195 阅读 · 0 评论 -
是否应该使用外键
外键可以保证数据的完整性。对于大型系统:在安全要求高,性能要求不高的系统中,必须使用外键在性能要求高的系统中,我们可以不使用外键,提高效率,安全由自己控制。我们在程序中控制。没有外键更加灵活。小系统可以使用,可以不使用...原创 2018-06-23 16:38:50 · 885 阅读 · 0 评论 -
数据库索引的利弊
索引是什么?索引是一种加速数据存取的数据对象,合理利用索引可以大大减少I/O请求次数,从而提高数据库的访问性能。什么情况下用索引?数据量很大,数据分布很广,要查询的数据占总数据的一小部分。列经常在where子句,或者连接条件中出现什么情况下不能用索引?数据量很小(表很小),列经常出现在where子句或者连接条件中,表数据频繁更新,oracle会频繁的重新改动索引,这样反而会降低数据库的性能。索引的...原创 2018-06-22 18:47:04 · 2589 阅读 · 0 评论 -
字符串比较面试题的原理
字符串比较实际上比较的是引用1.变量相加,会在常量池中重新开辟一个空间。2.常量相加,会在常量池寻找,有就返回,没有就创建4. String a = new String("abc"); 这样会有两个引用,a指向的是堆内存。...原创 2018-06-22 09:07:05 · 238 阅读 · 0 评论 -
重载与重写
都是实现多态的方式重载是编译器多态重写是运行期多态重载只要求方法名相同,参数不同返回值并不能区分重载,因为不能根据返回值确定引用哪个函数。重写要求方法的声明相同,只有内容不同根据里氏代换原则,重写的方法不能声明比父类更多的异常。...原创 2018-06-20 19:18:07 · 138 阅读 · 0 评论 -
当一个对象被当作参数传递到一个方法后,是值传递还是引用传递
java中的方法只接受值传递。原创 2018-06-20 19:10:47 · 1505 阅读 · 0 评论 -
public,protected,default,private
public和private是我们最熟悉的,不用记。protected是本包及其子类可以用default是只有本包可以用。原创 2018-06-20 19:02:16 · 823 阅读 · 0 评论 -
我用过的装饰者模式
我用过装饰者模式处理过servlet的乱码。request请求会有乱码,我们通过装饰者模式对其进行装饰。1.用一个类实现要被装饰的这个类的接口2.用构造方法接受这个对象3.赋值给成员变量4.对改写要修改的方法5.不需要改写的方法调用被修饰着原来的方法...原创 2018-06-23 21:09:13 · 215 阅读 · 0 评论 -
spring中用到了哪些设计模式
1.单例模式对象的创建都是单例模式2.工厂模式beanfactory创建对象用的是工厂模式3.模版方法jdbcTemplate4.代理模式spring的AOP还有很多,但是暂时不懂,能说出来的就是这些。...原创 2018-06-23 21:32:21 · 1576 阅读 · 0 评论 -
mybaits的#和$的区别
#是占位符$是字符串拼接,$可能会引起sql注入的问题。原创 2018-06-24 18:30:05 · 408 阅读 · 0 评论 -
jdbc的执行流程
1.加载驱动2.通过drivermanager获取连接3.通过连接获取会话4.通过对会话的增删改查获取结果集5.处理结果集6.关闭资源mybaits和jdbc相比较?1.mybaits给我们维护连接池2.对结果集的处理更友好,给我们封装成对象3.把sql语句放在配置文件中,便于维护,而不用修改代码statement和 prestatement比较1.后者的安全性较高,可以防止sql注入。2.后者先...原创 2018-06-24 18:26:57 · 4954 阅读 · 0 评论 -
hashmap和hashtable的区别
hashmapkey值和键值可以为null,而hashtable不可以hashmap是线程不安全的,hashtable是线程安全的怎么样使用线程安全的hashmap?用collections的同步方法Map m = Collections.synchronizeMap(hashMap);另外,我们也可以使用ConcurrentHashMap,那么concurrentHashmap的数据结构是什么?...原创 2018-06-24 18:19:19 · 181 阅读 · 0 评论 -
sql的优化
1.我们电商系统中,尽量不会在数据库中做计算2.select 字段,而不使用select * 3.确定查询一条数据使用limit14.尽量不使用like关键字5.尽量不使用or关键字,可以用union代替6.尽量不使用子查询,使用join7.尽量不再条件中使用函数。 因为mysql存在缓存,如果条件相同,数据没有变动,会在混村中取值。而函数是未知的,mysql不能进行判断,所以不会走缓存。8.联合...原创 2018-06-24 18:16:33 · 248 阅读 · 0 评论 -
in走不走索引?可以用哪个关键字代替?
网上有很多人说in不走索引,事实上我经过执行计划自己测试发现,in明明就是走索引的。看来网上也不全可信啊。后来又查了以下,发现 MySQL 4.1 以上版本的 IN 是走索引的, 但4.0及其以下版本是不走索引的。 原来是这样,4.0以下确实是不走索引的,难怪之前有人说。可以用exist代替in,exit的执行效率要高。in是子查询。而exist是通过id关联,组成一张虚表,操作的是同一张表。...原创 2018-06-24 08:59:14 · 27942 阅读 · 2 评论 -
你参与开发的系统响应很慢?如何解决
对象没有被及时回收?有的资源没有被关闭?数据库方面设计有问题,sql语句需要优化?服务器受到工具,随着用户增多,性能出现问题?首先,我会先查看tomcat的日志。看看日志里有没有异常我会想是不是内存问题,垃圾回收机制没起作用。虚拟机的参数会不会有问题?这里有一篇大神的博客https://blog.csdn.net/zw19910924/article/details/78254267各种命令:to...原创 2018-06-23 23:59:38 · 1481 阅读 · 0 评论 -
jsp的九大内置对象和四大域对象
九大内置对象:request,response,page,pageContext,config,session,out,expectionapplication四大域对象:page,request,context,session,https://blog.csdn.net/bighuan/article/details/68925746...原创 2018-06-23 23:40:46 · 467 阅读 · 0 评论