Java基础
文章平均质量分 69
huangshulang1234
这个作者很懒,什么都没留下…
展开
-
阿里技术面试
阿里技术面试1.Java IO流的层次结构?2.请说出常用的异常类型?3.SKU的全称是什么,SKU与SPU的区别及关系?4.FileInputStream 在使用完以后,不关闭流,想二次使用可以怎么操作?5.设计一个分步式登录系统?6.Spring加载过程?7.自己有没有写过类似Spring这样的AOP事务?8.Java中转载 2017-11-07 09:11:24 · 716 阅读 · 0 评论 -
Java面试题合集
Java面试题合集1.抽象类与接口的区别是什么?一个类可以实现多个接口,但是只能继承以及抽象类。类如果要实现一个接口,它必须要实现接口声明的所有方法。但是,类可以不实现抽象类声明的所有方法,当然,在这种情况下,类也必须得声明成是抽象的。2.JDK和JRE的区别是什么?Java运行时环境(JRE)是将要执行Java程序的Java虚拟机。它同时也包含了执行apple转载 2017-11-07 09:09:54 · 328 阅读 · 0 评论 -
Java 内存模型 JMM 浅析
Java 内存模型 JMM 浅析JMM简介Java Memory Model简称JMM, 是一系列的Java虚拟机平台对开发者提供的多线程环境下的内存可见性、是否可以重排序等问题的无关具体平台的统一的保证。(可能在术语上与Java运行时内存分布有歧义,后者指堆、方法区、线程栈等内存区域)。并发编程有多种风格,除了CSP(通信顺序进程)、Actor等模型外,大家最熟悉的应该是转载 2017-11-08 09:14:38 · 325 阅读 · 0 评论 -
《深入理解Java虚拟机》虚拟机类加载机制
《深入理解Java虚拟机》虚拟机类加载机制我们深入到类文件去了解其结构细节,也大概对类文件的编写规则略知一二了,解析来我们就得学习这个类文件是如何被加载到Java虚拟机的,看看有什么引人入胜的奥秘。本节学习重点大部分计算机类科生都应该有接触过C语言,C语言的编译过程会有预处理、编译、汇编、链接四个步骤,经过了这四个步骤就生成了可以执行文件(二进制机器码)。Java同样如转载 2017-11-08 09:15:25 · 229 阅读 · 0 评论 -
java基础思维导图,让java不再难懂
java基础思维导图,让java不再难懂思维导图的好处最近看了一些文章的思维导图,发现思维导图真是个强大的工具。了解了思维导图的作用之后,觉得把它运用到java上应该是个不错的想法,这样回顾知识点的时候一目了然,快速知道自己的短板。思维导图不仅仅只有简单明了这个好处,它还能加深人对主题的印象和理解,能达到快速阅读的好处,就好像一本书的目录大纲,当转载 2017-11-09 09:30:40 · 845 阅读 · 0 评论 -
《深入理解Java虚拟机》的思维导图读书笔记
《深入理解Java虚拟机》的思维导图读书笔记作者:被称为L的男人原文链接:http://www.jianshu.com/p/ff4a1795e462本文为转载文章,原文请点击左下角查看,谢谢。 说明本篇文章是对周志明的《深入理解Java虚拟机》的读书笔记,思维导图使用Mindjet MindManager。曾经看到过这样一转载 2017-11-09 10:34:51 · 1787 阅读 · 0 评论 -
收集的java基础思维导图
收集的java基础思维导图1写在前面辞职了,自由了。是不是该放松一把。哈哈。最近因为辞职找工作的问题都没什么心情自己画思维导图。说好的spring系列的aop和spring用到的设计模式还没画呢,偷懒了嘿。2先来一波收集的导图转载 2017-11-11 09:25:09 · 601 阅读 · 0 评论 -
JVM并不是那么重量级
JVM并不是那么重量级译者注:很多人误认为JVM是一个很重量级的框架,本文作者之前也是这么认为的,但是在这篇文章中,作者从几个层面分析了一下,可以看出JVM并不是我们想象中的那么“重”。以下为译文。大多数情况下,我之所以反对Clojure,就是由于JVM。因为它实在是太重量级了。这是几周前在ZA Tech科技公司的Slack团队中出现的声音。假期的时候观看了一些关于Cl转载 2017-11-12 09:47:14 · 473 阅读 · 0 评论 -
垃圾回收算法与 JVM 垃圾回收器综述
垃圾回收算法与 JVM 垃圾回收器综述我们常说的垃圾回收算法可以分为两部分:对象的查找算法与真正的回收方法。不同回收器的实现细节各有不同,但总的来说基本所有的回收器都会关注如下两个方面:找出所有的存活对象以及清理掉所有的其它对象——也就是那些被认为是废弃或无用的对象。Java 虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商、不同版本的虚拟机所提供的垃圾收集器都可能会转载 2017-11-12 09:48:04 · 221 阅读 · 0 评论 -
Java HashMap 遍历方式性能探讨
Java HashMap 遍历方式性能探讨关于HashMap的实现这里就不展开了,具体可以参考 JDK7与JDK8中HashMap的实现JDK8之前,可以使用keySet或者entrySet来遍历HashMap,JDK8中引入了map.foreach来进行遍历。原因:keySet其实是遍历了2次,一次是转为Iterator对象,另一次是从hashMap中取出ke转载 2017-11-12 09:50:00 · 360 阅读 · 0 评论 -
重读 JVM
重读 JVM1. Java 内存区域与内存溢出异常1.1 运行时数据区域根据《Java 虚拟机规范(Java SE 7 版)》规定,Java 虚拟机所管理的内存如下图所示。1.1.1 程序计数器内存空间小,线程私有。字节码解释器工作是就是通过改变这个计数器的值来选取下一条需要执行指令的字转载 2017-11-12 09:52:51 · 309 阅读 · 0 评论 -
深入了解 Java 之虚拟机内存
深入了解 Java 之虚拟机内存在讨论JVM内存区域分析之前,先来看一下Java程序具体执行的过程:Java 程序的执行过程:Java 源代码文件(.Java文件)-> Java Compiler(Java编译器)->Java 字节码文件(.class文件)->类加载器(Class Loader)->Runtime Data Area(运行时数据)-> Execut转载 2017-11-13 09:21:58 · 261 阅读 · 0 评论 -
jvm系列:jvm知识点总览
jvm系列:jvm知识点总览在江湖中要练就绝世武功必须内外兼备,精妙的招式和深厚的内功,武功的基础是内功。对于武功低(就像江南七怪)的人,招式更重要,因为他们不能靠内功直接去伤人,只能靠招式,利刃上优势来取胜了,但是练到高手之后,内功就更主要了。一个内功低的人招式在奇妙也打不过一个内功高的人。比如,你剑法再厉害,一剑刺过来,别人一掌打断你的剑,你还怎么使剑法,你一掌打到一个武功高的人身转载 2017-11-13 09:22:31 · 338 阅读 · 0 评论 -
浅谈Java并发编程中的若干核心技术
浅谈Java并发编程中的若干核心技术引言本文试图从一个更高的视角来总结Java语言中的并发编程内容,希望阅读完本文之后,可以收获一些内容,至少应该知道在Java中做并发编程实践的时候应该注意什么,应该关注什么,如何保证线程安全,以及如何选择合适的工具来满足需求。当然,更深层次的内容就会涉及到JVM层面的知识,包括底层对Java内存的管理,对线程的管理等较为核心的转载 2017-11-18 09:19:20 · 494 阅读 · 0 评论 -
Java 9 的主要新特性
Java 9 的主要新特性Java 9 的新特性都列在官方页面当中,本文介绍值得你关注的其中几个点:▶ 进程操作改进(JEP 102: Process API Updates)新增的 java.lang.ProcessHandle 类丰富了对进程的操作,同时原有的 java.lang.Process 类的功能也被加强了。▶ 竞争锁的性能优化(JEP 143:转载 2017-11-14 09:36:56 · 261 阅读 · 0 评论 -
浅谈高并发解决方案
浅谈高并发解决方案摘要: 高并发一直是然个人头疼的问题;然而,其解决方式则是一套组合策略,由整体入手,逐步分析,逐步解决部分问题,进而解决所有问题;就像一支庞大的输水管道,不断的做分支导流,每层的分支可以导出部分的流量,继而顺利导出所有的流量。总体思路:优化代码,分离业务逻辑,数据库,最后加服务器等;逐步解决方案,具体操作如下:(1).页面的动静分离:页面生成了静态的缓转载 2017-11-14 09:38:21 · 262 阅读 · 0 评论 -
Java性能调优的11个实用技巧
大多数开发人员认为性能优化是个比较复杂的问题,需要大量的经验和知识。是的,这并不没有错。诚然,优化应用程序以获得最好的性能并不是一件容易的事情,但这并不意味着你在没有获得这些经验和知识之前就不能做任何事。下面有几个很容易遵循的建议和最佳实践能够帮你创建一个性能良好的应用程序。这些建议中的大多数都是基于Java的,但是也不一定,也有一些是可以应用于所有的应用程序和编程语言的。在我们分享基于Java的性转载 2017-11-05 10:33:51 · 248 阅读 · 0 评论 -
Java 高并发综合
Java 高并发综合这篇文章是研一刚入学时写的,今天整理草稿时才被我挖出来。当时混混沌沌的面试,记下来了一些并发的面试问题,很多还没有回答。到现在也学习了不少并发的知识,回过头来看这些问题和当时整理的答案,漏洞百出又十分可笑。发表出来权当对自己的一个提醒——如果不能一直进步,你就看不到当初傻逼的自己。曾经,我在面试Java研发实习生时最常听到的一句话就是:搞Java转载 2017-11-05 14:58:49 · 409 阅读 · 0 评论 -
15个高级Java多线程面试题及回答
15个高级Java多线程面试题及回答在任何Java面试当中多线程和并发方面的问题都是必不可少的一部分。如果你想获得任何股票投资银行的前台资讯职位,那么你应该准备很多关于多线程的问题。在投资银行业务中多线程和并发是一个非常受欢迎的话题,特别是电子交易发展方面相关的。他们会问面试者很多令人混淆的Java线程问题。面试官只是想确信面试者有足够的Java线程与并发方面的知识,因为候选人中有很多转载 2017-11-06 09:12:33 · 250 阅读 · 0 评论 -
超详细的Java面试题总结(一)之Java基本知识
超详细的Java面试题总结(一)之Java基本知识最近在备战面试的过程中,整理一下面试题。大多数题目都是自己手敲的,网上也有很多这样的总结。自己感觉总是很乱,所以花了很久把自己觉得重要的东西总结了一下。面向对象和面向过程的区别 面向过程: 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用转载 2017-11-16 09:28:52 · 402 阅读 · 0 评论 -
类、方法、成员变量和局部变量的可用修饰符
类、方法、成员变量和局部变量的可用修饰符先看一道面试题:[java] view plain copypublic class aClass { void fun() { static int i = 0; //局部变量前不能放置任何访转载 2017-11-16 09:29:06 · 619 阅读 · 0 评论 -
java中实现多态的机制是什么?
java中实现多态的机制是什么?面向对象编程有三大特性:封装、继承、多态。封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法。继承是为了重用父类代码。两个类若存在IS-A的关系就可以使用继承。 所谓多态就是指程序中定义的引用变量所指向的具体类型和转载 2017-11-16 09:29:23 · 1352 阅读 · 0 评论 -
java 面向对象三大特性(封装,继承,多态)以及抽象、接口的介绍
java 面向对象三大特性(封装,继承,多态)以及抽象、接口的介绍封装:1.定义:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别。2.封装的目的是:增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,一特定的访问权限来使用类的成员。3.封装的基本要求是:把所有的属性私有化,对每个属性提供getter和sett转载 2017-11-16 09:29:46 · 440 阅读 · 0 评论 -
关于JAVA MAP中经常遇到的一些问题及解决方法
关于JAVA MAP中经常遇到的一些问题及解决方法1.将Map转化成ListMap接口提供了三种collection:key set,value set 和 key-value set,每一种都可以转成List。如下://mapHashMapInteger,Integer> map = new HashMapmap.put(1,10);map.put(2,20);map.p转载 2017-11-16 09:30:00 · 492 阅读 · 0 评论 -
异常处理的一些经验总结
异常处理的一些经验总结这篇文章主要是对Java异常选择和使用中的一些误区的总结和归纳,希望各位读者能够熟练掌握异常处理的一些注意点和原则。只有处理好了异常,才能提升开发人员的基本素养,提高系统的健壮性,提升用户体验,提高产品的价值。废话少说,直接看: 误区一、异常的选择这张图描述了异常的结构,其实我们都知道异常分检测异常和非检测异常,但是在实际中又混淆了这两种异常的应用转载 2017-11-16 09:30:14 · 403 阅读 · 0 评论 -
总结多线程之显示锁和内置锁
总结多线程之显示锁和内置锁Java中具有通过Synchronized实现的内置锁,和ReentrantLock实现的显示锁,这两种锁各有各的好处,算是互有补充,这篇文章就是做一个总结。Java架构学习交流群:639915441*Synchronized* 内置锁获得锁和释放锁是隐式的,进入synchronized修饰的代码就获得锁,走出相应的代码就释放锁。synch转载 2017-11-16 09:31:43 · 290 阅读 · 0 评论 -
Java 多线程编程核心技术有哪些
Java 多线程编程核心技术有哪些一、进程与线程的概念(1)在传统的操作系统中,程序并不能独立运行,作为资源分配和独立运行的基本单位都是进程。在未配置 OS 的系统中,程序的执行方式是顺序执行,即必须在一个程序执行完后,才允许另一个程序执行;在多道程序环境下,则允许多个程序并发执行。程序的这两种执行方式间有着显著的不同。也正是程序并发执行时的这种特征,才转载 2017-11-23 09:24:59 · 250 阅读 · 0 评论 -
Java GC(绝对干货)
Java GC(绝对干货)范围:要回收哪些区域在JVM五种内存模型中,有三个是不需要进行垃圾回收的:程序计数器、JVM栈、本地方法栈。因为它们的生命周期是和线程同步的,随着线程的销毁,它们占用的内存会自动释放,所以只有方法区和堆需要进行GC。前提:如何判断对象已死所有的垃圾收集算法都面临同一个问题,那就是找出应用程序不可到达的内存块,将其释放,这里面讲的不可达主要是指应用程序已转载 2017-11-25 09:23:55 · 221 阅读 · 0 评论 -
50个Java多线程面试题
50个Java多线程面试题不管你是新 程序员还是老手,你一定在面试中遇到过有关线程的问题。Java 语言一个重要的特点就是内置了对并发的支持,让 Java 大受企业和程序员的欢迎。大多数待遇丰厚的 Java 开发职位都要求开发者精通多线程技术并且有丰富的 Java 程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。在典型的 Java 面试中, 面试官会从线程的基转载 2017-11-25 09:24:34 · 305 阅读 · 0 评论 -
Java线程synchronized、Lock
Java线程synchronized、Lockjava.util.concurrent.lock 中的Lock 框架是锁定的一个抽象,它允许把锁定的实现作为 Java 类,而不是作为语言的特性来实现。这就为Lock 的多种实现留下了空间,各种实现可能有不同的调度算法、性能特性或者锁定语义。ReentrantLock 类实现了Lock ,它拥有与synchronized 相同的并发性转载 2017-11-25 09:25:46 · 171 阅读 · 0 评论 -
Map集合的四种遍历方式总结
Map集合的四种遍历方式总结1 import java.util.HashMap; 2 import java.util.Iterator; 3 import java.util.Map; 4 5 public class TestMap { 6 public static void main(String[] args) { 7 Ma转载 2017-11-25 09:26:49 · 243 阅读 · 0 评论 -
Java内存管理原理及内存区域详解
Java内存管理原理及内存区域详解一、概述 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干不同的数据区域,这些区域都有各自的用途以及创建和销毁的时间。Java虚拟机所管理的内存将会包括以下几个运行时数据区域,如下图所示:下面就每一个区域进行阐述。 二、运行时数据区域 程序计数器 程序计数器,可以看做是当前线程所执行的字节码的行号指示器。转载 2017-11-26 08:43:31 · 370 阅读 · 0 评论 -
#面试java基础总结大全#网络编程
#面试java基础总结大全#网络编程附上 面试java基础总结大全 一系列的文章:基础知识 http://www.nowcoder.com/discuss/3559 面向对象 http://www.nowcoder.com/discuss/3593 多线程 http://www.nowcoder.com/discuss/3613转载 2017-11-26 08:44:20 · 392 阅读 · 0 评论 -
浅谈java垃圾收集器
浅谈java垃圾收集器前几天面试,被问到谈下java是怎样回收垃圾的,当时回答得太少,所以回去自己看了下java虚拟机是如何管理这一块的。分享下自己的看法,欢迎大家和我一起探讨。java不像c++一样,java是把垃圾回收完完全全的交给了虚拟机去处理,C++则需要自己的分配内存以及回收垃圾。当然java这一做法极大的降低的编程的难度,但是其中也有一些弊端。我在这转载 2017-11-26 08:47:30 · 231 阅读 · 0 评论 -
深入理解JVM(二)——内存模型、可见性、指令重排序
深入理解JVM(二)——内存模型、可见性、指令重排序来源:http://www.cnblogs.com/leefreeman/p/7356030.html声明:作者授权转载。 上一篇我们介绍了JVM的基本运行流程以及内存结构,对JVM有了初步的认识,这篇文章我们将根据JVM的内存模型探索java当中变量的可见性以及不同的java指令在并发时可能发生的指令重排转载 2017-12-23 10:02:06 · 226 阅读 · 0 评论 -
Java的19个技术点,你知道吗?
Java的19个技术点,你知道吗?关于Java的编程知识,有人会问哪几个是重要的知识点,不知道大家是否知道呢?给大家分享一下.1.数据类型 这条没有什么好多说的,无非就是Java中的基本类型和对象类型的掌握。可以再了解一些JDK如何自动转换方面的知识,包括装箱拆箱等,还要注意避免装箱之后的类型相等的判断 主要知识点: 基本类型: int, long, float,转载 2018-01-21 09:52:23 · 337 阅读 · 0 评论 -
Java垃圾回收机制
Java垃圾回收机制说到垃圾回收(Garbage Collection,GC),很多人就会自然而然地把它和Java联系起来。在Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,这一切都交给了JVM来处理。顾名思义,垃圾回收就是释放垃圾占用的空间,那么在Java中,什么样的对象会被认定为“垃圾”?那么当一些对象被确定为垃圾之后,采用什么样的策略来进行回收(释放空间)?在转载 2018-01-22 13:26:39 · 186 阅读 · 0 评论 -
降低Java垃圾回收开销5条建议
降低Java垃圾回收开销5条建议保持GC低开销的窍门有哪些?随着一再拖延而即将发布的 Java9,G1(“Garbage First”)垃圾回收器将被成为 HotSpot 虚拟机默认的垃圾回收器。从 serial 垃圾回收器到CMS 收集器, JVM 见证了许多 GC 实现,而 G1 将成为其下一代垃圾回收器。随着垃圾收集器的发展,每一代 GC 与其上一代相比,都带来了转载 2018-01-22 13:39:02 · 178 阅读 · 0 评论 -
哪个更快:Java堆还是本地内存
哪个更快:Java堆还是本地内存使用Java的一个好处就是你可以不用亲自来管理内存的分配和释放。当你用new关键字来实例化一个对象时,它所需的内存会自动的在Java堆中分配。堆会被垃圾回收器进行管理,并且它会在对象超出作用域时进行内存回收。但是在JVM中有一个‘后门’可以让你访问不在堆中的本地内存(native memory)。在这篇文章中,我会给你演示一个对象是怎样以连续的字节码转载 2018-01-23 09:49:01 · 198 阅读 · 0 评论 -
【java】深入理解ReentrantLock
【java】深入理解ReentrantLock在Java中通常实现锁有两种方式,一种是synchronized关键字,另一种是Lock。二者其实并没有什么必然联系,但是各有各的特点,在使用中可以进行取舍的使用。首先我们先对比下两者。实现:首先最大的不同:synchronized是基于JVM层面实现的,而Lock是基于JDK层面实现的。曾经反复的找过synchronize转载 2018-01-23 09:53:50 · 243 阅读 · 0 评论