Java
芸复山人
这个作者很懒,什么都没留下…
展开
-
request.getParameter()中文乱码
1、jsp页面已设置页面编码:表单数据以post方式提交。2、web.xml添加过滤器,使用的是spring内置过滤器: encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 f原创 2016-01-20 10:04:58 · 627 阅读 · 0 评论 -
Java泛型
所谓泛型,就是允许在定义类、接口、方法时使用类型形参,这个类型形参将在声明变量、创建对象、调用方法时动态的指定(即传入实际的类型参数,也可称为类型实参)。 包含泛型声明的类型可以在定义变量、创建对象时传入一个类型实参,从而可以动态地生成无数多个逻辑上的子类,但这种子类在物理上并不存在。1、定义泛型接口、类public class Apple { private T原创 2016-12-12 16:21:23 · 250 阅读 · 0 评论 -
Java解析和生成XML
1、Jaxb处理java对象和xml之间转换常用的annotation有:@XmlType@XmlElement@XmlRootElement@XmlAttribute@XmlAccessorType@XmlAccessorOrder@XmlTransient@XmlJava原创 2016-11-23 14:59:11 · 1269 阅读 · 0 评论 -
Tomcat部署多个项目及相关配置
1、配置多个项目 在tomcat的conf目录下,找到server.xml,在其中添加节点即可进行多个项目的部署 unpackWARs="true" autoDeploy="true"> prefix="localhost_access_log." suffix=".txt"原创 2016-12-13 16:41:05 · 330 阅读 · 0 评论 -
Java注解
Annotation提供了一种为程序元素设置元数据的方法,从某些方面来看,Annotation就像修饰符一样,可用于修饰包、类、构造器、方法、成员变量、参数、局部变量的声明,这些信息被存储在Annotation的“name=value”对中。 Annotation是一个接口,程序可以通过反射来获取指定程序元素的Annotation对象,然后通过Annotation对象来取得注解里的元数据原创 2016-12-15 14:27:53 · 244 阅读 · 0 评论 -
找不到或无法加载主类
使用命令行执行报错:找不到或无法加载主类:可以编译通过,说明JAVA_HOME配置没有问题;解决方法总结:(1)CLASSPATH变量配置中,开头是否为“.;”(英文句号,分号);(2)使用java命令执行时,文件带“.class”后缀;(3)java源文件带package声明;经检查是(2)、(3) 的问题,修改后完满解决。原创 2016-12-21 15:07:53 · 357 阅读 · 0 评论 -
类加载机制与反射(一)
1、类的加载、连接和初始化 当调用java命令运行某个Java程序时,该命令将会启动一个Java虚拟机进程,不管该Java程序有多么复杂,改程序启动了多少个线程,它们都处于该Java虚拟机进程里。同一个JVM的所有线程、所有变量都处于同一个进程里,它们都使用该JVM进程的内存区。当系统出现以下几种情况时,JVM进程将被终止。 程序运行到最后正常结束; 程序运行到使用S原创 2016-12-19 14:30:21 · 256 阅读 · 0 评论 -
Java中的ExceptionInInitializerError异常及解决方法
当在静态初始化块中出现了异常的时候,JVM会抛出 java.lang.ExceptionInInitializerError异常。如果你了解Java中的静态变量,你会知道它们是在类加载的时候进行初始化的。如果在这个静态变量初始化的过程中出现了异常,那么就会抛出 java.lang.ExceptionInInitializerError异常。任何异常都可能会引发这种情况,比如说,java.lang.原创 2016-12-28 14:08:06 · 80610 阅读 · 3 评论 -
类加载机制与反射(二)
1、使用反射生成并操作对象 通过反射来生成对象有如下两种方式: 使用Class对象的newInstance()方法来创建该Class对象对应类的实例,这种方式要求改Class对象的对应类有默认构造器,而执行newInstance()方法时实际上是利用默认构造器来创建该类的实例; 先使用Class对象获取指定的Constructor对象,再调用Constructor对象原创 2016-12-20 18:21:26 · 262 阅读 · 0 评论 -
Maven概述(一)
Maven是什么? Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project’s build, reporting and documentation f原创 2017-08-08 23:44:49 · 385 阅读 · 0 评论 -
类成员
类方法也是类成员的一种,类方法也是属于类的,通常直接使用类作为调用者来调用类方法,但也可以使用对象来调用类方法。与类变量类似,即使使用对象来调用类方法,其效果也与采用类来调用类方法完全一样。当使用实例来访问类成员时,实际上依然是委托给该类来访问类成员,因此即使某个实例为null,它也可以访问它所属类的类成员。如:public class NullAccessStatic { privat原创 2016-11-13 22:00:07 · 241 阅读 · 0 评论 -
成员变量的初始化和内存中的运行机制
成员变量被分为类变量和实例变量两种,定义成员变量时没有static修饰的就是实例变量,有static修饰的就是类变量。其中类变量从该类的准备阶段起开始存在,直到系统完全销毁这个类,类变量的作用域与这个类的生存范围相同;而实例变量则从该类的实例被创建起开始存在,直到系统完全销毁这个实例,实例变量的作用域与对应实例的生存范围相同。可以把类变量和实例变量统称为成员变量,其中类变量可以理解为类成员原创 2016-11-10 10:40:44 · 691 阅读 · 0 评论 -
位运算代替乘除法
在所有的运算中,位运算是最为高效的。因此,可以尝试使用位运算代替部分算术运算,来提高系统的运行速度。最典型的就是对于整数的乘除运算优化。使用算术运算的实现: long a = 100; for (int i = 0; i < 100000000; i++) { a *= 2; a /= 2; }将循环体中的乘除运算改为等价的位运算,如下: long a = 100; ...原创 2016-10-27 18:00:39 · 7165 阅读 · 1 评论 -
数据库调优
对绝大部分应用系统而言,数据库是必不可少的一部分。Java程序可以使用JDBC的方式连接数据库。对数据库的调优可以分为3个部分:在应用层对SQL语句进行优化;对数据库进行优化;对数据库软件进行优化。在应用层优化数据库访问,设计大量的编程技巧。比如,当使用JDBC进行查询时,对于大量的拥有相同结构的SQL查询,可以使用PreparedStatement代替Statem转载 2016-04-26 11:15:45 · 835 阅读 · 0 评论 -
并发程序开发及优化之不变模式
在并行软件开发过程中,同步操作似乎是必不可少的。当多线程对同一个对象进行读写操作时,为了保证对象数据的一致性和正确性,有必要对对象进行同步。而同步操作对系统性能有相当的损耗。为了尽可能的去除这些同步操作,提高并行程序性能,可以使用一种不可改变的对象,依靠对象的不变性,可以确保其在没有同步操作的多线程环境中依然保持内部状态的一致性和正确性。这就是不变模式。不变模式天生就是多线程友好的,它的核心思原创 2016-04-19 16:32:55 · 601 阅读 · 0 评论 -
同步关键字synchronized
同步关键字synchronized同步关键字synchronized使用简洁,代码可维护性好。在JDK6中,性能也比早期的JDK有很大的改进。如果可以满足程序要求,应该首先考虑这种同步方式。 关键字synchronized一个最为常用的用法是锁定一个对象的方法: public synchronized void method() {} 此时原创 2016-04-20 16:46:51 · 458 阅读 · 0 评论 -
配置Tomcat使用https协议
== 创建证书 ==1、打开cmd命令行窗口,切换目录到Java安装路径下bin目录;2、输入命令生成证书,如:keytool -genkey -alias hcode -keyalg RSA -keystore e:/keys/hcode参数说明:* keytool: bin目录下keytool对应命令;* alias: 别名;* keyalg: 加密算法原创 2016-06-28 15:52:59 · 2564 阅读 · 0 评论 -
Apache Shiro Realm
Realm是一个能够访问应用程序特定的安全数据(如用户、角色及权限)的组件。Realm将应用程序特定的数据转换成一种Shiro能够理解的格式,这样Shiro能够提供一个单一的易理解的Subject编程API,无论有多少数据源存在或你的应用程序特定的数据是怎样的。Realm通常和数据源是一对一的对应关系,如关系数据库,LDAP目录,文件系统或其他类似资源。因此,Realm接口的实现使用数据源特定原创 2016-06-28 17:25:29 · 395 阅读 · 0 评论 -
Shiro术语
Authentication身份验证是验证Subject身份的过程--实质上是证明某些人是否真的是他们所说的他们是谁。当认证尝试成功后,应用程序能够相信该Subject被保证是其所期望的。Authorization授权,又称为访问控制,是决定一个user/Subject是否被允许做某事的过程。它通常是通过检查和解释Subject的角色和权限(见下文),然后允许或拒绝到一个请原创 2016-06-30 09:57:22 · 435 阅读 · 0 评论 -
Java导入证书失败Keystore was tampered with, or password was incorrect
keytool 错误: java.io.IOException: Keystore was tampered with, or password was incorrect在进行证书相关操作,如更新、删除、导入时,需要输入保护密码,默认的是changeit,输入即可,而不是生成证书时自己设置的。生成证书:导出证书,此时输入生成证书时设置的密码:原创 2016-06-15 09:29:19 · 24111 阅读 · 0 评论 -
jps命令
jps(JavaVirtual Machine Process Status Tool)是jdk提供的一个查看当前Java进程的小工具, 非常简单实用。在控制台执行jps命令和java -classpath %JAVA_HOME%/lib/tools.jar sun.tools.jps.Jps命令是等价的,即jps.exe只是这个命令的一层包装。命令格式:jps [op原创 2016-10-26 15:29:46 · 2547 阅读 · 0 评论 -
Maven环境配置及简单使用(二)
Maven环境变量配置 配置Maven前先从官网下载相关版本,Maven下载地址:http://maven.apache.org/download.cgi,笔者使用最新版本apache-maven-3.5.0. 配置Maven前须确保已安装Java运行环境,因为Maven基于Java开发,其运行依赖于Java,Java安装配置请参考相关教程。 Windows下环境变量配置原创 2017-08-13 10:48:38 · 486 阅读 · 0 评论