java深入理解
Bee大前端
更好的生活需要你更多的知识来铺垫!
展开
-
Java内存分配
Java平台采用了自动的内存管理方式,那么JVM是如何进行内存管理的呢? Java的内存管理实际上包含两个方面:1).Java内存分配2).Java的内存回收 搞清楚了这两个问题,Java的内存管理就清楚了。 写这篇文章之前,问了自己一个问题: Java采用了自动的内存管理方式,程序员实际上不用关心内存管理的细节,转载 2015-01-20 15:59:08 · 373 阅读 · 0 评论 -
近5年133个Java面试问题列表
ava 面试随着时间的改变而改变。在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来越高级,面试官问的问题也更深入。 在我初入职场的时候,类似于 Vector 与 Array 的区别、HashMap 与 Hashtable 的区别是最流行的问题,只需要记住它们,就能在面试中获得更好的机会,但这种情形已经不复存在。如今,你将会转载 2015-12-28 13:31:52 · 520 阅读 · 0 评论 -
原码, 反码, 补码 详解
本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式转载 2015-01-14 18:45:14 · 1352 阅读 · 2 评论 -
Java 接口和抽象类区别
一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架,当代表业务逻辑的高层抽象层结构 合理时,你底层的具体实现需要考虑的就仅仅是一些算法和一些具体的业务实现了。当你需要再开发另一个相近的项目时,你以前的抽象层说不定还可以再次利用 。面对对象的设计,复用的重点其实应该是抽象层的复用,而不是具体某一个代码块的复用。说到了抽象,我就不能不提到转载 2014-12-12 17:57:25 · 359 阅读 · 0 评论 -
ASCII,Unicode和UTF-8与java
今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料。结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚。下面就是我的笔记,主要用来整理自己的思路。但是,我尽量试图写得通俗易懂,希望能对其他朋友有用。毕竟,字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识。1. ASCII码我们知道,在计算机内部转载 2015-01-21 16:21:29 · 389 阅读 · 0 评论 -
深入理解JVM—字节码执行引擎
前面我们不止一次的提到,Java是一种跨平台的语言,为什么可以跨平台,因为我们编译的结果是中间代码—字节码,而不是机器码,那字节码在整个Java平台扮演着什么样的角色的呢?JDK1.2之前对应的结构图如下所示: 从JDK1.2开始,迫于Java运行始终笔C++慢的压力,JVM的结构也慢慢发生了一些变转载 2015-01-20 18:17:10 · 717 阅读 · 0 评论 -
java 类加载机制
类加载器类加载器(ClassLoader)用来加载 class字节码到 Java 虚拟机中。一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源文件在经过 Javac之后就被转换成 Java 字节码文件(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 java.lang.Class 类的一个实例。每一个这样的实例用来表示一个 Java 类。实际的情转载 2015-01-20 17:10:32 · 415 阅读 · 0 评论 -
java 编码方式
1:java中byte是以补码表示:2 : IO流操作的基本单元 观看io里面stream的操作,最终有两种:write(int b),write(byte[] bs),读的方式也一样。 其余的均是在这两种方式上进行封装处理。 由此也能看到文件操作的基本单元bit,而Java的基本单元是字节(byte),一个字节8个bit,字节能表示的范围为[0,255]。转载 2015-01-21 17:24:44 · 664 阅读 · 0 评论 -
java中byte转换int时为何与0xff进行与运算
在剖析该问题前请看如下代码0xFF 表达式的十进制数值是255 即 0000 0000 0000 0000 0000 0000 1111 1111public static String bytes2HexString(byte[] b) { String ret = ""; for (int i = 0; i String hex = Inte转载 2015-01-21 17:29:29 · 377 阅读 · 0 评论 -
jvm基本结构
欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 这一节,主要来学习jvm的基本结构,也就是概述。说是概述,内容很多,而且概念量也很大,不过关于概念方面,你不用担心,我完全有信心,让概念在你的脑子里变成图形,所以只要你有耐心,仔细,认真,并发挥你的想象力,这一章之后你会充满自信。当然,不是说看完本章,就对jvm了解了,转载 2015-01-05 10:18:25 · 802 阅读 · 0 评论 -
Java:方法的虚分派(virtual dispatch)和方法表(method table)
Java方法调用的虚分派JUN 2ND, 2013 | COMMENTS本文通过介绍 Java 方法调用的虚分派,来加深对 Java 多态实现的理解。需要预先理解 Java 字节码和 JVM 的基本框架。虚分配(Virtual Dispatch)首先从字节码中对方法的调用说起。Java 的 bytecode 中方法的调用实现分为四种指令:1.invo转载 2015-01-05 11:47:33 · 595 阅读 · 0 评论 -
Java静态绑定与动态绑定
绑定指的是:一个方法的调用和方法所在的类关联起来。绑定分为:1、静态绑定(又叫做前期绑定)在程序执行前就已经绑定,即在编译期间就知道这个方法属于哪个类,即编译器就已经绑定。在java中非常容易理解例子就是:方法中有static、final、private、构造函数。首先static方法不能被继承,只能被子类隐藏,例如:如果引用类型是父类,会调用父类中的static方法,如果引用原创 2014-12-24 15:23:51 · 1184 阅读 · 0 评论 -
java 数组的存储结构
1、存储基本数据类型的数组结构public class TestPrimitiveArray { public static void main(String[] args) { //1.定义数组 int[] numbers; //2.分配内存空间 numbers = new int[4]; //3.为数组转载 2015-01-13 15:43:50 · 1787 阅读 · 0 评论 -
java垃圾回收机制
垃圾收集GC(Garbage Collection)是Java语言的核心技术之一,垃圾收集的目的在于清除不再使用的对象。GC通过确定对象是否被活动对象引用来确定是否收集该对象。GC首先要判断该对象是否是时候可以收集。在java中是通过引用来和对象进行关联的,也就是说如果要操作对象,必须通过引用来进行。不失一般性,如果一个对象没有任何引用与之关联,则说明该对象基本不太可能在其他地方被使用到,那么这个原创 2015-01-09 17:17:28 · 515 阅读 · 0 评论 -
java数据存储
Java中数据存储区域包括:1.寄存器:最快的存储区,由编译器根据需求进行分配,我们在程序中无法控制. 2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)栈有一个很重要的特殊性,就是存在栈中的数据可以共享。假设我们同时定义: 复制内容到剪贴板代码: int原创 2014-12-17 17:37:31 · 489 阅读 · 0 评论 -
Java泛型
泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。” 1、泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。 2、同一种泛型可以对应多个版本(因为参数类型是不确定的),不同版本的泛型类实例是不兼容的。 3、泛型的类型参数可以有转载 2015-03-02 23:35:16 · 407 阅读 · 0 评论