设置 Java 构建路径Java构建路径用于在编译Java项目时找到依赖的类,包括以下几项:源码包项目相关的 jar 包及类文件项目引用的的类库我们可以通过使用 Java 项目属性对话框中的 Java Build Path(Java 构建路径)选项来查看和修改 Java 构建路径。
打开新建 Java 接口向导新建 Java 接口向导可以创建新的 Java 接口。打开向导的方式有:点击 File 菜单并选择 New > Interface在 Package Explorer 窗口中右击鼠标并选择 New > Interface在工具条上的下拉框按钮中 选择 在打开创建 Java 接口向导前,最好选择好Java接口所属的包名,这样在创建 Java 接口时包名字段就会自动填充。
打开新建 Java 类向导你可以使用新建 Java 类向导来创建 Java 类,可以通过以下途径打开 Java 类向导:点击 "File" 菜单并选择 New > Class在 Package Explorer 窗口中右击鼠标并选择 New > Class点击类的下拉按钮 并选择在打开创建 Java 类向导前,最好选择好Java类所属的包名,这样在创建 Java 类时包名字段就会自动填充。
打开新建 Java 包向导你可以使用新建 Java 包向导来创建 Java 包。Java 包向导打开方式有:通过点击 "File" 菜单并选择 New > Package在 Package Explorer 中通过右击鼠标选择 > Package在工具条上点击包按钮 如果你要创建子包,在打开创建 Java 包向导前选择好父包,这样在名称字段就有了父包的值。
打开新建 Java 项目向导通过新建 Java 项目向导可以很容易的创建 Java 项目。打开向导的途径有:通过点击 "File" 菜单然后选择 New > Java Project在项目浏览器(Project Explorer)窗口中鼠标右击任一地方选择 New > Java Project在工具条上点击新建按钮 并选择 Java Project使用新建 Java 项目向导新建 Java 项目向导有两个页面。
JAVA目前的问题并不在于性能,因为JIT自动优化过的代码已经跟C匹敌了。
1. 下面哪个流类属于面向字符的输入流?A. BufferedWriterB. FileInputStreamC. ObjectInputStreamD. InputStreamReader答案:D解析:Java 的 IO 操作中有面向字节(Byte)和面向字符(Character)两种方式。 面向字节的操作为以 8 位为单位对二进制的数据进行操作,对数据不进行转换,这些类都是 InputStream 和 OutputStream 的子类。
序列化与反序列化是我们日常数据持久化和网络传输中经常使用的技术,但是目前各种序列化框架让人眼花缭乱,不清楚什么场景到底采用哪种序列化框架。本文会将业界开源的序列化框架进行对比测试,分别从通用性、易用性、可扩展性、性能和数据类型与Java语法支持五方面给出对比测试。
最近拜读了一些Java Map的相关源码,不得不惊叹于JDK开发者们的鬼斧神工。他山之石可以攻玉,这些巧妙的设计思想非常有借鉴价值,可谓是最佳实践。然而,大多数有关Java Map原理的科普类文章都是专注于“点”,并没有连成“线”,甚至形成“网状结构”。因此,本文基于个人理解,对所阅读的部分源码进行了分类与总结,归纳出Map中的几个核心特性,包括:自动扩容、初始化与懒加载、哈希计算、位运算与并发,并结合源码进行深入讲解,希望看完本文的你也能从中获取到些许收获(本文默认采用JDK1.8中的HashMap)。
UTF-8 变长字节编码,一个字符需要使用1个、2个或者3个byte表示。由于中文通常需要3个字节表示,中文场景UTF-8编码通常需要更多的空间,替代的方案是GBK/GB2312/GB18030。
写JAVA代码的同学都知道,JAVA里的锁有两大类,一类是synchronized锁,一类是concurrent包里的锁(JUC锁)。其中synchronized锁是JAVA语言层面提供的能力,在此不展开,本文主要讨论JUC里的ReentrantLock锁。
1、使用java8新特性stream进行List去重 (distinct()方法)2、借助Set的特性进行去重(set和list转换去重 )
AntAnt 是 Apache 组织下的一个跨平台的项目构建工具,它是一个基于任务和依赖的构建系统,是过程式的。开发者需要显示的指定每一个任务,每个任务包含一组由 XML 编码的指令,必须在指令中明确告诉 Ant 源码在哪里,结果字节码存储在哪里,如何将这些字节码打包成 JAR 文件。Ant 没有生命周期,你必须定义任务和任务之间的依赖,还需要手工定义任务的执行序列和逻辑关系。
关于 Java 插件Gradle 是一个通用的构建工具,它能构建任何基于你的构建脚本的东西。开箱即用,当然除非你添加代码到你的构建脚本里,不然它不会构建任何东西。很多 Java 项目都有类似的基本流程:编译 Java 源文件,运行单元测试,创建 JAR 文件。如果你不是把代码从头写到尾,那还能接受。现在有了 Gradle 就不用忍受这些。解决问题的方法就是 插件。
# 执行 Java 代码你可以用 Ant 来执行 Java 代码。在下面的例子中,给出的 java 类文件需要一个参数(管理员的邮箱地址),执行后将发送一封邮件。public class NotifyAdministrator{ public static void main(String[] args) { String email = args[0]; notifyAdministratorviaEmail(email); System.out.
一些开源的测试框架比如JUnit,TestNG能够帮助你编写可复用的结构化的测试,为了运行这些测试,你要先编译它们,就像编译源代码一样。测试代码的作用仅仅用于测试的情况,你可不想把你的测试代码发布到生产环境中,把源代码和测试代码混在一起可不是个好主意。通常你会把源代码和测试代码分开来,比如Gradle的标准项目布局src/main/java和src/test/java。
上一节我们简要介绍了如何编写一个单机的To Do应用,接下来要打包部署成可执行的应用,我们需要编译源代码,生成的class文件需要打包到JAR文件中。JDK提供了javac 和jar工具帮助你实现这些任务,但是你也不想每次源代码发生变化时你都手动去执行这些任务吧。
Java 插件如你所见,Gradle 是一个通用工具。它可以通过脚本构建任何你想要实现的东西,真正实现开箱即用。但前提是你需要在脚本中编写好代码才行。大部分 Java 项目基本流程都是相似的:编译源文件,进行单元测试,创建 jar 包。使用 Gradle 做这些工作不必为每个工程都编写代码。Gradle 已经提供了完美的插件来解决这些问题。
从Gradle2.1开始,可以使用Java增量编译,此功能正在孵化,参见JavaCompile如何启用这个功能. 增量编译的主要目标如下:避免在没必要编译的java编译资源上浪费时间.这意味着更快构建,尤其是在改变一些class与jar的时候,不需要再次编译那些不依赖这些class与jar的文件.尽可能地少输出class.类不需要重新编译意味着保持输出目录不变。
java 插件为项目的每一个 source set 增加了一个 JavaCompile 实例, 最常见的配置选项如下所示:表22.13.java 插件-编译配置任务属性类型默认值classpathFileCollectionsourceSet.compileClasspathsourceFileTree,可以在Section 15.6, “Copying files”中查看可以设置什么.sourceSet.javadestinationDirFile.sourceSet.output.
关注时代Java