面经详情

当前内容设置为仅微信小程序内可见

前往微信小程序

相关推荐

1487
Java
未通过感觉没戏
String 和StringBuffer的区别  JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。  Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。 ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。  HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。 HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。 HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。 Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。 最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步(如果是ArrayList:List lst = Collections.synchronizedList(new ArrayList());如果是HashMap:Map map = Collections.synchronizedMap(new HashMap());)。 Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。...查看更多
包含7个问题,3个回答
Q:String 和StringBuffer的区别 
2 年前 发布
6524
Java
确定通过确定通过
1.锁可以锁在哪里? Java为程序加锁的方式主要有两种:synchronized与Lock。1. synchronized可以修饰的作用域如下:-非静态方法(加的锁为对象锁);-静态方法(加的锁为类锁);-代码块(对象锁与类锁均可);2. Lock采用lock()对代码加锁,unlock()进行解锁1.获取Class对象2.通过Class对象获取构造方法3.通过构造方法调用newInstance()方法创建对象实例1. HTTP明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP)数据传输过程是加密的,安全性较好。2.使用HTTPS协议需要到CA(Certificate Authority,数字证书认证机构)申请证书,一般免费证书较少,因而需要一定费用。3. HTTP页面响应速度比HTTPS快,主要是因为HTTP使用TCP三次握手建立连接,客户端和服务器需要交换3个包,而HTTPS除了TCP的三个包,还要加上ssl握手需要的9个包,所以一共是12个包。4. http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。5. HTTPS其实就是建构在SSL/TLS之上的HTTP协议,所以,要比较HTTPS比HTTP要更耗费服务器资源。1. TCP/IP是一个协议簇,是一个开放的协议标准,所有人都可以免费使用,并且是独立于硬件和操作系统的。2. TCP/IP协议是不区分网络硬件的,它在局域网,广域网和互联网中都被广泛使用。3. TCP/IP协议使用统一的网络地址分配的方案,网络中的每台电脑都具有唯一的IP地址。4. TCP/IP协议是一个标准的高层协议,拥有极高的可靠性,可以为用户提供可靠的服务。IOC的主要应用场景体现在BeanFactory接口,BeanFactory下面有具体的实现类来实现IOC的功能。AOP的主要应用场景:日志、权限、事物等。Spring容器中的Bean本身不具备线程安全的特性,但是具体还是要结合具体scope的Bean去研究。1. Spring容器中的Bean默认是单例的,所有线程都共享一个单实例的Bean,因此是存在资源的竞争。如果单例Bean,是一个无状态Bean,也就是线程中的操作不会对Bean的成员执行查询以外的操作,那么这个单例Bean是线程安全的。比如Spring mvc的Controller、Service、Dao等,这些Bean大多是无状态的,只关注于方法本身。对于有状态的bean,是线程不安全的,但是我们可以通过ThreadLocal去解决线程安全的方法。2.对于原型Bean(即scope="prototype"),每次创建一个新对象,也就是线程之间并不存在Bean共享,自然是不会有线程安全的问题。package是把jar打到本项目的target下,而install时把target下的jar安装到本地仓库,供其他项目使用。简单工厂模式:是由一个工厂对象创建产品实例,简单工厂模式的工厂类一般是使用静态方法,通过不同的参数的创建不同的对象实例可以生产结构中的任意产品,不能增加新的产品抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需制定他们具体的类,生产多个系列产品生产不同产品族的全部产品,不能新增产品,可以新增产品族ls -用来显示目标列表cd -用来切换工作目录pwd -以绝对路径的方式显示用户当前工作目录cat -文件内容查看grep -是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来tail -输出文件中的尾部内容ps -用于报告当前系统的进程状态kill -命令用来删除执行中的程序或工作top -可以实时动态地查看系统的整体运行情况JDK1.7:先对数组的长度增加一倍,然后遍历原来的旧的table数组,把每一个数组元素也就是Node链表迁移到新的数组里面,最后迁移完毕之后,把新数组的引用直接替换旧的。JDK1.8:扩容时候会判断这个值,如果超过阈值就要扩容,首先根据运算得到需要遍历的次数i,然后利用tabAt方法获得i位置的元素f,初始化一个forwardNode实例fwd,如果f == null,则在table中的i位置放入fwd,否则采用头插法的方式把当前旧table数组的指定任务范围的数据给迁移到新的数组中,然后给旧table原位置赋值fwd。直到遍历过所有的节点以后就完成了复制工作,把table指向nextTable,并更新sizeCtl为新数组大小的0.75倍,扩容完成。在此期间如果其他线程的有读写操作都会判断head节点是否为forwardNode节点,如果是就帮助扩容。...查看更多
包含11个问题,5个回答
Q:1.锁可以锁在哪里?
2 年前 发布

进入微信小程序

前往微信小程序,查看更多结果

立即前往
看准网软通动力软通动力面试经验软通动力面试经验:面试java感觉靠谱