java

AL
移动应用开发行业在过去的五年里飞速地成倍增长,改变了全球企业功能。随着企业在最近一段时间调整移动应用到他们的生产力,以及他们跨平台移动设备的快速创新;它需要移动应用程序开发人员使用单一语言和许多的可重用代码为许多不同的平台编写应用程序的多个版本。你有兴趣吗
Alix-Axel 1年前发布
TH
最流行的工具并不一定是“最好的”,对于开发来说,什么是最好的,取决于使用场景。然而,当选择工具时,流行程度是不可忽视的一个重要因素,并不是因为工具的流行增加了其价值,而是因为广泛使用的社区带来了无价的资源和支持。 流行的工具更容易学习,因为会有很多人乐意帮
Thang-Pham 1年前发布
在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。 也许有朋友会问,既然都可以通过synchronized来实现同步访问了,那么为什
dexcoder 1年前发布
String 是Java中一个不可变的类,所以他一旦被实例化就无法被修改。不可变类的实例一旦创建,其成员变量的值就不能被修改。不可变类有很多优势。本文总结了为什么字符串被设计成不可变的。将涉及到内存、同步和数据结构相关的知识。 字符串池 字符串池是方法区中的一部分特殊
dexcoder 1年前发布
自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题。本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇到的与装箱、拆箱相关的问题。 以下是本文的目录大纲: 一.什么是装箱?什么是拆箱? 二.装箱和拆箱是如何实
dexcoder 1年前发布
我们采访了11位专业商务人士,他们中大部分人都有从事涉及 Java 生态系统相关的工作。我向他们询问了一些问题,在他们职业生涯中用Java 解决了哪些实际问题。 我们采访了这些人: Anthony Kilman, Tech Lead, AppDynamics |Gil Tene, CTO, Azul Systems |Bhartendu Sharma, Vi
dexcoder 1年前发布
什么是同步?什么是异步?阻塞和非阻塞又有什么区别?本文先从 Unix 的 I/O 模型讲起,介绍了5种常见的 I/O 模型。而后再引出 Java 的 I/O 模型的演进过程,并用实例说明如何选择合适的 Java I/O 模型来提高系统的并发量和可用性。 由于,Java 的 I/O 依赖于操作系统的实现,
dexcoder 1年前发布
序列化是一种对象持久化的手段。普遍应用在网络传输、RMI等场景中。本文通过分析ArrayList的序列化来介绍Java序列化的相关内容。主要涉及到以下几个问题: 怎么实现Java的序列化 为什么实现了java.io.Serializable接口才能被序列化 transient的作用是什么 怎么自定义序列化策
dexcoder 1年前发布
在Java中没有sizeof运算符,所以没办法知道一个对象到底占用了多大的空间,但是在分配对象的时候会有一些基本的规则,我们根据这些规则大致能判断出来对象大小。 对象头 对象的头部至少有两个WORD,如果是数组的话,那么三个WORD,内容如下: 对象的HashCode,锁信息等 到对象
dexcoder 1年前发布
大多数并发都是通过任务执行的方式来实现的。一般有两种方式执行任务:串行和并行。 class SingleThreadWebServer { public static void main(String[] args) throws Exception { ServerSocket socket = new ServerSocket(80); while(true) {
dexcoder 1年前发布
Java时间戳.png 百度百科: 时间戳(timestamp),通常是一个字符序列,唯一的标识某一刻的时间。 在编程语言中,时间戳表示自 1970 年 1 月 1 日(08:00:00 GMT) 年至当前时间所经过的秒数或毫秒数,也称之为 Unix 时间戳。故,1970年之前的时间对应的时间戳为负数。 由于精
dexcoder 1年前发布
前言 java多线程分类中写了21篇多线程的文章,21篇文章的内容很多,个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。 这些多线程的问题,有些来源于
dexcoder 1年前发布
对于前不久 Oracle 裁掉了一部分 Java 布道师,近日一位 Oracle 前高管称其为该机构对 Java 的“计划报废”。如果这个计划是属实的,那么对于寻常的开发者、已经采用了 Java 的公司、预备选择 Java 作为基础的创业者,究竟又会产生什么样的影响?近日,Jason Whaley 在 Dzone
dexcoder 1年前发布
不久之前,我面试了一些求职Java高级开发工程师的应聘者。我常常会面试他们说,“你能给我介绍一些Java中得弱引用吗?”,如果面试者这样说,“嗯,是不是垃圾回收有关的?”,我就会基本满意了,我并不期待回答是一篇诘究本末的论文描述。 然而事与愿违,我很吃惊的发现,在
dexcoder 1年前发布
Q:什么是很少被回答的问题? 一个问题如果被回答地很少,有可能是因为知道答案的人很少,亦或是因为问题本身模糊不清、微不足道(但对你来讲可能很关键)。我似乎发明了一个术语,但是它在一个信息量很大的叫做About.com Urban legends 网站里也被提到了。Java相关的常见问题
dexcoder 1年前发布
1、带着疑问看图 1)竞争对象的锁和竞争CPU资源以及竞争被唤醒 2)何种情况下获取到了锁,何种情况下会释放锁 2、还是那张图 3、详细图解 1)Thread t = new Thread(),初始化一个线程,实际上就是一个普通对象,此时他的状态为New 2)t.start(); 线程处于就绪状态(可运行状
dexcoder 1年前发布
最近被陆陆续续问了几遍HashMap的实现,回答的不好,打算复习复习JDK中的集合框架,并尝试分析其源码,这么做一方面是这些类非常实用,掌握其实现能更好的优化我们的程序;另一方面是学习借鉴JDK是如何实现了这么一套优雅高效的类库,提升编程能力。 在介绍具体适合类之前,本
dexcoder 1年前发布
Java中HashMap是一种用于存储“键”和“值”信息对的数据结构。不同于Array、ArrayList和LinkedLists,它不会维持插入元素的顺序。 因此,在键或值的基础上排序HashMap是一个很难的面试问题,如果你不知道如何解决的话。下面让我们看看如何解决这个问题。 1. HashMap存储每对
dexcoder 1年前发布
为对象的类型做强制转换是一种非常不好的设计。但在某些情况下,我们没有其他选择。Java自诞生的那一天起,就具备这种功能。 我认为Java 8在一定程度改善了这项古老的技术。 静态转型 Java中最常用的转型方式如下: 静态转型 Object obj; // may be an integer if (obj insta
dexcoder 1年前发布
JSR 354定义了一套新的Java货币API,计划会在Java 9中正式引入。本文中我们将来看一下它的参考实现:JavaMoney的当前进展。 正如我在之前那篇Java 8新的日期时间API一文中那样,本文主要也是通过一些代码来演示下新的API的用法 。 在开始之前,我想先用一段话来简短地总结一下
dexcoder 1年前发布