Category: Java / Jsp

java中HashMap的用法

重点介绍HashMap。首先介绍一下什么是Map。在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value。在下文中会有例子具体说明。 再来看看HashMap和TreeMap有什么区别。HashMap通过hashcode对其内容进行快速查找,而TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固定的)。 import java.util.Map; import java.util.HashMap; import java.util.Set… Read More

JAVA: 读写文件的几种方法

如果您使用java8,可以也参考这篇文章:JAVA: Java8流逐行读取文件 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; public class MainClass { public static void main(String args) { }

JAVA: 理解Java中的类初始化

在运行 Java 代码时,很多时候需要弄清楚程序执行的流程,而面向对象的 Java 程序并非像主要为面向过程而设计的 C 语言一样去顺序执行(简单按照代码的顺序),这使得对于类文件的加载以及执行流程的理解非常重要。本文简单介绍了 Java 类的初始化部分具体过程,包括成员变量、静态代码块、构造函数等的初始化时机及执行流程。 初始化时机 根据 javase 8 的文档说明[1],一个类(本文暂不考虑接口)T 将在下列情况第一次出现前立即被初始化: T 的一个实例被创建[2]; T 的一个静态方法被调用; T 声明的一个静态变量被赋值; T 声明的一个静态变量被使用并且这个变量不是常量[3]; 暂不考虑这种情况(涉及到顶层类,断言,内部类等)… Read More

JAVA:获得平台相关的行分隔符、路径分隔符,兼容各平台

【问题】 不同系统平台下的行分隔符、路径分隔符等常常不同。如 行分隔符在windows 下是 \r\n,在Linux下面是 \n, 在Mac下是 \r 路径分隔符在windows下是 \ ,在LInux下是 / ——来自网络资料 如何在Java程序获取当前平台的分隔符,以及其他系统相关的状态呢? import java.util.Properties; public class SeparatorUtils { /* system properties to get separators */ static final Properties PROPERTIES = new Properties(System.getProperties()); /** * get… Read More

JAVA: 史上最全maven pom.xml详解

什么是pom? pom作为项目对象模型。通过xml表示maven项目,使用pom.xml来实现。主要描述了项目:包括配置文件;开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以及其他所有的项目相关因素。 快速察看: xml 代码 <project> <modelVersion>4.0.0</modelVersion> <groupId>...</groupId> <artifactId>...</artifactId> <version>...</version> &… Read More

JAVA: Java8流逐行读取文件

在Java8中,可以使用Files.lines读取文件的流。 c://lines.txt – 用于测试的简单文本文件 line1 line2 line3 line4 line5 核心代码: Write to file using BufferedWriter //Get the file reference Path path = Paths.get("c:/output.txt"); //Use try-with-resource to get auto-closeable writer instance try (BufferedWriter writer = Files.newBufferedWriter(path)) { writer.write("Hel… Read More

JAVA: Google Sheet API V4 入门二 :基本写入

利用 Sheets API,您可以向单元格、范围、范围集以及整个工作表写入值和公式。 本页面上的示例说明了如何使用此 API 的 spreadsheets.values 集合实现一些常用的写入操作。 请注意,也可以使用 spreadsheet.batchUpdate 方法写入单元格值,如果您希望同步更新单元格格式设置或 spreadsheets.values 集合不会影响的其他属性,此方法将非常实用。不过,对于简单的值写入操作,使用 spreadsheets.values.update 或 spreadsheets.values.batchUpdate 更简单。 在这些示例中,占位符 spreadsheetId 用于表示您需要提供… Read More

JAVA: Google Sheet API V4 入门一 :基本读取

利用 Sheets API,您可以读取单元格、范围、范围集以及整个工作表中的值。 本页面上的示例说明了如何使用此 API 的 spreadsheets.values 集合实现一些常用的读取操作。您也可以使用 spreadsheets.get 方法读取单元格值,不过在大多数情况下,使用 spreadsheets.values.get 或 spreadsheets.values.batchGet 更加简单。 在这些示例中,占位符 spreadsheetId 用于表示您需要提供电子表格 ID 的位置,可以从电子表格网址中找到此 ID。要读取的范围在请求网址中使用 A1 表示法指定。 这些示例均假设要读取的电子表格在其第一个工作表(“Sheet… Read More

JAVA: Google Guice 学习AOP (面向切面的编程)

Guice的AOP还是很弱的,目前仅仅支持方法级别上的,另外灵活性也不是很高。看如下示例: Guice支持AOP的条件是: 类必须是public或者package (default) 类不能是final类型的 方法必须是public,package或者protected 方法不能使final类型的 实例必须通过Guice的@Inject注入或者有一个无参数的构造函数 且看示例代码 1、定义接口 package com.guice.AOP; import com.google.inject.ImplementedBy; @ImplementedBy(ServiceImpl.class) public interface Serv… Read More

JAVA: Google Guice入门教程

Google Guice 是一个轻量级的依赖注入框架,它支持Java 5或者更高版本的JDK,得利于Java 5中提供的泛型 (Generics) 和注解 (Annotations) ,它可以使得代码类型安全 (type-safe) 。那么何时使用在代码中使用 Guice 进行注入呢?一般来说,如果在你的应用代码中业务对象 (Business Objects) 之间的关系或者依赖需要手动维护的话,你就可以使用Guice 进行注入。 该文章中,首先我将通过一些例子来初步的认识一下 Guice 框架,然后我将介绍下 依赖注入框架的理论知识 以及在应用程序中使用依赖注入的好处,同样我也会和大家探讨一下 Guice 提供的用于简化代码的 API (包… Read More

PHP: Composer 依赖管理 Composer Cheat Sheet for developers 安装和用法

简单来说,Composer 是一个新的安装包管理工具,服务于 PHP 生态系统。它实际上包含了两个部分:Composer 和 Packagist。下面我们就简单说一下他们各自的用途。   Composer Composer 是由 Jordi Boggiano 和 Nils Aderman 创造的一个命令行工具,它的使命就是帮你为项目自动安装所依赖的开发包。Composer 中的很多理念都借鉴自 npm 和 Bundler,如果你对这两个工具有所了解的话,就会在 composer 中发现他们的身影。Composer 包含了一个依赖解析器,用来处理开发包之间复杂的依赖关系;另外,它还包含了下载器、安装器等有趣的东西。 对于现代语言而… Read More

JAVA: 解决报错Exception in thread “main” java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V

用到selenium webdiver的是,发现报错: Exception in thread “main” java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V 解决方法,在maven的porm.xml的配置文件中加载最新版的google guava <dependency> <groupId>com.google.g… Read More

Java: logback入门使用(Maven)及logback.xml常用配置详解

  概览 简单地说,Logback 是一个 Java 领域的日志框架。它被认为是 Log4J 的继承人。Logback 主要由三个模块组成: logback-core logback-classic logback-access logback-core 是其它模块的基础设施,其它模块基于它构建,显然,logback-core 提供了一些关键的通用机制。logback-classic 的地位和作用等同于 Log4J,它也被认为是 Log4J 的一个改进版,并且它实现了简单日志门面 SLF4J;而 logback-access 主要作为一个与 Servlet 容器交互的模块,比如说 tomcat 或者 jetty,提供一些与 HTTP 访问… Read More