Category: Java / Jsp
重点介绍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
如果您使用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 程序并非像主要为面向过程而设计的 C 语言一样去顺序执行(简单按照代码的顺序),这使得对于类文件的加载以及执行流程的理解非常重要。本文简单介绍了 Java 类的初始化部分具体过程,包括成员变量、静态代码块、构造函数等的初始化时机及执行流程。
初始化时机
根据 javase 8 的文档说明[1],一个类(本文暂不考虑接口)T 将在下列情况第一次出现前立即被初始化:
T 的一个实例被创建[2];
T 的一个静态方法被调用;
T 声明的一个静态变量被赋值;
T 声明的一个静态变量被使用并且这个变量不是常量[3];
暂不考虑这种情况(涉及到顶层类,断言,内部类等)…
Read More
【问题】
不同系统平台下的行分隔符、路径分隔符等常常不同。如
行分隔符在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
什么是pom?
pom作为项目对象模型。通过xml表示maven项目,使用pom.xml来实现。主要描述了项目:包括配置文件;开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以及其他所有的项目相关因素。
快速察看:
xml 代码
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
&…
Read More
在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
利用 Sheets API,您可以向单元格、范围、范围集以及整个工作表写入值和公式。 本页面上的示例说明了如何使用此 API 的 spreadsheets.values 集合实现一些常用的写入操作。
请注意,也可以使用 spreadsheet.batchUpdate 方法写入单元格值,如果您希望同步更新单元格格式设置或 spreadsheets.values 集合不会影响的其他属性,此方法将非常实用。不过,对于简单的值写入操作,使用 spreadsheets.values.update 或 spreadsheets.values.batchUpdate 更简单。
在这些示例中,占位符 spreadsheetId 用于表示您需要提供…
Read More
利用 Sheets API,您可以读取单元格、范围、范围集以及整个工作表中的值。 本页面上的示例说明了如何使用此 API 的 spreadsheets.values 集合实现一些常用的读取操作。您也可以使用 spreadsheets.get 方法读取单元格值,不过在大多数情况下,使用 spreadsheets.values.get 或 spreadsheets.values.batchGet 更加简单。
在这些示例中,占位符 spreadsheetId 用于表示您需要提供电子表格 ID 的位置,可以从电子表格网址中找到此 ID。要读取的范围在请求网址中使用 A1 表示法指定。
这些示例均假设要读取的电子表格在其第一个工作表(“Sheet…
Read More
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
Google Guice 是一个轻量级的依赖注入框架,它支持Java 5或者更高版本的JDK,得利于Java 5中提供的泛型 (Generics) 和注解 (Annotations) ,它可以使得代码类型安全 (type-safe) 。那么何时使用在代码中使用 Guice 进行注入呢?一般来说,如果在你的应用代码中业务对象 (Business Objects) 之间的关系或者依赖需要手动维护的话,你就可以使用Guice 进行注入。
该文章中,首先我将通过一些例子来初步的认识一下 Guice 框架,然后我将介绍下 依赖注入框架的理论知识 以及在应用程序中使用依赖注入的好处,同样我也会和大家探讨一下 Guice 提供的用于简化代码的 API (包…
Read More
简单来说,Composer 是一个新的安装包管理工具,服务于 PHP 生态系统。它实际上包含了两个部分:Composer 和 Packagist。下面我们就简单说一下他们各自的用途。
Composer
Composer 是由 Jordi Boggiano 和 Nils Aderman 创造的一个命令行工具,它的使命就是帮你为项目自动安装所依赖的开发包。Composer 中的很多理念都借鉴自 npm 和 Bundler,如果你对这两个工具有所了解的话,就会在 composer 中发现他们的身影。Composer 包含了一个依赖解析器,用来处理开发包之间复杂的依赖关系;另外,它还包含了下载器、安装器等有趣的东西。
对于现代语言而…
Read More
用到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
在一个maven项目中,如果存在编译需要而发布不需要的jar包,可以用scope标签,值设为provided。如下:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
概览
简单地说,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