interview
文章平均质量分 92
iteye_8208
这个作者很懒,什么都没留下…
展开
-
java编码
Java的class文件采用utf-8的编码方式,JVM运行时采用utf-16。Java的字符串是unicode编码的。总之,Java采用了unicode字符集,使之易于国际化。 ASCII 码: 学过计算机的人都知道 ASCII 码,总共有 128 个,用一个字节的低 7 位表示,0~31 是控制字符如换行回车删除等;32~126 是打印字符,可以通...原创 2016-04-17 13:27:06 · 81 阅读 · 0 评论 -
Java 内存模型及GC原理
一个优秀Java程序员,必须了解Java内存模型、GC工作原理,以及如何优化GC的性能、与GC进行有限的交互,有一些应用程序对性能要求较高,例如嵌入式系统、实时系统等,只有全面提升内存的管理效率,才能提高整个应用程序的性能。本文将从JVM内存模型、GC工作原理,以及GC的几个关键问题进行探讨,从GC角度提高Java程序的性能。 一、Java内存模型 按照官方的说法:Java ...原创 2016-10-10 14:09:29 · 78 阅读 · 0 评论 -
Java内存溢出和内存泄露
一、为什么要了解内存泄露和内存溢出? 1、内存泄露一般是代码设计存在缺陷导致的,通过了解内存泄露的场景,可以避免不必要的内存溢出和提高自己的代码编写水平;2、通过了解内存溢出的几种常见情况,可以在出现内存溢出的时候快速的定位问题的位置,缩短解决故障的时间。 二、基本概念 内存泄露:指程序中动态分配内存给一些临时对象,但是对象不会被GC所回收,它始终占用内存。即被分配...原创 2016-10-10 14:05:36 · 106 阅读 · 0 评论 -
ArrayList的实现原理
一、 ArrayList概述: ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。 ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安全的ArrayList类,也可以使用concurrent并...原创 2016-10-10 13:01:21 · 89 阅读 · 0 评论 -
HashSet的实现原理
1.HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。HashSet中不允许有重复元素,这是因为HashSet是基于HashMap实现的,HashSet中的元素都存放在HashMap的key上面,而value中的值都是统一的一个private static...原创 2016-10-10 12:58:22 · 106 阅读 · 0 评论 -
HashMap的实现原理
1. HashMap概述:HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 2. HashMap的数据结构:在Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外...原创 2016-10-09 21:30:34 · 86 阅读 · 0 评论 -
程序员电话面试问题
1. 从哈希表,二叉树和链表中取元素需要多少时间?如果你有数百万记录呢?哈希表需要O(1)时间,二叉树需要O(logN) (N是树中节点数),链表需要O(N) (N是链表中节点数)。如果数据结构工作正常(比如哈希表没有或只有相对少量冲突,二叉树是平衡的),数百万记录并不影响效率。如果工作不正常,那么效率会随着记录数上升而下降。2. 覆盖(Overriding)和重载(Ove...原创 2016-10-09 19:55:39 · 621 阅读 · 0 评论 -
java虚拟机总结
类型的生命周期:java虚拟机通过装载、连接和初始化一个java类型,使该类型可以被正在运行的java程序所使用。装载:是把二进制形式的java类型读入java虚拟机中。连接:是把读入的二进制形式的类型数据合并到虚拟机的运行时状态中去。连接分三个子步骤(验证、准 备和解析)。验证步骤确保java类型数据格式正确并且适合于java虚拟机使用;准备步骤则...原创 2016-10-09 19:54:17 · 101 阅读 · 0 评论 -
java面试题
多线程有几种实现方法,都是什么?哪一种方式比较优秀?同步有几种实现方法,都是什么?多线程有两种实现方法,分别是继承Thread类与实现Runnable接口 实现Runnable接口比较好,因为实现类可以实现多个接口,而只能继承一个类。同步的实现方面有两种,分别是synchronized,wait与notify java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以...原创 2016-10-09 19:53:54 · 96 阅读 · 0 评论 -
java面试题集合
面向对象的特征有哪些方面 抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为...原创 2016-10-09 19:53:04 · 454 阅读 · 0 评论 -
译文:理解Java中的弱引用
不久之前,我面试了一些求职Java高级开发工程师的应聘者。我常常会面试他们说,“你能给我介绍一些Java中得弱引用吗?”,如果面试者这样说,“嗯,是不是垃圾回收有关的?”,我就会基本满意了,我并不期待回答是一篇诘究本末的论文描述。然而事与愿违,我很吃惊的发现,在将近20多个有着平均5年开发经验和高学历背景的应聘者中,居然只有两个人知道弱引用的存在,但是在这两个人之中只有一个人真正了解这方面...原创 2016-10-06 13:12:41 · 89 阅读 · 0 评论 -
理解Java中的ThreadLocal
提到ThreadLocal,有些Android或者Java程序员可能有所陌生,可能会提出种种问题,它是做什么的,是不是和线程有关,怎么使用呢?等等问题,本文将总结一下我对ThreadLocal的理解和认识,希望让大家理解ThreadLocal更加透彻一些。ThreadLocal是什么 ThreadLocal是一个关于创建线程局部变量的类。通常情况下,我们创建的变量是可以被任何一...原创 2016-10-06 13:10:35 · 69 阅读 · 0 评论 -
JVM运行时的数据区
理解JVM运行时的数据区是Java编程中的进阶部分。我们在开发中都遇到过一个很头疼的问题就是OutOfMemoryError(内存溢出错误),但是如果我们了解JVM的内部实现和其运行时的数据区的工作机制,那么前面的问题就会迎刃而解。在这片文章中,我们将简单了解JVM中有哪些运行时数据区以及这些数据区的工作机制。JVM运行时数据区分类程序计数器 (Program Counter (PC...原创 2016-10-06 13:09:56 · 87 阅读 · 0 评论 -
Java常量池理解与总结
一.相关概念什么是常量用final修饰的成员变量表示常量,值一旦给定就无法改变!final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。Class文件中的常量池在Class文件结构中,最头的4个字节用于存储魔数Magic Number,用于确定一个文件是否能被JVM接受,再接着4个字节用于存储版本号,前2个字节存储次版本号,后2个存储主版本号,...原创 2016-10-04 01:14:16 · 75 阅读 · 0 评论 -
转载:深入分析 Java I/O 的工作机制
深入分析 Java I/O 的工作机制 I/O 问题可以说是当今互联网 Web 应用中所面临的主要问题之一,因为当前在这个海量数据时代,数据在网络中随处流动。这个流动的过程中都涉及到 I/O 问题,可以说大部分 Web 应用系统的瓶颈都是 I/O 瓶颈。本文的目的正是分析 I/O 的内在工作机制,你将了解到:Java 的 I/O 类库的基本架构;磁盘 I/O 工作机制;网络 I...原创 2016-04-27 12:50:49 · 87 阅读 · 0 评论 -
转载:深入分析 Java Web 技术内幕
developerWorks 图书频道: 深入分析 Java Web 技术内幕,第 10 章深入理解 Session 与 Cookie Session 与 Cookie 不管是对 Java Web 的初学者还是熟练使用者来说都是一个令人头疼的问题。在初入职场时恐怕很多程序员在面试的时候都被问到过这个问题。其实这个问题回答起来既简单又复杂,简单是因为它们本身只是 HT...原创 2016-04-27 12:50:29 · 142 阅读 · 0 评论 -
转载:Servlet 工作原理解析
Servlet 工作原理解析 Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础。因而掌握 Servlet 的工作原理是成为一名合格的 Java Web 技术开发人员的基本要求。本文将带你认识 Java Web 技术是如何基于 Servlet 工作,你将知道:以 Tomcat 为例了解 Servlet 容器是如何工...原创 2016-04-27 12:49:14 · 80 阅读 · 0 评论 -
提高sql的查询效率
提高sql的查询效率1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有n...原创 2016-04-19 13:38:32 · 83 阅读 · 0 评论 -
JVM 基础知识
一、基础概念数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。基本类型包括:byte、short、int、long、char、float、double、Boolean、returnAdd...原创 2016-10-10 14:22:41 · 86 阅读 · 0 评论