
java基础篇
文章平均质量分 86
淡淡的倔强
不怕千万人阻挡,只怕自己投降!
展开
-
I/O流
前言 I/O是Input/Output的缩写, I/O技术是非常实用的技术,如读/写文件,网络通讯等等。 流(Stream)是指从源节点到目标节点的数据流动。 源节点和目标节点可以是文件、网络、内存、键盘、显示器等等。 源节点的数据流称为输入流(用来读取数据)。 目标节点的数据流称为输出流(用来写入数据)。Java中使用流来处理程序的输入和输出操作,流是一个抽象的概原创 2017-05-11 21:21:27 · 1502 阅读 · 0 评论 -
为什么String要设计成不可变的?
前言 在Java中将String设计成不可变的是综合考虑到各种因素的结果,想要理解这个问题,需要综合内存,同步,数据结构以及安全等方面的考虑. 在下文中,我将为各种原因做一个小结。1. 字符串常量池的需要字符串常量池(String pool, String intern pool, String保留池) 是Java堆内存中一个特殊的存储区域, 当创建一个String对象时,假如此...转载 2018-02-27 16:20:22 · 1359 阅读 · 0 评论 -
泛型的内部原理:类型擦除以及类型擦除带来的问题
前言之前碰到过泛型的一些问题,在这里转载下一篇写得比较详细的博客,原文地址: 泛型的内部原理:类型擦除以及类型擦除带来的问题 Java的泛型是伪泛型。为什么说Java的泛型是伪泛型呢?因为,在编译期间,所有的泛型信息都会被擦除掉。正确理解泛型概念的首要前提是理解类型擦出(type erasure)。 Java中的泛型基本上都是在编译器这个层次来实现的。在生成的Java字节码...转载 2018-02-22 00:06:28 · 1355 阅读 · 0 评论 -
Java8—ConcurrentHashMap分析
前言ConcurrentHashMap在JDK8中进行了巨大改动,很需要通过源码来再次学习下Doug Lea的实现方法。它摒弃了java7中Segment(锁段)的概念,而是启用了一种全新的方式实现,利用CAS算法。它沿用了与它同时期的HashMap版本的思想,底层依然由“数组”+链表+红黑树的方式思想(JDK7与JDK8中HashMap的实现),但是为了做到并发,又增加了很多辅助的类,例如Tree转载 2017-05-10 15:38:23 · 3496 阅读 · 0 评论 -
Java8—HashMap解析
摘要HashMap的内部表示在Java8中得到很大的改进,比如说在Java7中实现HashMap需要1k行代码,而在Java8中需要2K行代码。在Java8中内部仍然以数组实现,但是以节点(Node)来作为Entry存储信息,并且同样也包括链表。一、重要的概念从结构实现来讲,HashMap是数组+链表+红黑树(JDK1.8增加了红黑树部分)实现的,如下如所示。Node是HashMap的一个内部类,实原创 2017-05-10 11:52:23 · 1636 阅读 · 0 评论 -
Java集合迭代器之fail-fast机制
摘要在JDK的Collection中我们时常会看到类似于这样的话:例如,ArrayList: 注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证。快速失败迭代器会尽最大努力抛出 ConcurrentModificationException。因此,为提高这类迭代器的正确性而编写一个依赖于此异常的程序是错误的做法:迭代器的快速失败行为应该仅用于检测转载 2017-05-10 09:48:26 · 2220 阅读 · 0 评论 -
重载与重写的区别
有些基础的东西,可能平常用习惯了,有些情况可能漏掉,所以mark下。重写方法的规则:1)、参数列表必须完全与被重写的方法相同,否则不能称其为重写而是重载。2)、返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载。3)、访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private)4)...原创 2018-08-22 14:08:27 · 217 阅读 · 0 评论 -
java.lang包介绍
前言 java.lang包是java语言的核心,它提供了java中的基础类。包括基本Object类、Class类、String类、基本类型的包装类、基本的数学类等等最基本的类。我们介绍一下Java 8中的java.lang包。主要类如下图:下面分别介绍其中比较常用的类:一、类型对象基类 Object,是java.lang的根类,也是所有类的超类。类 Class...原创 2018-02-24 14:33:35 · 29640 阅读 · 3 评论 -
Java8中所有的包列表及介绍
一、常用的基础类库:11个jar(Java Archive,Java归档)包作为java语言使用者,我们可以感受到java语言带来的优势(平台无关、面向对象、多线程、高效易扩展等),而且它有很多已经实现的类库可以供我们直接使用,这些类库都是以jar包的形式提供的,也可以成为java API,它为编程者实现了各种常用操作的方法,为程序员编写java程序代码带来了许多方便。 了解了Java...原创 2018-02-22 23:03:11 · 3546 阅读 · 0 评论 -
Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
位运算符主要针对二进制,它包括了:“与”、“非”、“或”、“异或”。从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算。下面详细介绍每个位运算符。1.与运算符 与运算符用符号“&”表示,其使用规律如下: 两个操作数中位都为1,结果才为1,否则结果为0,例如下面的程序段。 public class data13 {转载 2017-05-10 08:50:31 · 1597 阅读 · 0 评论 -
Java异常处理机制以及try-catch-finally-return执行顺序
一、异常:在Java语言中,将程序执行中发生的不正常情况称为“异常”,异常是一种对程序运行过程中发生错误时进行通知的机制。如:网络连接失败、用户输入错误或打开文件失败等。异常以对象的形式出现,不同的异常对象中封装了相应的错误信息 二、JAVA异常类: Java语言提供了两大类异常: 编译时异常(受检异常) 运行时异常(非受检异常) 编译时异常:指程序中必须接受检查和处理的异常,由E原创 2017-05-12 23:33:53 · 2023 阅读 · 0 评论 -
Java核心技术点之注解
一、什么是注解我们大家都知道Java代码中使用注释是为了向以后阅读这份代码的人解释说明一些事情,注解是注释的升级版,它可以向编译器、虚拟机等解释说明一些事情。比如我们非常熟悉的@Override就是一种元注解,它的作用是告诉编译器它所注解的方法是重写父类的方法,这样编译器就会去检查父类是否存在这个方法,以及这个方法的签名与父类是否相同。也就是说,注解是描述Java代码的代码,它能够被编译器解析,注解转载 2017-05-12 16:00:15 · 1608 阅读 · 0 评论 -
httpclient远程调用
使用httpclient进行远程调用,需要的maven pom: <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5</version> </dependency>代码如下:im原创 2017-04-24 09:29:45 · 3117 阅读 · 0 评论