
Java
文章平均质量分 67
Bob Liu
这个作者很懒,什么都没留下…
展开
-
Java集合面试题(03) Java中HashMap和HashTable之间区别
虽然Hashtable和HashMap都是基于散列表的数据结构,并且都实现了Map接口,但它们的主要区别在于HashMap不是线程安全的,而Hashtable是线程安全的。这意味着你不能在没有同步的情况下在多线程Java应用程序中使用HashMap。另一个区别是HashMap允许一个空键和空值,但是Hashtable不允许空键或值。而且,HashTable的线程安全性是使用内部同步实现的,翻译 2017-11-21 15:24:32 · 6447 阅读 · 0 评论 -
Java集合面试题(02) Java中List和Set之间区别
Java中List和Set之间有什么区别是一个非常流行的Java集合面试问题,也是在Java中使用Collection类时要记住的一个重要的基本概念。 List和Set都是Java程序最重要的Collection类中的两个,以及各种Map实现。 List和Set的基本特征在Java的List和Set接口中被抽象出来,然后List和Set的各种实现都在相应接口之上增加了特定的特征。例如,Java中的ArrayList是由Array支持的List实现,而LinkedList是另一个像链接列表数据结构一样工作的L翻译 2017-11-21 11:44:20 · 2413 阅读 · 0 评论 -
Java算法面试题(005) 求n边形周长的k等分点坐标(今日头条)
本题来自今天头条的笔试:有一个n边形(P0, P1, ..., Pn), 每一条边皆为垂直或水平线段。现给定数值k,以P0为起点将n边形的周长分为k段,每段的长度相等,请打印出k等分点的坐标(T0, T1, ..., Tk)的坐标。原创 2017-12-11 20:01:58 · 7975 阅读 · 5 评论 -
Java算法面试题(002) 如何通过一次迭代找到LinkedList的中间元素
Java和非Java程序员在电话面试中经常被问及如何仅一次遍历查找到LinkedList的中间元素。这个问题类似于检查回文或者计算阶乘,面试官有时也会要求编写代码。为了回答这个问题,候选人必须熟悉LinkedList数据结构,即在单LinkedList的情况下,链表的每个节点都包含数据和指针,它是下一个链表节点的地址,单链表的最后一个元素指向null。由于为了找到链表的中间元素,你需要找到LinkedList的长度,这需要对链表节点进行计数直到最后一个元素为止。让这个数据结构面试问题有趣的是,你需要在一次遍翻译 2017-11-22 22:54:49 · 2479 阅读 · 0 评论 -
Java算法面试题(009) 毒酒问题
1000桶酒,其中1桶有毒。用小老鼠做实验,一旦吃了有毒的酒,一周后小老鼠毒性就会发作而亡。问如何在最短的时间内用最少的老鼠找到那桶有毒的酒?原创 2017-12-20 21:45:52 · 2613 阅读 · 1 评论 -
Java线程面试题(03) Java中的volatile如何工作? Java中的volatile关键字示例
什么是Java中的volatile变量以及何时使用Java中的volatile变量是一道Java面试中经常被问及的多线程访问问题。尽管许多程序员知道什么是volatile变量,但是他们在回答第二部分问题什么地方使用volatile变量时失败,因为大部分人对Java中volatile变量并没有一个清晰的理解和应用。在本教程中,我们将通过提供一个Java中volatile变量的简单示例来解决这个问题,并讨论在Java中使用volatile变量的一些情况。无论如何,Java中的volatile关键字被用作Java翻译 2017-11-27 13:03:50 · 2491 阅读 · 0 评论 -
Java算法面试题(006) 相遇问题(阿里)
本题来自阿里的面试,题目为:有A,B两个人在X轴上,分别在零点的两侧,你只能写go_left(每次往左走一步),go_right(每次往右走一步),if_zero(判断当前位置是不是零点),goto (程序的第几行),这四个语句的程序,给A、B执行一样的程序,让他们相遇。原创 2017-12-15 22:38:38 · 1202 阅读 · 0 评论 -
Java线程面试题(04) Java中进程与线程的真实区别
编程面试的一个常见问题是线程和进程之间有什么区别?那么它们之间的主要区别在于一个进程是一个正在执行一些代码的程序,而一个线程是这个进程中的一个独立的执行路径。一个进程可以有多个线程来完成独立的任务,例如一个用于从磁盘读取数据的线程,一个用于处理该数据的线程以及另一个用于通过网络发送该数据的线程。这种提高吞吐量和更好地利用CPU能力的技术也被称为多线程技术。从技术上讲,线程之间最显着的区别是地址空间和上下文切换。进程中的所有线程共享相同的地址空间,但进程有自己的地址空间。类似地,进程之间的上下文切换比线程之间原创 2017-12-17 13:12:07 · 1160 阅读 · 0 评论 -
Java算法面试题(007) 蒙提霍尔问题(三门问题)
假设你正在参加一个游戏节目,你被要求在三扇门中选择一扇:其中一扇后面有一辆车;其余两扇后面则是山羊。你选择了一道门,假设是一号门,然后知道门后面有什么的主持人,开启了另一扇后面有山羊的门,假设是三号门。他然后问你:“你想选择二号门吗?”转换你的选择对你来说是一种优势吗?原创 2017-12-18 09:33:17 · 3170 阅读 · 0 评论 -
Java集合面试题(01) Java中ArrayList和Vector之间的区别
ArrayList和Vector是java集合包中最常用的两个类,Vector和ArrayList之间的区别是第一轮或电话采访中最常见的java面试问题之一。虽然在我看来这是一个相当简单的问题,但是知道什么时候使用Vector ArrayList,或者如果你正在处理一个项目,这个问题很重要。在本文中,我们将介绍Java中Vector和ArrayList之间的一些基于点的区别,并试图理解这些差异背后翻译 2017-11-21 10:18:22 · 1142 阅读 · 0 评论 -
Java线程面试题(02) Java线程中如何避免死锁
如何避免Java中的死锁?是多线程编程常见问题之一,在高级别的面试中经常被问及,并带来了大量的后续问题。尽管问题看起来很基本,但是一旦开始深入,大部分开发者都会陷入困境。面试问题从“什么是死锁?”开始。答案很简单,当有两个或更多的线程在等待对方释放锁并无限期地卡住时,这种情况就称为死锁。这只会发生在多线程的情况下。翻译 2017-11-21 14:13:08 · 8851 阅读 · 1 评论 -
Java线程面试题(01) Java中如何检查一个线程是否拥特定对象的锁
考虑一个场景,在运行时你必须找到一个Java线程是否对特定的对象加锁,例如,确认NewsReader线程是否持有NewsPaper对象的锁?如果这个问题出现在任何核心的Java面试中,那么我会自动假设可能有至少两个答案,一个是难以获得的原始答案,程序员想根据基本原理找出答案,而另一个可能是一些很少使用的Java API调用,顺便说一下,这实际上是在接受我最大的全球投资银行之一面试是被问到的问题。投资银行领域,特别是现金股票, 需要强大的核心Java和多线程技能来构建高性能,低延迟的Java应用程序,以处理每翻译 2017-11-21 12:50:14 · 4777 阅读 · 0 评论 -
Java接口与抽象类研究
本文总结了Java抽象类和接口的概念、应用、并对比了两者的区别与联系。原创 2015-03-07 22:45:44 · 726 阅读 · 0 评论 -
如何解决Java通过JDBC访问MySQL时SSL连接告警问题
如何解决Java通过JDBC访问MySQL时SSL连接告警问题原创 2016-12-16 14:02:08 · 11469 阅读 · 3 评论 -
JDBC之连接池: Tomcat 8.5 MySQL数据库连接池的配置与使用
本文以MySQL数据库为例,介绍Tomcat 8.5环境下,其默认的数据库连接池DBCP配置与使用.原创 2017-08-20 22:13:14 · 5469 阅读 · 1 评论 -
Java I/O流总结
近期学习Hadoop的过程中,发现对流的概念理解的不是很深入。决定把《Java核心技术》书中关于流与文件的部分重新梳理学习。结合JDK 7,利用SmartDraw工具将流中主要的类接口通过UML图,将I/O主要的流类和接口展示出来。原创 2017-09-03 12:11:27 · 566 阅读 · 0 评论 -
JVM 调优系列之监控工具
本文介绍了JVM调优的相关工具,是分析线上内存泄露、某个进程突然cpu飙升、线程死锁、响应变慢等相关问题的利器。转载 2017-10-27 08:53:20 · 313 阅读 · 0 评论 -
Java算法面试题(004) 实现一个算法来确定一个字符串是否具有所有唯一的字符
本文详细介绍了如何实现一个算法来确定一个字符串是否具有所有唯一的字符。原创 2017-11-29 17:26:27 · 2453 阅读 · 0 评论 -
Java算法面试题(001) 如何使用循环和递归计算单链表的长度
本文为本博主翻译,未经允许,严禁转载。简介这是我第一次接受跨国投资银行面试时所问的经典编程问题之一。之后,这个问题在其他编程工作面试中也多次被问到。让这个问题有趣的是,与C ++开发人员相比,Java开发人员在数据结构方面并不是那么棒,这显然是因为这两种语言之间的根本区别。 C ++更多的是系统编程语言,而Java更多的是应用程序编程,也有一套丰富的Java API允许程序员跳过这种基本的原创 2017-11-23 08:43:10 · 3503 阅读 · 0 评论 -
Java算法面试题(003) 如何检查一个字符串是另外一个字符串的旋转字符串
编写一个程序来检查一个字符串是否是另一个字符串的旋转字符串是一个常见的编码问题,你将在编程工作面试中看到。一个字符串被认为是另一个字符串的旋转,如果它具有相同的长度,包含相同的字符,并且围绕其中一个字符旋转。例如,字符串“bcda”是“abcd”的旋转,但“bdca”不是字符串“abcd”的旋转。对这个有趣的问题最简单的解决方案之一是首先检查两个字符串是否具有相同的长度,如果不是一个字符串不能是另一个字符串的旋转。如果它们的长度相同,那么只需要通过连接第一个字符串和自己来创建另一个字符串,现在检查第二个字符翻译 2017-11-22 21:00:30 · 2360 阅读 · 0 评论 -
Java算法面试题(008) 字符串反转
本文列出了字符串反转的几种实现方式原创 2017-12-19 16:13:30 · 3472 阅读 · 2 评论