
面试
程序员plus
这个作者很懒,什么都没留下…
展开
-
面试问题详解--了解Java中字符串的串联
通过优锐课的java架构学习中,学到了很多干货知识点,分享给大家参考学习。Java编程语言中的串联是将两个字符串连接在一起的操作。 你可以使用加法(+)运算符或字符串的concat()方法连接字符串。使用+运算符使用+运算符是连接Java中两个字符串的最常见方法。 你可以提供变量,数字或字符串文字(始终用双引号引起来)。例如,要组合字符串“我是”和“学生”,请输入:"I’m a" + "...原创 2020-02-19 14:45:29 · 459 阅读 · 0 评论 -
为什么 Java 坚持多线程不选择协程?
协程是非常值得学习的概念,它是多任务编程的未来。但是Java全力推进这个事情的动力并不大。先返回到问题的本源。当我们希望引入协程,我们想解决什么问题。我想不外乎下面几点:节省资源,轻量,具体就是:节省内存,每个线程需要分配一段栈内存,以及内核里的一些资源节省分配线程的开销(创建和销毁线程要各做一次syscall)节省大量线程切换带来的开销与NIO配合实现非阻塞的编程,提高系统的吞吐使...原创 2019-08-19 17:54:14 · 1810 阅读 · 1 评论 -
面试题解答系列:数组与链表
LeetCode相关题目参考1.两数之和参考答案:class Solution {public int[] twoSum(int[] numbers, int target) {int [] res = new int[2];if(numbers==null||numbers.length<2)return res;HashMap<Integer,Integer>...原创 2019-08-14 18:11:49 · 315 阅读 · 0 评论 -
面试题解答系列:LeetCode相关题目参考
LeetCode相关题目参考1.两数之和参考答案:class Solution {public int[] twoSum(int[] numbers, int target) {int [] res = new int[2];if(numbers==null||numbers.length<2)return res;HashMap<Integer,Integer>...原创 2019-08-14 18:20:51 · 190 阅读 · 0 评论 -
面试题解答系列:java newCachedThreadPool 线程池使用在什么情况下?
Executors 是一个Java中的工具类。提供工厂方法来创建不同类型的线程池。从上图中也可以看出,Executors的创建线程池的方法,创建出来的线程池都实现了ExecutorService接口。常用方法有以下几个:newFiexedThreadPool(int Threads):创建固定数目线程的线程池。newCachedThreadPool():创建一个可缓存的线程池,调用execut...原创 2019-08-10 17:30:19 · 2121 阅读 · 1 评论 -
面试题解答系列:Hibernate中一级缓存使用和详解
什么是一级缓存Hibernate创建每个Session对象时,都会给Session分配一块独立的缓存区,用于存放Session查询出来的对象,这个分配给Session的缓存区称之为一级缓存,也叫Session级缓存为什么使用一级缓存Session读取数据时,会优先向缓存区取数据,如果存在数据直接返回,不存在才会区数据库查询,从而降低了数据库的访问次数。提升了代码的运行效率如何使用一级缓存...原创 2019-08-15 18:22:01 · 196 阅读 · 0 评论 -
GC的两种判定方法:引用计数与引用链
原文转自:https://zhuanlan.zhihu.com/p/77760838作者:旧港94转侵删Java的一个重要优点就是通过垃圾收集器(Garbage Collection,GC)自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序的责任,而是GC或JVM的问题。其实,这种想法是不正确的,因为Ja...转载 2019-08-12 17:22:43 · 923 阅读 · 1 评论 -
两个对象相互引用会不会被GC?
两个相互引用的对象会被GC垃圾回收吗?答案应该是不会!只要对象、属性等存在被引用,GC都会过滤掉的,不会被回收。笔者就简单谈一谈其中的原理吧。判断对象是否存活,可以考虑以下方法。1、引用计数算法给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1。当引用失效时,计数器值就减1。任何时刻计数器为0的对象就是不可能再被使用的。但是主流的java虚拟机没有采用引用计数算法,其中最主要的原...原创 2019-08-12 17:30:26 · 2351 阅读 · 0 评论 -
面试题解答系列:Hibernate中二级缓存使用和详解
一.简介Gaving King曾经对别人说,hibernate最耀眼之处是hibernate的缓存机制。Hibernate为了降低应用程序对物理数据源的访问,使用了缓存机制。Hibernate缓存包括一级缓存和二级缓存。一级缓存又称"Session的缓存",是不能被卸载的。本文笔者为大家介绍的是Hibernate的二级缓存。二.二级缓存Hibernate的二级缓存又称为"SessionFac...原创 2019-08-16 15:57:08 · 286 阅读 · 0 评论 -
JAVA面试题 启动线程是start()还是run()?为什么?
面试官:请问启动线程是start()还是run()方法,能谈谈吗?应聘者:start()方法当用start()开始一个线程后,线程就进入就绪状态,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。但是这并不意味着线程就会立即运行。只有当cpu分配时间片时,这个线程获得时间片时,才开始执行run()方法。start()是方法,它调用run()方法.而run()方法是你必须...原创 2019-08-17 17:48:53 · 951 阅读 · 0 评论 -
面试题解答系列:排序算法的时空复杂度、稳定性分析
1.基本概念时间复杂度:一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法的语句执行次数称为语句频度或时间频度。记为T(n)。n称为问题的规模,当n不断变化时,时间频度T(n)也会不断变化。但有时我们想知道它变化时呈现什么规律,为此,引入时间复杂度概念。若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常数...原创 2019-08-09 18:20:27 · 1082 阅读 · 1 评论 -
面试题解答系列:算法连载之求解两个有序数组的中位数
问题给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。找出这两个有序数组的中位数。假设 nums1 和 nums2 不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]则中位数是 (2 + 3)/2 = 2.合并两个有序数组来获得中位数1、先将两个有...原创 2019-08-09 17:06:44 · 646 阅读 · 0 评论 -
面试题解答系列:在 Spring中如何注入java集合
您已经看到了如何配置基本数据类型使用value属性和使用标签的ref属性在你的bean配置文件中的对象引用。这两种情况下处理过单值到一个bean。现在什么样,如果你想通过多元价值,如Java Collection类型List, Set, Map 及 Properties。要处理这种情况,Spring提供了四种类型的如下集合的配置元素:元素描述list这有助于注入值列表Li...原创 2019-08-07 11:29:51 · 2325 阅读 · 0 评论 -
Java面试之战:基础第一回合
1、面向对象的特征有哪些方面?抽象:将同类对象的共同特征提取出来构造类。继承:基于基类创建新类。封装:将数据隐藏起来,对数据的访问只能通过特定接口。多态性:不同子类型对象对相同消息作出不同响应。2、访问修饰符public,private,protected,以及不写(默认)时的区别?protected 当前类,同包,异包子类。3、String 是最基本的数据类型吗?答:不是。J...原创 2019-08-03 16:13:23 · 164 阅读 · 0 评论 -
Mysql索引的了解:B-Tree(B-树)和B+Tree(B+树)
为什么会使用B-Tree和B+Tree,而不是二叉树、红黑树数据结构说索引之前需要先提到一点,树结构做查找时,最坏情况需要查找的次数是树的高度H,而对于Mysql来说,当数据文件很大时,就需要根据树的节点把对应的数据加载到内存中,也就是I/O。上面的形容中有几点信息:树高H影响查找次数;上一点中的每一次查找还会涉及到磁盘I/O;记 N 为 B-tree 中的 Key 的数据量,d 为...原创 2019-08-05 17:40:20 · 409 阅读 · 0 评论 -
socket 和mina 的区别
MINA,Grizzly[grizzly-nio-framework],xSocket都是基于 java nio的 server framework. 这里的性能缺陷的焦点是指当一条channel上的SelectionKey.OP_READ ready时,1.是由select thread读完数据之后再分发给应用程序的handler,2.还是直接就分发,由handler thread来负责读数...原创 2019-08-08 11:28:37 · 1002 阅读 · 0 评论 -
面试题解答系列:关系型数据库和非关系型数据的比较
一、关系型数据库关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织优点:1、易于维护:都是使用表结构,格式一致;2、使用方便:SQL语言通用,可用于复杂查询;3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。缺点:1、读写性能比较差,尤其是海量数据的高效率读写;2、固定的表结构,灵活度稍欠;3、高并发读写需求,传统关系型数据库来说,硬盘...原创 2019-08-06 16:01:51 · 1854 阅读 · 0 评论 -
面试题解答系列:单例模式:懒汉、饿汉以及双重检查
一、基本概念单例模式属于创建型设计模式。确保一个类只有一个实例,并提供该实例的全局访问点。实现: 使用一个私有构造函数、一个私有静态变量以及一个公有静态函数来实现。二、结构类图:私有构造函数保证了不能通过构造函数来创建对象实例,只能通过公有静态函数返回唯一的私有静态变量。三、几类经典单例模式实现1、懒汉式-线程不安全下面的实现中,私有静态变量 uniqueInstance 被延迟实例化,这样做...原创 2019-08-06 17:48:56 · 674 阅读 · 0 评论 -
面试题解答系列:java invokelater 以及invokeandwait
SwingUtilities中invokeLater和invokeAndWait介绍在Java中Swing是线程不安全的,是单线程的设计,这样的造成结果就是:只能从事件派发线程访问将要在屏幕上绘制的Swing组件。事件派发线程是调用paint和update等回调方法的线程,它还是事件监听器接口中定义的事件处理方法,例如,ActionListener中的actionPerformed方法在事件派发...原创 2019-08-06 18:08:39 · 324 阅读 · 0 评论 -
GC的三种收集方法:标记清除、标记整理、复制算法的原理与特点
一、什么是GCJava GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,在使用JAVA的时候,一般不需要专门编写内存回收和垃圾清理代码。这是因为在Java虚拟机中,存在自动内存管理和垃圾清扫机制。二、关于GC的三种算法1、复制算法(Copying):在JVM的堆内存当中,新生代使用的是复制算法。新生代的内存区域又分成Eden、Fro...原创 2019-08-13 16:47:47 · 4951 阅读 · 1 评论 -
面试题解答系列:GC收集器种类,CMS收集器与G1收集器的优缺点
原文转载来自:https://zhuanlan.zhihu.com/p/77967443作者:旧港94来源:知乎首先要知道 Stop the world的含义(网易面试):不管选择哪种GC算法,stop-the-world都是不可避免的。Stop-the-world意味着从应用中停下来并进入到GC执行过程中去。一旦Stop-the-world发生,除了GC所需的线程外,其他线程都将停止工作,...转载 2019-08-13 17:26:31 · 809 阅读 · 0 评论 -
面试题解答系列:解释Spring框架中bean的生命周期
Bean的生命周期:Bean的定义——Bean的初始化——Bean的使用——Bean的销毁Bean的定义Bean 是 spring 装配的组件模型,一切实体类都可以配置成一个 Bean ,进而就可以在任何其他的 Bean 中使用,一个 Bean 也可以不是指定的实体类,这就是抽象 Bean 。Bean的初始化Spring中bean的初始化回调有两种方法一种是在配置文件中声明init-m...原创 2019-08-07 11:02:20 · 7572 阅读 · 1 评论 -
面试题系列:TCP UDP HTTP 的关系和区别
TCP UDP HTTP 三者的关系:TCP/IP是个协议组,可分为四个层次:网络接口层、网络层、传输层和应用层。在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。在传输层中有TCP协议与UDP协议。在应用层有HTTP、FTP、TELNET、SMTP、DNS等协议。TCP 传送控制协议(Transmission Control Protocol):TCP是传输...原创 2019-08-02 16:50:33 · 1773 阅读 · 0 评论