zoukankan      html  css  js  c++  java
  • java研发常见问题总结 1

    1.java中所有类的父类是什么?他都有什么方法?

      Object类是所有类的直接或间接基类,如果一个类在声明时未继承基类,Java就默认其基类是Object,故Object被称为根类。该类位于java.lang包中,它有如下几个常用方法:
      equals():      用于比较两个对象是否指向同一块内存区域,相当于==运算符。(注意:在String类中,已将该方法改写比较字符串内容是否相同);
      hashCode(): 返回该对象的哈希码值(返回该对象的存储地址,整数),用于标识一个对象,如果两个对象相等,则哈希码值一定相同;
      toString():    返回值是String类型,描述当前对象的有关信息,当对象与String型数据的连接时,自动调用其toString()方法。

    2.java中IO包下面的inputstream运用了什么设计模式?请简述你知道的设计模式?

      Decorator模式,主要功能是给一个对象动态的添加一些额外的功能,添加一个装饰,装饰必须与被装饰的组件继承于同一个接口,这样用户就不用担心装饰的集体实现,因为对他们老说是透明的。

      java I/O 的设计模式主要有装饰模式(decorator)和适配器模式。

    3.ArrayList跟LinkedList的区别详细说出?

          1). ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。

          2). 对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 

          3). 对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据 

    4.session和cookie的区别?

       话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。(http://blog.csdn.net/fangaoxin/article/details/6952954)

      1、session数据保存在服务器,cookie数据保存在客户端。

      2、cookie不是很安全,别人可以分析存放在本地的cookie进行cookie欺骗,为安全考虑应当使用session(登录个人信息存放在session,其他信息存放在cookie)

      3、session数据会一定时间保存在服务器上,当访问增多时,会影响服务器性能,考虑到服务器性能应该使用cookie。

      4、一个cookie保存的数据不能超过4k,一般浏览器限制一个站点不能超过20个cookie。

    5.说一下快速排序的原理?

      原理:通过一趟排序把待排序记录划分为两部分,其中一部分的关键字均小于另一部分关键的大小,然后在分别再对这两个部分进行进行排序,以达到整个序列有序。

      具体做法:附设两个指针low和high,分别设初值为low和high,设枢轴记录的关键字为key,并暂存于r[0],首先从high所指向的位置开始,向前一步搜索找到第一个关键字小于key的记录与low所指向的记录进行交换,然后在从low所指向的位置向后搜索找到第一个关键字大于key的记录与high指向的记录交换,重复上述两步骤,直到low=high相等,才得到枢轴记录的正确位置。插入即可。

    6.如何在hibernate中查看原始的sql语句

      Hibernate是一个开放源代码的对象关系映射框架,它对JDBC(Java Data Base Connectivity,java数据库连接,是一种用于执行SQL语句的Java API)进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。

    8.struts2的流程?

    9.简述下多线程?


    进程是指运行的程序,每个进程分配一定的内存空间,一个进程中存在多个线程,启动一个java虚拟机,就是打开一个进程,当进程中同时运行多个线程,叫做并发。

    线程的实现方式有两种:继承Thread类和实现Runnable接口,通过覆盖run()方法来实现线程的行为。

    线程状态:

    New状态,使用new新建一个线程对象处于新建状态,仅仅在堆栈中分配了内存。

    Runnable就绪状态,线程调用start()方法后,线程就进入就绪状态,虚拟机为它创建方法调用栈和程序计时器,处于这个状态线程可进入可运行池中,等待获取cpu使用权。

    Runnabing运行状态,这个状态的线程处于cpu的使用状态,如果计算机只有一个cpu,则有一个线程处于这个状态,如果有多个cpu,则有多个线程占用不同的cpu,只有处于就行状态的线程才才有机会变为运行状态。

    阻塞状态,线程由于某些原因放弃了cpu,此时不为线程分配cpu,直到线程重新进入到就绪状态。(阻塞原因:wait()、sleep()、I/O、其他原因)

    调度方式:分时调度和抢占式调度。

    12.java有些类中为什么需要实现Serializable接口?

    Serializable接口,是java提供的通用数据存储和读取的接口,实现serializable接口的对象可以转换成字符流,这样就可以将对象存储在文件中,或是作为数据流通过网络传输到其他地方去,或是通过管道传输到系统的其他程序中,这样设计就极大的简化了类的设计,应用于分布式应用系统中。

    13.hashmap,hashtable的区别?以及如何使用,以及他的一些方法?


    第一,继承不同。public class Hashtable extends Dictionary implements Map

    public class HashMap extends AbstractMap implements Map

    第二,Hashtable 中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的。在多线程并发的环境下,可以直接使用Hashtable,但是要使用HashMap的话就要自己增加同步处理了。

    第三,Hashtable中,key和value都不允许出现null值。

    在HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。当get()方法返回null值时,即可以表示 HashMap中没有该键,也可以表示该键所对应的值为null。因此,在HashMap中不能由get()方法来判断HashMap中是否存在某个键, 而应该用containsKey()方法来判断。

    第四,两个遍历方式的内部实现上不同。Hashtable、HashMap都使用了 Iterator。而由于历史原因,Hashtable还使用了Enumeration的方式 。

    第五,哈希值的使用不同,HashTable直接使用对象的hashCode。而HashMap重新计算hash值。

    第六,Hashtable和HashMap它们两个内部实现方式的数组的初始大小和扩容的方式。HashTable中hash数组默认大小是11,增加的方式是 old*2+1。HashMap中hash数组的默认大小是16,而且一定是2的指数。 

    方法:get(key),remove(key),put(key,value),contains:containKey,containValue

    ,isEmpty()...

    14.设计题,利用hashmap对苹果的重量进行排序?

    15.struts2拦截器相关问题

    16.struts2接受参数的方式

    17.数据结构

    18.异常的相关问题?error和exception具体?

    19.还问了个MYSQL如何查看运行状态

    20.问了一些关于collections的方法?

    21.servlet相关知识,doPost,doGet,一些内置对象?

    23.set和list的区别,一些个实现类,继承关系等等?

    24.在Hibernate中java的对象状态有哪些?

    25.简述你看过java类的源代码?

    26.数据库事务隔离机制及其特点是什么?

    27.JVM内存heap and stack

    28.HTTP报文包含内容?

    29.TCP/IP三次握手?

    30.垃圾回收?

    31.其他问了未来规划,在学校学的最好的一门,然后教育了下我说大公司注重基础跟潜力,小公司注重上来就会做事,要多看源码多看jdk注重java基础!!!

    1.什么是 java 序列化, 如何实现 java 序列化?或者请解释 Serializable 接口 接口的作用?

    2.MVC的各个部分都有那些技术来实现? 如何实现?
    3.开发中主要使用 Spring 的什么技术 ?
    4.对Spring的理解,项目中都用什么?怎么用的?对IOC、和AOP的理解及实现原理?
    5.hashmap底层如何实现的?
    6.arrayList底层如何扩展的?
    7.谈谈Hibernate的理解,一级和二级缓存的作用,在项目中Hibernate都是怎么使用缓存的?
    8.谈谈你在项目中的角色?
    9.你做过的项目模块实现?
    10.线程同步,并发操作怎么控制?
    11.servlet容器启动过程,生命周期?
    12.SQL关联关系?
    13.list去重?
    14.arraylist和hashmap在内存中开销?
    15.sql行转列?

  • 相关阅读:
    CentOS离线状态下安装Python3.7.0
    SQL练习题
    ajax的工作原理
    总结 XSS 与 CSRF 两种跨站攻击
    转css中文英文换行、禁止换行、显示省略号
    vue项目的搭建
    转axios 的应用
    rem布局计算(移动端,pc端有兼容性)
    rem
    彻底弄懂css中单位px和em,rem的区别
  • 原文地址:https://www.cnblogs.com/zxqstrong/p/5291399.html
Copyright © 2011-2022 走看看