• 热门专业
  • 软件工程师 >
  • Java工程师 >
  • 高中生专业 >
  • 初中生专业 >
  • 高薪就业
  • 合作企业 >
  • 就业指导 >
  • 就业喜报 >
  • 就业感言 >
  • 学员作品 >
  • 校区新闻
  • 活动专题 >
  • 校园新闻 >
  • 行业新闻 >
  • 综合文章 >
  • 热门专题
  • 学士后Java >
  • Accp软件师 >
  • 学编程专题 >
  • 学技术专题 >
  • 待业专题 >
  • 学习专区
  • 学历末班车
  • 我的位置: 主页 > 学习专区 > 数据库技术 > > J05班面试总结(下)

    J05班面试总结(下)

    2018-04-14 09:57:51 广西北大凯发k8ag南宁弘睿校区
    [导读] 十二、Comparable和Comparator接口是干什么的?列出它们的区别 java提供了只包含一个comparaTo()方法的Comparable接口。这个方法可以给两个对象排序。 具体来说,它返回负数,0,正数来表明输入对象小于,等于,大于已经存在的对象。

    十二、ComparableComparator接口是干什么的?列出它们的区别

             java提供了只包含一个comparaTo()方法的Comparable接口。这个方法可以给两个对象排序。

    具体来说,它返回负数,0,正数来表明输入对象小于,等于,大于已经存在的对象。

             java提供了包含compare()equals()两个方法的Comparator接口。compare()方法用来给两个输入参数排序,返回负数,0,正数,表明第一个参数是小于,等于,大于第二个参数。

    equals()方法需要一个独享作为参数,它用来决定输入参数是否和comparat相等。只有当输入参数也是一个Comparator并且输入参数和当前Comparator的拍寻结果是相同的时候,这个方法才返回true

    十三、单例模式是什么?用代码写一个单例模式

             单例模式是最简单的设计模式:整个程序中只允许有唯一的一个对象(这个类只能实例化一次)

             //懒汉,线程安全

             public class Singleton{

                       private static Singleton instance;

                       private Singleton(){}

                       public static synchronized Singleton getInstance(){

                                if(instance == null){

                                         instance = new Singleton();

                                }

                                return instance;

                       }

             }

    十四、spring mvc处理Http请求的大致过程:

                       1、用户发起请求,请求到DispatcherServlet前端控制器

                                DispatcherServlet(中央调度),负责requestresponse,负责调用处理器映射器查找Handler,负责调用处理器

                                适配器执行Handler,有了前端控制器降低了各个组件之间的耦合性,系统扩展性提高。

                       2DispatcherServlet前端控制器请求处理器映射器HandlerMapping查找Handler

                                根据用户请求的url,根据一定的规则去查找(比如:xml配置,注解)

                       3HandlerMapping处理器映射器将Handler返回给前端控制器

                       4DispatcherServlet前端控制器调用HandlerAdapter处理器适配器执行Handler

                                程序员编写的Handler是按照适配器要求的规则去执行Handler

                       5HandlerAdapther处理器适配器执行Handler

                                适配器按照一定规则去执行Handler

                       6Handler执行完成,返回ModelAndView

                      7HandlerAdapter处理器适配器将ModelAndView返回给前端控制器

                       8、前端控制器调用视图解析器,进行视图解析,解析完成给前端控制器返回View

                                viewspringmvc的封装对象,是一个接口,实现类包括jspviewpdfview。。。

                       9、前端控制器调用view进行视图渲染

                                将模型数据填充到view(将model数据填充到request)响应给用户

                       10、前端控制器响应给用户。

    十五、服务器端解决跨域问题的三种方法

                       跨域是指html文件所在的服务器与ajax请求的服务器是不同的ip+port,例如:

                                192.168.1.1:8080 192.168.1.2:8080’是不同的域。

                                192.168.1.1:8080 192.168.1.1:8081’是不同的域。

                       第一种:如果您使用的mvc框架是spring4.2以上的话,一个@CrossOrigin就可以搞定。将@CrossOrigin加到Controller上,那么这个Controller所有的请求都是支持跨域的,代码如下:

                                @Controller

                                @CrossOrigin

                                public class GreetingController{}

                       @CrossOrigin加到请求方法上,那么这个请求是支持跨域的,代码如下

                                @CrossOrigin

                                @RequestMapping("/greeting")

                                public @ResponseBody Greeting greeting(@RequestParam(required=false, defaultValue="World") String name) {

                       第二种:全局配置,也需要spring4.2以上。

                                @Bean

                                public WebMvcConfigurer corsConfigurer(){

                                         retrun new WebMvcConfigurerAdapter(){

                                                   @Override

                                                   public void addCorsMappings(CorsRegistry registry){

                                                  

             registry.addMaping("/greeting-javaconfig").allowedOrigins("http://localhost:9000");

                                                   }

                                         };

                                }

                                .addCorsMappings()中的参数代表支持跨域的url.allowedOrigins()中的参数代表可以访问该接口的域名,设置为" *",可支持所有域。

                       第三种:这种方法就跟框架无关了,需要两个jar包,点击这里进行下载,两个jar包可以放得程序里,也可以放到tomcat中,然后将下面的配置写到web.xml中就可以了

    十六、什么叫死锁?产生死锁的条件和预防死锁的各种方法?

    a)         所谓死锁:是指两个或两个以上的线程在运行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,他们都将无法推进下去。

    b)         那么为什么会产生死锁呢?

    i.           因为系统资源不足。

    ii.         线程推进的顺序不合适

    iii.        资源分配不当

    死锁的产生有四个必要条件:

    1、互斥使用(资源独占),任意时间内进程对其占有的资源有排他控制性,其他申请的进程必须等待

    2、非剥夺控制,除非是进程自动放弃对资源的占有,否则其他进程无法强制使其释放,即使它处于阻塞态

    3、零散请求,即进程可根据自己的需求在不同的时间发出申请,而不必集中在一起申请,当申请不到资源时,也不会改变其原先占有的资源

    4、循环等待,等待资源的进程形成了一个封闭的链,链中进程都在等待下一进程结束,陷入了无休止的等待当中

    四个条件,破坏其一,就不属于死锁了

    预防死锁的各种方法

    在系统设计中,进程调度等方面注意如何不让着四个必要条件成立。

    1、确定资源的合理分配。

    2、避免进程永久占据系统资源。

    3、防止进程在处于等待状态的情况下占用资源

    十七、java多线程中synchronizedlock的区别

    a)         主要相同点:Lock能完成synchronized所实现的所有功能。

    b)         主要不同点:Lock有比synchronized更精确的线程语义和更好的性能。Synchronized会自动释放锁,而Lock一定要求程序员手工释放,并且必须在finally从句中释放

    十八、nginxredis配置

    a)         Nginx        有三个模块 一个http核心模块 nginx核心模块 event核心模块

    i.           http模块中配置  upstream    这里写你需要配置的那个服务器的ip和端口号,前面加个server空格 这是第一种配置 叫轮询

    ii.         第二种是基于权重的负载均衡     在轮询的基础上,server指令后面加上weight weight=1,2,3,4,5 比如两个服务器都是1 则给的请求数一样

    iii.        第三种基于iphash

     

    Nignx配置反向代理和静态代理

    Http模块中配置vhosts配置文件 该文件主要是各个服务器的参数

     #include vhosts

    Vhosts文件中配置的是各个服务器(NFS文件服务器)的参数: server(这里的server指令跟upstream指令是同一等级的指令) / {

    Listen:80;

    ...

    ..

    Proxy_pass : http://localhost:8080/img

    }

    server / {

    Listen:80;

    ...

    Proxy_pass : http://localhost:8080/img

    }

    执行流程;假如nginx接收到一个要静态文件的请求,nginx会根据你请求的路径将请求分配给各个nfs文件服务器,返回给客户端 客户端再次请求后就会直接访问文件服务器。

     

    Redis

    五种数据类型         1String         2List     3set      4sort set      hash

    十八、mybatishibernate

    a)         Hibernate的查询会将表中的所有字段查询出来,这一点会有性能消耗。

    b)         Hibernate也可以自己写SQL来指定需要查询的字段,但这样就破坏了hibernate开发的简洁性。而mybatisSQL是手动编写的,所以可以按需求指定查询的字段

    c)         Join会比in的效率更高 mybatis可以自己写确定效率最高,而hibernate却不一定是效率最高的SQL

    十九、使用final关键字修饰一个变量时,是指引用变量不能变,但是引用变量所指向的对象中内容还是可以改变的。

    Math.round11.5)的结果为12Math.round(-11.5)的结果为-11

    接口可以继承接口。抽象类可以实现接口,抽象类是可以继承具体类。抽象类中可以有静态的main方法。抽象类与普通类的唯一区别就是不能创建实例对象和允许有abstract方法

    abstractmethod是否可同时是static,是否可同时是native,是否可同时是synchronized?              都不能

    匿名内部类是否可以extends(继承)其它类,是否可以implements(实现)interface

    匿名内部类本身就是通过继承类或者接口来实现的。但是不能再显示的extends或者implements了。

     

    二十、SQL优化

    1、选择最优效率的表明顺序       ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表将被最先处理

    a)         如果三个表示完全无关系的话,将记录和列名最少的表,写在最后,然后依次类推

    b)         如果三个表示有关系的话,将引用最多的表,放在最后,然后依次类推

    2、WHERE子句中的连接顺序               ORACLE采用自右而左的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其它WHERE条件之左,那些可以过滤掉最大数量记录的条件必须写在WHERE子句的之右。

    3、SELECT子句中避免使用*    ORACLE在解析的过程中,会将*以此转换成所有的列名,这个工作是通过查询数据字典完成的,这意味着将耗费更多的时间

    4、使用DECODE函数来减少处理时间       使用DECODE函数可以避免重复扫描相同记录或重复连接相同的表

    5、整合简单,无关联的数据库访问

    6、TRUNCATE替代DELETE

    7、尽量多使用COMMIT       因为COMMIT会释放回滚点

    8、WHERE子句替换HAVING子句           WHERE先执行,HAVING后执行

    9、多使用内部函数提高SQL效率

    10、使用表的别名         salgrade  s

    11、使用列的别名

    12、用索引提高效率     在查询中,善用索引

    13、字符串型,能用=号,不用like    因为=号表示精确比较,like表示模糊比较

    14、SQL语句用大写的           因为ORACLE服务器总是先将小写字母转成大写后,才执行

    15、避免在索引列上使用NOT     因为ORACLE服务器遇到NOT后,他就会定制目标的工作,转而执行全表扫描

    16、避免在索引列上使用计算

    17、 >= 替代 >

    18、in替代or

    二十一、流

    根据处理数据类型的不同分为:字符流和字节流

    根据数据流向不同分为:输入流和输出流

    InputStream是所有的输入字节流的父类,它是一个抽象类

    OutputStream是所有的输出字节流的父类,他是一个抽象类

    Reader是所有的输入字符流的父类,它是一个抽象类

    Writer是所有的输出字符流的父类,它是一个抽象类


    热点专题
    >>
  • 1南宁北大凯发k8ag学员荣获全国IT精英挑战赛“三等奖”
    北大凯发k8ag第五届IT全国精英挑战赛,南宁弘睿校区荣获三等奖!
  • 2关于2018年“百人计划”招生通知文件
    2016年国家提出“互联网+行动计划”,广西自治区人民政府为了响应国家的发展政策,提出大力发展软件和信息技术行业,打造“世界软件名城”。我校为了响应国家的号召特向北大凯发k8ag总部申请“百人计划”,打造以高目标、高标准和高品质的IT人才培养计划,特开设“百人计划”实验班,具体实施细则如下:
  • 3如何成功转行互联网
    最近听到很多人都在讨论与“金三银四”相关的问题。那么如果想往IT行业发展的在职和非在职人群,我们应当如何给他建议呢?广西北大凯发k8ag南宁弘睿校区广西地区唯一一家北大凯发k8ag就业示范校区,也是广西地区唯一一家北大凯发k8ag,
  • 4学计算机上专科学校好还是计算机培训机构好?
    本来大学和培训机构的对比是没有意义的,因为大学也分档次,培训机构也有好坏,都不能一概而论。既然提到是专科大学,也就是高考成绩300-400分左右录取的那种低分档次的大学的话,那就可以来具体分析一下了。
  • 5“JAVA快过时”?
    近期,斯坦福大学在最近更新的《程序设计方法学》入门课程中“决定用JavaScript替换掉此前主修的Java语言”这一消息引起JAVA学习者一阵恐慌。
  • 62018北大凯发k8ag南宁弘睿软件学院春季招生简章
    北大凯发k8ag南宁软件学院位于南宁市西乡塘区(广西民族大学北门),北大凯发k8ag南宁弘睿校区办学5年,培养了上千名IT专业人才。被评为“全国五星级直营校区”、“全国就业示范校区”、“西南地区教师进修基地”、“教学质量最佳校区”、“广西5A级教育机构”等荣誉。2016年国家提出“互联网+行动计划”,南宁市人民政府为了响应国家的发展政策,提出大力发展软件和信息技术行业,打造“全国软件名城”。
  • 7大学待业在家里应该怎么办?
    大学毕业如果是因为找不到工作的原因待业在家的话,就应该利用这段时间踏踏实实地学一门技术,学完之后凭借学到的技术就业。对于大多数人来说,找不到工作的原因就是在于没有实际的技能,学校培养出来的学生所拥有的能力和许多企业在招聘的时候的要求没有相符合。
  • 8南宁哪家电脑学校的口碑好?
    口碑都是靠人传出来的,一所口碑好的学校必然是值得信赖的。在贵阳,北大凯发k8ag电脑学校的报名学生有60%都是来自于口碑。是亲戚朋友认为贵阳北大凯发k8ag是一所不错的学校,所以介绍学生到校
  • 9学习编程自学和学校的区别
    有很多人都有一个观点,就是市面上编程的书那么多,网上的教程又是那么多。我干嘛花那个冤枉钱,去大学里学,去培训机构学?又没有什么区别的。这是一个很普遍的问题,很多人也都不相信,在家里学不会到机构里就能学的会么。以下就是北大凯发k8ag南宁弘睿学校的老师对其的解答。学习编程自学和学校的区别:
  • 10年年都是“史上最难就业季”,怎么破?
    “2017年的高校毕业生795万以上,再创历史新高……” 似乎每逢毕业季,都能从各种媒体上看到“大学生就业形势严峻”的新闻。大家似乎已经习惯了每年都是“最难就业季”,每年都有无数的大学生“毕业等于失业”。 全国各高校毕业生的人数正逐年增加,再加上中职毕业生,回国的海外留学生,工作竞争压力,可见一斑。 今天和大家来分析大学生就业难的原因,以及如何去破解就业难。
  • 相关文章推荐
    >>
  • 北大凯发k8ag新生开学第一课,军训了解一下!
    如果说学生时代是一本丰富多彩的书籍,那么军训就是这本书里最特殊的一页。不论是初中生活、高中生活、大学生活,军训都是陪伴我们的第一堂课,是我们学生生涯中一段“不可或缺”的回忆。
  • 高考录取分数线出炉,南宁弘睿北大凯发k8ag为同学提供
    广西划定2018年普通高校招生录取最低控制分数线6月23日上午,自治区招生考试委员会召开全体会议,审定了我区2018年普通高校招生录取最低控制分数线。我区2018年普通高校招生录取最低控制分数线为
  • 南宁弘睿北大凯发k8ag校园线上公开课
    应广大学生、家长要求,南宁北大凯发k8ag软件职业学院兹定于2018年6月22日(周五)20:00开展线上公开视频授课。
  • 喜报◀ ▎▎▶合作共赢我校与广西新美冠科技有限公司签订校企合作定向培养协议
    6月19日,南宁北大凯发k8ag弘睿校区与广西新美冠科技有限公司签订校企合作定向培养协议。
  • 高考分数查询,录取院校查询
    高考分数线查询,高考录取院校查询方式时间如下:
  • 实习找不到工作怎么办?来北大凯发k8ag学java吧
     马上又要到新的一个学期了,而对于大四的学生来说,这是一个非常期待的时期,也是一个非常焦虑的时候,因为马上就要走向社会去实习。在进入职场之前,是不是很多人都觉得很迷茫呢?有没有觉得现在的工作很难找呢?如果实习找不到工作该怎么办呢?来北大凯发k8ag学java吧,现如今高科技时代,IT行业是个不会衰落的行业,也将是一个不错的选择。
  • 北大凯发k8ag:IT培训学校解析
    如今互联网已经完全融入了我们的日常生活当中,人们现在在哪处处都离不开互联网。对于很多不了解“IT”行业人来说的人光听都觉得很高大上,是一个很接近现代社会现在发展的行业。随着互联网公司每年都在增长,很多传统企业也慢慢走向互联网发展,所以现在的IT人才缺口量也比较大,IT人才供不应求,而且相对其他行业的薪资待遇也是比较可观。
  • 你具备学习Java软件开发培训的条件吗?
    因为现在是一个互联网主流的时代,每个人都离不开互联网,许多公司和企业都需要在软件开发方面的人才。
  • 学java,来北大凯发k8ag
    21世纪,互联网的发展速度已经超出了我们的想象,而我们身边的信息产物也随处可见。随着IT行业风生水起的发展,尤其是软件开发行业广受追捧,前景非常可观,越来越多的人为了顺应时代的发展,纷纷投入到软件开发的学习当中,而Java作为软件开发的重要编程语言,成为众多初学者的首选。
  • 行业分析:学IT有用吗?现在学IT就业前景如何?
    随着社会现代化高速发展,IT行业会成为新时代的最佳就业选择。现在,很多人非常关注IT行业,但在刚开始接触这个行业之前,往往都会抱着这样的困惑:学IT有用吗?现在IT行业的就业前景如何呢?
  • 网站导航
    合作企业
    学员作品
    凯发k8ag就业 学习专区
    学历末班车
    南宁找工作
  • 课程设置
    软件工程师 HOT
    北大凯发k8ag学校
    Java工程师
    Html5
    凯发k8ag职业学校
  • 精彩专题
    大学生待业人群
    电脑编程入门
    互联网职业经理人
    初中生人群
    电脑计算机培训
  • 热点话题
    北大凯发k8ag学校介绍
    IT面对面 大型免费试学活动 全城招募
    北大凯发k8ag怎么样?
    实力北大凯发k8ag
    南宁计算机培训,出路在哪,你想...
    南宁网络工程师培训哪家好?南宁...
  • 联系我们
    南宁北大凯发k8ag

    微信服务

    电话:400-0988-116