Java
文章平均质量分 70
Java面试:
这个作者很懒,什么都没留下…
展开
-
Java字符串是否是回文
1、什么是回文所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如“上海自来水来自海上”或者“aba”。【经典段子】上海某大学男生给女同学乙出上联求对:“上海自来水来自海上。”顺念倒念完全一样,难度极大!女生乙对曰:“山东落花生花落东山”;男生甲遂出绝对:“大波美人鱼人美波大”,女生乙对曰“明天到操场操到天明!”男生落败。2、判断的方法①字符串倒置后创建新字原创 2017-03-20 17:48:12 · 1076 阅读 · 0 评论 -
运行时异常和一般异常的区别
Java异常类结构图运行时异常和一般异常的区别Java提供了两类主要的异常:runtime exception和checked exception。checked 异常也就是我们经常遇到的IO异常,以及SQL异常都是这种异常。对于这种异常,JAVA编译器强制要求我们必需对出现的这些异常进行catch。所以,面对这种异常不管我们是否愿意,只能自己去写一原创 2017-03-16 14:20:18 · 879 阅读 · 0 评论 -
HTTP错误大全 500 404 400 304 200
HTTP 400 - 请求无效HTTP 401.1 - 未授权:登录失败HTTP 401.2 - 未授权:服务器配置问题导致登录失败HTTP 401.3 - ACL 禁止访问资源HTTP 401.4 - 未授权:授权被筛选器拒绝HTTP 401.5 - 未授权:ISAPI 或 CGI 授权失败HTTP 403 - 禁止访问HTTP 403 - 对 Internet转载 2017-06-19 10:56:31 · 1725 阅读 · 0 评论 -
java基础思维导图,让java不再难懂
思维导图的好处最近看了一些文章的思维导图,发现思维导图真是个强大的工具。了解了思维导图的作用之后,觉得把它运用到java上应该是个不错的想法,这样回顾知识点的时候一目了然,快速知道自己的短板。思维导图不仅仅只有简单明了这个好处,它还能加深人对主题的印象和理解,能达到快速阅读的好处,就好像一本书的目录大纲,当你阅读了导图之后再带有目的的去找资料往往能达到事半功倍的效果。转载 2017-07-07 17:24:55 · 687 阅读 · 0 评论 -
2018年初,派卧底去阿里、京东、美团、滴滴带回来的面试题及答案
最近有很多朋友去目前主流的大型互联网公司面试(阿里巴巴、京东、美团、滴滴),面试回来之后会发给我一些面试题。有些朋友轻松过关,拿到offer,但是有一些是来询问我答案的。我特意整理了一下,有很多问题不是靠几句话能讲清楚,所以干脆找朋友录制了一些视频,用来回来这些面试题。很多问题其实答案很简单,但是背后的思考和逻辑不简单,要做到知其然还要知其所以然。先来看下用手机记录的面试材料:一,阿里巴巴面试题二...原创 2018-05-18 21:26:21 · 837 阅读 · 0 评论 -
记录一次壮烈牺牲的阿里巴巴面试
微信公众号:javafirst今天本是一个阳光明媚,鸟语花香的日子。于是我决定在逛街中感受春日的阳光~结果晚上七点的时候,蚂蚁金服后端大佬来了电话,要进行一轮的技术面试。我一脸黑人问号???现在的面试都流行突袭吗?于是我的第一次面试之旅,就此壮烈的展开。自我介绍首先呢,大佬让我用两分钟自我介绍。我本以为自己能滔滔不绝,将对方视作相亲对象般全方位介绍自己。结果不到半分钟,我就介绍完了==。五秒钟的沉...转载 2018-06-07 14:56:22 · 429 阅读 · 1 评论 -
超级全面的Java面试题集及参考答案
原文:Java面试题集微信公众号:javafirst 前几天,有朋友去面试之前问我关于后端架构相关的问题,但奈于我去年更多的工作是在移动SDK开发上,对此有所遗忘,实属无奈,后面准备总结下.今天要谈的主题是关于求职.求职是在每个技术人员的生涯中都要经历多次,对于我们大部分人而言,在进入自己心仪的公司之前少不了准备工作,有一份全面细致面试题将帮助我们减少许多麻烦.在跳槽季来临之前,特地做这个系列的文...转载 2018-05-23 11:05:35 · 1478 阅读 · 0 评论 -
Java多线程的应用场景和应用目的举例
微信公众号:javafirst 01通俗的解释一下多线程多线程用于堆积处理,就像一个大土堆,一个推土机很慢,那么10个推土机一起来处理,当然速度就快了,不过由于位置的限制,如果20个推土机,那么推土机之间会产生相互的避让,相互摩擦,相互拥挤,反而不如10个处理的好,所以,多线程处理,线程数要开的恰当,就可以提高效率。02多线程使用的目的1、吞吐量:做WEB,容器帮你做了多线程,但是它只能帮你做请求...原创 2018-05-23 11:26:17 · 11353 阅读 · 1 评论 -
你真的了解volatile关键字吗?
原文:你真的了解volatile关键字吗?微信公众号:javafirst 一、Java内存模型想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的。Java内存模型规定了所有的变量都存储在主内存中。每条线程中还有自己的工作内存,线程的工作内存中保存了被该线程所使用到的变量(这些变量是从主内存中拷贝而来)。线程对变量的所有操作(读取,赋值)都必须在工作内存中进行。不同...原创 2018-05-23 11:29:21 · 261 阅读 · 0 评论 -
Java虚拟机类加载机制
微信公众号:javafirst 看到这个题目,很多人会觉得我写我的java代码,至于类,JVM爱怎么加载就怎么加载,博主有很长一段时间也是这么认为的。随着编程经验的日积月累,越来越感觉到了解虚拟机相关要领的重要性。闲话不多说,老规矩,先来一段代码吊吊胃口。public class SSClass{ static { System.out.println("SSClass"...原创 2018-05-23 14:13:25 · 281 阅读 · 0 评论 -
Java 集合系列16之 HashSet详细介绍(源码解析)和使用示例
微信公众号:javafirst概要这一章,我们对HashSet进行学习。我们先对HashSet有个整体认识,然后再学习它的源码,最后再通过实例来学会使用HashSet。内容包括:第1部分 HashSet介绍第2部分 HashSet数据结构第3部分 HashSet源码解析(基于JDK1.6.0_45)第4部分 HashSet遍历方式第5部分 HashSet示例 第1部分 HashSet介绍HashS...转载 2018-06-12 14:21:25 · 285 阅读 · 0 评论 -
Java 集合系列目录
微信公众号:javafirst01. Java 集合系列01之 总体框架02. Java 集合系列02之 Collection架构03. Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例04. Java 集合系列04之 fail-fast总结(通过ArrayList来说明fail-fast的原理、解决办法)05. Java 集合系列05之 LinkedList详细介绍(源...转载 2018-06-12 14:38:26 · 275 阅读 · 0 评论 -
【源码】Hashtable源码剖析
微信公众号:javafirst注:以下源码基于jdk1.7.0_11上一篇分析了HashMap的源码,相信大家对HashMap都有了更深入的理解。本文将介绍Map集合的另一个常用类,Hashtable。Hashtable出来的比HashMap早,HashMap 1.2才有,而Hashtable在1.0就已经出现了。HashMap和Hashtable实现原理基本一样,都是通过哈希表实现。而且两者处理...转载 2018-06-12 16:13:20 · 252 阅读 · 0 评论 -
别人工作2年半跳槽面试阿里,成功拿到offer,为什么你不可以?
微信公众号:javafirst2015年刚毕业的我,进入了一家小小的公司实习工作,在学校学了三年软件开发的我,还是想去寻找一份互联网行业的工作,这样更能学以致用发挥自己的特长。一直到18年三月份,我辞掉已有的工作,北上去面试,且成功拿到offer,面试回来后,好多人问我,你凭什么能拿到阿里的offer,你只不过是刚毕业工作两年的小白。当时我只对他们笑了笑,以谦虚的语气回答:运气好运气好!但其实并不...原创 2018-06-06 12:26:27 · 1766 阅读 · 0 评论 -
年后跳槽全过程总结(上)——从面试准备到拿到offer
微信公众号:javafirst背景2016年2月,按照计划进行跳槽。跳槽的原因:(1)工资较低,ps 在技术水平正常的前提下,第一份工作的工资在很大程度上决定了你以后工资的高度,因为人事通常会根据你上一份工作的工资来压你的工资,工资的正常增长浮动范围是前工资的50%。自己刚毕业时技术水平一般般,工资要的不高,找了一个还不错的公司当跳板,修炼了一年,技术水平还不错,决定跳槽。(2)公积金缴纳较低,最...原创 2018-06-06 12:29:30 · 3358 阅读 · 0 评论 -
JavaEE面试经验分享
微信公众号:javafirst面试前话 一大早起来到在科技一路与高新六路交汇处西安*晟公司开始面试了,来到后前台哥们直接让我把我带到此公司的一个接待室.不一会就来了个中年男性. 看着挺严肃, 当时我在心想没有笔试环节吗? 很庆幸还真没有笔试环节. 其实我挺反感做笔试题的没意思还是面试聊天比较好。.面试环节( 面试全靠嘴皮子功夫) 首先和面试官闲聊几句,大概介绍下自己(自然自信点)...原创 2018-06-06 12:35:37 · 1336 阅读 · 0 评论 -
想成为一个Java软件工程师,谁能带我学一学?
微信公众号:javafirst每天分享java技术原创 2018-06-06 12:40:52 · 826 阅读 · 1 评论 -
深入Java集合学习系列:HashMap的实现原理
微信公众号:javafirst1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 2. HashMap的数据结构: 在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结...转载 2018-06-06 14:09:08 · 213 阅读 · 0 评论 -
Java之字符串连接的性能比较
微信公众号:javafirst一:直接使用字符串(1)示例代码(2)运行结果二:使用StringBuilder(1)示例代码(2)运行结果三:比较(1)一中通过字符串直接连接,10万个较短的字符串相连,大约106329ms左右。(2)二种通过StringBuilder来连接,同样的数据量,大约19ms左右。(3)两种方法花费的时间相差几百倍。数据量越大,相差越大。(4)测试一中使用字符串连接操作符...转载 2018-06-21 11:22:53 · 811 阅读 · 0 评论 -
Java并发编程:volatile关键字解析
微信公众号:javafirst volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述v...转载 2018-06-21 11:23:13 · 194 阅读 · 0 评论 -
Javaweb开发学习路线及Java三大框架分享
微信公众号:javafirstJava web开发是什么?Java web开发,是用Java技术来解决相关web互联网领域的技术总和。web包括:web服务器和web客户端两部分。Java在客户端的应用有java applet,不过使用得很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等。Java技术对Web领域的发展注入了强大的动力。Java web 开发Jav...转载 2018-06-21 11:24:59 · 1000 阅读 · 0 评论 -
Jquery+Ajax+Bootstrap Paginator实现分页的拼接
微信公众号:javafirst效果图如下图片.pngjsp页面引入bootstrap样式,jquery和bootstrap-paginator.js<link type="text/css" rel="stylesheet" href="bootstrap.css"> <script type="text/javascript" src="jquery.min.js"转载 2018-06-21 11:32:58 · 966 阅读 · 0 评论 -
Java、Web以及移动程序员需要掌握的12套框架
微信公众号:javafirst一、2018年Java、Web以及移动程序员们应当掌握的12套框架目前,可能大家还没有想好该如何设计自己最新阶段的学习内容。当今世界,对各类框架的了解无疑非常重要,能够帮助我们快速开发原型设计及实际项目。在今天的文章中,我们共享了12套与Java、移动应用、Web开发以及大数据相关的框架选项。1. Angular2. Node.js3. Spring Boot4. R...转载 2018-06-21 11:36:54 · 722 阅读 · 1 评论 -
聊聊并发(一)深入分析Volatile的实现原理
微信公众号:javafirst引言在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。它在某些情况下比synchronized的开销更小,本文将深入分析在硬件层面上Inter处理器是如何实现Vola...转载 2018-06-14 10:29:34 · 222 阅读 · 0 评论 -
聊聊并发(二)Java SE1.6中的Synchronized
微信公众号:javafirst1 引言在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了Java SE1.6中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁,以及锁的存储结构和升级过程。 2 术语定义术语英文说明CASCompare ...转载 2018-06-14 10:40:59 · 234 阅读 · 0 评论 -
HashMap的工作原理
微信公众号:javafirst HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道HashTable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至会要求你实现HashMap来考察你的编程能力。Concurrent...转载 2018-06-07 14:41:34 · 258 阅读 · 0 评论 -
HashMap和Hashtable的区别
微信公众号:javafirstHashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决问题。HashMap的工作原理、ArrayList与Vector的比较以及这个问题是有关Java 集合框架的最经典的问题。Hashtable是个过时的集合类,存在于Java API中很久了。在Java 4中被重写了,实现了Map接...转载 2018-06-07 14:47:06 · 207 阅读 · 0 评论 -
HashMap和HashSet的区别
微信公众号:javafirstHashMap和HashSet的区别是Java面试中最常被问到的问题。如果没有涉及到Collection框架以及多线程的面试,可以说是不完整。而Collection框架的问题不涉及到HashSet和HashMap,也可以说是不完整。HashMap和HashSet都是collection框架的一部分,它们让我们能够使用对象的集合。collection框架有自己的接口和实...转载 2018-06-07 14:51:18 · 331 阅读 · 0 评论 -
JavaIO总结
微信公众号:javafirst1 Java IO版本Java库的IO分为输入/输出两部分。早期的Java 1.0版本的输入系统是InputStream及其子类,输出系统是OutputStream及其子类。后来的Java 1.1版本对IO系统进行了重新设计。输入系统是Reader及其子类,输出系统是Writer及其子类。Java1.1之所以要重新设计,主要是为了添加国际化支持(即添加了对16位Uni...转载 2018-06-07 14:55:12 · 318 阅读 · 0 评论 -
Java引用总结--StrongReference、SoftReference、WeakReference、PhantomReference
微信公众号:javafirst1 Java引用介绍 Java从1.2版本开始引入了4种引用,这4种引用的级别由高到低依次为: 强引用 > 软引用 > 弱引用 > 虚引用⑴强引用(StrongReference) 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryErro...转载 2018-06-07 16:30:53 · 413 阅读 · 0 评论 -
Java 集合系列01之 总体框架
微信公众号:javafirstJava集合是java提供的工具包,包含了常用的数据结构:集合、链表、队列、栈、数组、映射等。Java集合工具包位置是java.util.*Java集合主要可以划分为4个部分:List列表、Set集合、Map映射、工具类(Iterator迭代器、Enumeration枚举类、Arrays和Collections)、。Java集合工具包框架图(如下):大致说明:看上面的...转载 2018-06-07 16:42:41 · 253 阅读 · 0 评论 -
Java 集合系列02之 Collection架构
微信公众号:javafirst概要首先,我们对Collection进行说明。下面先看看Collection的一些框架类的关系图:Collection是一个接口,它主要的两个分支是:List 和 Set。List和Set都是接口,它们继承于Collection。List是有序的队列,List中可以有重复的元素;而Set是数学概念中的集合,Set中没有重复元素!List和Set都有它们各自的实现类。 ...转载 2018-06-07 16:47:43 · 317 阅读 · 0 评论 -
Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例
微信公众号:javafirst概要上一章,我们学习了Collection的架构。这一章开始,我们对Collection的具体实现类进行讲解;首先,讲解List,而List中ArrayList又最为常用。因此,本章我们讲解ArrayList。先对ArrayList有个整体认识,再学习它的源码,最后再通过例子来学习如何使用它。内容包括:第1部分 ArrayList简介第2部分 ArrayList数据结...转载 2018-06-07 16:59:53 · 297 阅读 · 0 评论 -
如何正确地停止一个线程?
微信公众号:javafirst停止一个线程意味着在任务处理完任务之前停掉正在做的操作,也就是放弃当前的操作。停止一个线程可以用Thread.stop()方法,但最好不要用它。虽然它确实可以停止一个正在运行的线程,但是这个方法是不安全的,而且是已被废弃的方法。在java中有以下3种方法可以终止正在运行的线程:使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。使用stop方法强行终止,但...转载 2018-06-15 09:25:23 · 344 阅读 · 0 评论 -
Gradle-Eclipse插件安装
微信公众号:javafirst概述现在,公司的安卓主程的带动下,我也在不断的进步中。以前用惯了Maven,觉得能够自动打包测试、能够使多Profile打包已经很爽,很了不得了。现在,也不是有多心水Grandle,只是觉得既然是第三代的打包工具,那么作为一个积极上进的程序员,一个以大牛为远大理想的程序员,不能落在时代的后面,哈哈~说说Gradle刚开始认识Gradle这个名词是在蘑菇街的一场 交流会...转载 2018-06-22 14:05:40 · 903 阅读 · 0 评论 -
从一个多项目Web工程看Eclipse如何导入Gradle项目
微信公众号:javafirst概述上一节,我们说了Eclipse如何安装Gradle的插件,以达到对Gradle的支持。这里再次说一下为什么我们需要熟悉Gradle构建工具,主要原因就是很多开源项目现在都在改用Gradle作为构建工具。一部分的github上的示例代码也在用Gradle构建,如果还是只能用maven,那么很多好的项目都只能用肉眼看,不能真正的调试起来,更精细的去看运行时的状态,对于...转载 2018-06-22 14:11:45 · 634 阅读 · 0 评论 -
面试官常问的线程池,你真的了解吗
在我们的开发中“池”的概念并不罕见,有数据库连接池、线程池、对象池、常量池等等。下面我们主要针对线程池来一步一步揭开线程池的面纱。使用线程池的好处1、降低资源消耗:可以重复利用已创建的线程降低线程创建和销毁造成的消耗。2、提高响应速度:当任务到达时,任务可以不需要等到线程创建就能立即执行。3、提高线程的可管理性:线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源,还会降低系统的稳...转载 2018-06-22 17:17:34 · 14158 阅读 · 5 评论 -
深入理解Java之线程池
微信公众号:javafirst在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?在Java中可以通过线程池来达到...转载 2018-06-15 09:38:22 · 237 阅读 · 0 评论 -
Java 集合系列04之 fail-fast总结(通过ArrayList来说明fail-fast的原理、解决办法)
微信公众号:javafirst概要前面,我们已经学习了ArrayList。接下来,我们以ArrayList为例,对Iterator的fail-fast机制进行了解。内容包括::1 fail-fast简介2 fail-fast示例3 fail-fast解决办法4 fail-fast原理5 解决fail-fast的原理 1 fail-fast简介fail-fast 机制是java集合(Collect...转载 2018-06-08 12:49:12 · 264 阅读 · 0 评论 -
Java 集合系列05之 LinkedList详细介绍(源码解析)和使用示例
微信公众号:javafirst概要 前面,我们已经学习了ArrayList,并了解了fail-fast机制。这一章我们接着学习List的实现类——LinkedList。和学习ArrayList一样,接下来呢,我们先对LinkedList有个整体认识,然后再学习它的源码;最后再通过实例来学会使用LinkedList。内容包括:第1部分 LinkedList介绍第2部分 LinkedList数据结构第...转载 2018-06-08 12:52:22 · 303 阅读 · 0 评论