JAVA语言
文章平均质量分 85
Barry_2012
这个作者很懒,什么都没留下…
展开
-
Java的纤程库 - Quasar
最近遇到的一个问题大概是微服务架构中经常会遇到的一个问题:服务 A 是我们开发的系统,它的业务需要调用 B 、 C 、 D 等多个服务,这些服务是通过http的访问提供的。 问题是 B 、 C 、 D 这些服务都是第三方提供的,不能保证它们的响应时间,快的话十几毫秒,慢的话甚至1秒多,所以这些服务的Latency比较长。幸运地是这些服务都是集群部署的,容错率和并发支持都比较高,所以不担心它转载 2017-08-08 09:21:20 · 786 阅读 · 0 评论 -
详解重写equals()方法就必须重写hashCode()方法的原因
从Object类的hashCode()和equals()方法讲起: 最近看了Object类的源码,对hashCode() 和equals()方法有了更深的认识。重写equals()方法就必须重写hashCode()方法的原因,从源头Object类讲起就更好理解了。先来看Object关于hashCode()和equals()的源码:[java]转载 2017-10-16 14:37:08 · 360 阅读 · 0 评论 -
JAVA8 十大新特性详解
一、接口的默认方法Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例如下:复制代码代码如下:interface Formula { double calculate(int a); default double sqrt(int a) { retur转载 2017-10-24 16:33:20 · 253 阅读 · 0 评论 -
Java语言与C语言混合编程(2)--在Java中调用C语言本地库
阅读目录一. 什么是JNI二. 编写带有native声明的方法的java类三. 使用javac命令编译所有的java类四. 使用javah命令生成.h文件五. 使用C/C++实现本地方法六. 将C/C++编写的文件生成动态链接库 在上一篇文章中介绍了Java语言中的native关键字,以及Java语言调用C语言的编译生成本地动态链接库(DLL)实现加法运算的小例子,本文通过一个更转载 2017-10-20 13:35:08 · 650 阅读 · 0 评论 -
Java语言与C语言混合编程(1)--Java native 关键字
阅读目录一. 什么是 native Method二. 为什么要使用 native Method三. JVM怎样使 native Method 跑起来四. Native关键字示例:Java调用C语言本地库五. 使用批处理文件编译运行程序回到顶部一. 什么是 native Method 简单地讲,一个 native Method 就是一个java调用非java代码转载 2017-10-20 13:34:15 · 3698 阅读 · 0 评论 -
java多态实现原理
众所周知,多态是面向对象编程语言的重要特性,它允许基类的指针或引用指向派生类的对象,而在具体访问时实现方法的动态绑定。C++ 和 Java 作为当前最为流行的两种面向对象编程语言,其内部对于多态的支持到底是如何实现的呢,本文对此做了全面的介绍。注意到在本文中,指针和引用会互换使用,它们仅是一个抽象概念,表示和另一个对象的连接关系,无须在意其具体的实现。Java 的实现方式J转载 2017-10-17 20:57:49 · 802 阅读 · 0 评论 -
HashMap,LinkedHashMap,TreeMap,HashTable的区别
Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数据的顺序是完全随机的。HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null;HashMap不支持线程的同步,即任一时刻可以有多个线程同时写Hash转载 2017-09-12 16:45:19 · 252 阅读 · 0 评论 -
HashSet,TreeSet和LinkedHashSet的区别
Set接口Set不允许包含相同的元素,如果试图把两个相同元素加入同一个集合中,add方法返回false。Set判断两个对象相同不是使用==运算符,而是根据equals方法。也就是说,只要两个对象用equals方法比较返回true,Set就不 会接受这两个对象。HashSetHashSet有以下特点 不能保证元素的排列顺序,顺序有可能发生变化 不是同步的 集合元转载 2017-09-12 16:44:17 · 263 阅读 · 0 评论 -
java NIO详解
前言我们在写java程序的时候,为了进行优化,把全部的精力用在了处理效率上,但是对IO的关注却很少。这也可能是由以前java早期时JVM在解释字节码时速度慢,运行速率大大低于本地编译代码,因此以前往往忽视了IO的优化。但是现在JVM在运行时优化已前进了一大步,现在的java应用程序更多的是受IO的束缚,也就是将时间花在等待数据传输上。现在有了NIO,就可以减少IO的等待时间,从而提转载 2017-09-01 13:25:45 · 292 阅读 · 0 评论 -
深入理解Java反射
要想理解反射的原理,首先要了解什么是类型信息。Java让我们在运行时识别对象和类的信息,主要有2种方式:一种是传统的RTTI,它假定我们在编译时已经知道了所有的类型信息;另一种是反射机制,它允许我们在运行时发现和使用类的信息。1、Class对象 理解RTTI在Java中的工作原理,首先需要知道类型信息在运行时是如何表示的,这是由Class对象来完成的,它包含了与类有关的信息。Cl转载 2017-09-15 14:33:27 · 233 阅读 · 0 评论 -
Java反射机制--是什么,为什么,怎么用。
往往当我们面对一项新的知识时,我们往往需要知道三个方面,它是什么,它能做什么,它比原有知识强在哪里,我们该怎么使用它。当你能够解决这些问题时,便意味着你已经对这项知识入门了。一、是什么 Java Reflaction in Action有这么一句话,可以解释。反射是运行中的程序检查自己和软件运行环境的能力,它可以根据它发现的进行改变。通俗的讲就是反射可以在运行时根据指定的类名获得转载 2017-09-15 14:24:10 · 359 阅读 · 0 评论 -
java异常简介及架构
Java异常简介 Java异常是Java提供的一种识别及响应错误的一致性机制。 Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性。在有效使用异常的情况下,异常能清晰的回答what, where, why这3个问题:异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪“抛出,异常信息回答了“为什么“会抛出。Java异常机制用转载 2017-08-10 22:29:47 · 269 阅读 · 0 评论 -
Integer类型值相等或不等分析
看到博客园一位博友写的面试问题,其中一题是 Integer a = 1; Integer b = 1 ; (a == b)?true :false; 当时我一看,这不是明显的true 嘛, 看到评论讨论才知道,对于Integer值比较 有范围规定 。平时都是用equals做比较判断,简单省事。没注意到这些细节。正好趁此机会好好谷歌了一下,以此做个备份。 用以下代码做测试转载 2017-08-09 12:58:46 · 1484 阅读 · 0 评论 -
String被设计成不可变和不能被继承的原因
String是所有语言中最常用的一个类。我们知道在Java中,String是不可变的、final的。Java在运行时也保存了一个字符串池(String pool),这使得String成为了一个特别的类。主要是为了 “ 效率 ” 和 “ 安全性 ” 的缘故。 若 String 允许被继承, 由于它的高度被使用率, 可能会降低程序的性能,所以 String 被定义成 final。 一:转载 2017-08-09 13:04:10 · 240 阅读 · 0 评论 -
java中String、StringBuffer、StringBuilder的区别
java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题。现在总结一下,看看他们的不同与相同。1.可变与不可变 String类中使用字符数组保存字符串,如下就是,因为有“final”修饰符,所以可以知道string对象是不可变的。 private final char value[];转载 2017-08-09 12:27:40 · 213 阅读 · 0 评论 -
自定义注解,利用反射进行解析
Java注解能够提供代码的相关信息,同时对于所注解的代码结构又没有直接影响。在这篇教程中,我们将学习Java注解,如何编写自定义注解,注解的使用,以及如何使用反射解析注解。注解是Java 1.5引入的,目前已被广泛应用于各种Java框架,如Hibernate,Jersey,Spring。注解相当于是一种嵌入在程序中的元数据,可以使用注解解析工具或编译器对其进行解析,也可以指定注解在编译期或转载 2017-08-08 15:59:20 · 312 阅读 · 0 评论 -
final、finally和finalize的区别
final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。finally是异常处理语句结构的一部分,表示总是执行。finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类转载 2017-08-08 10:10:07 · 274 阅读 · 0 评论 -
java网络编程面试题
1.网络编程时的同步、异步、阻塞、非阻塞?同步:函数调用在没得到结果之前,没有调用结果,不返回任何结果。异步:函数调用在没得到结果之前,没有调用结果,返回状态信息。阻塞:函数调用在没得到结果之前,当前线程挂起。得到结果后才返回。非阻塞:函数调用在没得到结果之前,当前线程不会挂起,立即返回结果。2.Java如何实现无阻塞方式的Socket编程?NIO有效解决了多线转载 2017-10-17 09:18:25 · 587 阅读 · 0 评论