在Java中,它的内存管理包括两方面:内存分配(创建Java对象的时候)和内存回收,这两方面工作都是由JVM自动完成的,降低了Java程序员的学习难度,避免了像C/C++直接操作内存的危险。但是,也正因为内存管理完全由JVM负责,所以也使Java很多程序员不再关心内存分配,导致很多程序低效,耗内存。因此就有了Java程序员到最后应该去了解JVM,才能写出更高效,充分利用有限的内存的程序。1.Java在内存中的状态首先我们先写一个代码为例...
8年前 (2016-09-02)
阅读(2059)
赞一个 (0 )
链接直达
来自非营利性Eclipse基金会的Eclipse IDE以其插件生态系统著称。Eclipse市场拥有海量插件可供下载,你可以通过插件定制自己的Eclipse。最近我在Eclipse Marketplace闲逛,想看看能不能发现一些有意思的东西。实际上,我确实找到了一些在我看来虽然不是很有名却很酷的东西,想在这里和大家分享。流行 vs 酷我关注的插件具备以下特性:首先,我要强调的是这些插件本身不是某种工具,所以我最喜欢的JRebel和JB...
8年前 (2016-09-02)
阅读(2112)
赞一个 (0 )
链接直达
JDBC(Java Database Connectivity): JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外,JDCB对数据库的访问也具有平台无关性。JNDI(Java Name and Directory Interface): JNDI API被用于执行名字和目录服务。它提供了一致的模型来存取和操作企业级的资源如DNS和LDAP,本地文件系统,或应用服务器中的对...
8年前 (2016-09-02)
阅读(2188)
赞一个 (0 )
链接直达
本文作者是一名拥有多年Java开发经验的程序员,他从经验中得出,并不是所有的Java SE功能/API都值得程序员去使用,比如本文列举的这6个,大家在使用前得慎重对待。以下是对原文的摘译。多年的Java开发经验告诉我,从长远角度来看,以下这些Java SE功能/API,开发者最好停止使用。 ReflectionBytecode manipulation ThreadLocalsClassloadersWeak/Sof...
8年前 (2016-09-02)
阅读(2262)
赞一个 (0 )
链接直达
我最近要处理一套存储历史实时数据的大文件fx market data,我很快便意识到,使用传统的InputStream不能够将它们读取到内存,因为每一个文件都超过了4G。甚至编辑器都不能够打开这些文件。在这种特殊情况下,我可以写一个简单的bash脚本将这些文件分成更小的文件块,然后再读取它。但是我不想这样做,因为二进制格式会使这个方法失效。处理这个问题的方式通常就是使用内存映射文件递增地处理区域的数据。关于内存映射文件的一个好处就是它们...
8年前 (2016-09-02)
阅读(2335)
赞一个 (1 )
链接直达
下面的这些都算是比较高级的问题了,面试中一般也很少问到,因为它们可能会把面试者拒之门外。不过你可以自己找个时间来实践一下。1、System.exit(0)会跳过finally块的执行System.setSecurityManager(new SecurityManager() {
@Override
public&nb...
8年前 (2016-09-02)
阅读(2049)
赞一个 (2 )
链接直达
一图胜千言,下面图解均来自Program Creek 网站的Java教程,目前它们拥有最多的票选。如果图解没有阐明问题,那么你可以借助它的标题来一窥究竟。1、字符串不变性下面这张图展示了这段代码做了什么 String s = "abcd"; &nb...
8年前 (2016-09-02)
阅读(2185)
赞一个 (0 )
链接直达
通常来说,Map是一个由键值对组成的数据结构,且在集合中每个键是唯一的。下面就以K和V来代表键和值,来说明一下java中关于Map的九大问题。
1、将Map转换为List类型
在java中Map接口提供了三种集合获取方式:Key set,,value set, and key-value set.。它们都可以通过构造方法或者addAll()方法来转换为List类型。下面...
8年前 (2016-09-02)
阅读(2256)
赞一个 (2 )
链接直达
总结一下有关Java数组经常用到的方法1、定义一个数组String[] aArray = new String[5];
String[] bArray = {"a", "b", "c", "d", "e"...
8年前 (2016-09-02)
阅读(3142)
赞一个 (0 )
链接直达
在这个信息相当繁杂的互联网时代,我们已经学会了如何利用搜索引擎这个强大的利器来找寻目标信息,比如你会在Google上搜索情人节如何讨女朋友欢心,你也会在百度上寻找正规的整容医疗机构(尽管有很大一部分广告骗子)。那么如果在你自己开发的网站系统中需要能让用户搜索一些重要的信息,并且能以结构化的结果展现给用户,下面分享的这9款Java搜索引擎框架或许就可以帮助到你了。1、Java 全文搜索引擎框架 Lucene毫无疑问,Lucene...
8年前 (2016-09-02)
阅读(2155)
赞一个 (0 )
链接直达
如果你是一个起步者或者只是刚刚开始学习 Java,你或许会疑虑,Java 到底是在哪里被运用的呢?除了 Minecraft 这款游戏以外,你没有见过用 Java 编写的游戏吧?桌面工具 Adobe Acrobat、微软的 Office 办公软件,他们都不是用 Java 编写,以至于连我们电脑所应用的操作系统(Linux 和 Windows)都不是,那么人们如何运用 Java 的呢?现实世界中到底有没有运用 Java 的应用呢?这个问题所...
8年前 (2016-09-02)
阅读(2252)
赞一个 (0 )
链接直达
在java中我们可以使用java.util.Random类来产生一个随机数发生。它有两个构造函数,分别是Random()和Random(long seed)。Random()是用当前时间即System.currentTimeMillis()作为发生器的种子,而Random(long seed)是用指定的seed作为发生器的种子。 当随机数发生器就是Random对象产生以后,可以通过对象调用不同的方法:nextInt()、nex...
8年前 (2016-09-02)
阅读(2234)
赞一个 (2 )
链接直达