文章列表
Java中浮点数丢失精度的解决方案
- 博客分类:
- Java SE
根据IEEE 754标准,规定浮点数有float和double两种编码方式,基本格式为:
> 符号数 | 阶码数 | 尾数
float 单精度,长度4个字节,最高位符号位,接下来8位为指数,低23位为位数。
double 双精度,长度8个字节,最高位符号位,接下来11位为指数,低52位为位数。
由于大多数小数无法用精确的二进制表示,所以会出现精度丢失的情况。如,
System.out.println(0.05 + 0.01);
result: 0.060000000000000005
System.out.println(1.0 - 0 ...
PDF文件secured去除限制
- 博客分类:
- 计算机技术
使用网站在线进行去除:
http://www.pdfdo.com/pdf-remove-restriction.aspx
类(对象)之间的关系
- 博客分类:
- Java SE
【1】关联关系。比如学生和老师
【2】继承关系,XX是一种XX。比如运动员和球类运动员
【3】聚合关系,XX是XX的一部分,细分为聚集和组合。比如队长或者队员是球队的一部分
【4】实现关系
【5】多态关系
考虑该问题域中应该有哪些类(对象),考虑这些类(对象)有哪些属性,考虑类之间的关系,定义类之间的方法。
Java枚举是一个类,枚举里面的元素相当于该类的实例对象。
声明一个枚举对象,元素列表位于最前面
enum WeekDay {
SUN, MON, TUE, WED, THU, FRI, SAT;
}
获取一个枚举元素
WeekDay weekDay = WeekDay.SUN;
System.out.println(weekDay); //SUN
System.out.println(weekDay.name()); //SUN
System.out.println(weekDay.ordinal()); //返回该元素的位置 0
枚举类 ...
Java类初始化时若干模块顺序
- 博客分类:
- Java SE
参考文章:
Java类的初始化顺序
Java中变量的初始化
Java类有两种成员变量,一是没有static修饰的,叫做实例变量,另外一种有static修饰的,叫做类变量或者静态变量。
对于静态变量,静态初始化块,实例变量,构造代码块,构造器,初始化时这几个模块的顺序就是静态变量,静态初始化块,实例变量,构造代码块,构造器。
class Teacher {
public static String name = "t1";
public int age = 24;
static {
System.out.println( ...
一个方法接受的参数个数不固定
注:可变参数只能出现在参数列表最后;调用可变参数时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问该可变参数
public int add(int x, int... args) {
int sum = x;
for (int i : args) {
sum += i;
}
return sum;
}
import语句可以导入一个类或者一个包中的所有类
import语句导入一个类中的某个静态方法或者所有静态方法
import java.lang.Math.*;
public class ImportTest {
public static void main(String[] args) {
System.out.println(Math.abs(3));
}
}
import static java.lang.Math.*;
//import static java.lang.Math.abs;
public class ImportSta ...
Session是Hibernate持久化操作的基础,与传统意义上的HttpSession没有任何关系。Hibernate Session设计是非线程安全的,即一个Session实例只能由一个线程来使用。
Session的获取
sessionFactory为SessionFactory的实例
Session session = sessionFactory.openSession();
Session session = sessionFactory.getCurrentSession();
SessionFactory中保存了当前数据库配置的所有映射关系,同时也负责维护当前的二级缓存和StatementPool,由于SessionFactory采用了线程安全的设计,可由多个线程并发访问,大多数情况下,一个应用针对一个数据库共享一个SessionFactory。如果应用中需要访问多个数据库,那么针对每个数据库,都为其分别创建对应的SessionFactory实例。
SessionFactory的获取
configuration为Configuration的实例
1、Hibernate 4.1版本之前
SessionFactory sessionFa ...
Configuration对象的作用
Configuration类负责管理Hibernate的配置信息,其中几个关键属性包括:数据库URL、数据库用户,数据库用户密码,驱动类、适配器(Dialect)
Configuration对象的获取
1、使用XML映射文件
配置文件放在src目录下,映射文件无要求(Model.hbm.xml)
hibernate.cfg.xml
Configuration config = new Configuratioin().configure();
非hibernate.cfg.xml
Configuration co ...
Java静态代码块加载说明
- 博客分类:
- Java SE
此文参考自:http://www.cnblogs.com/panjun-Donet/archive/2010/08/10/1796209.html
首先是几个静态概念的分析:
静态代码块:一般情况下,有些代码在项目启动时就要执行,需要使用静态代码块,这种代码是主动执行的。
静态方法:在项目启动的时候初始化,在不创建对象的情况下,其他程序来调用,被动执行,静态方法在类加载的时候,就已经加载。在静态方法中,不能直接访问其非静态成员,静态方法不能以任何方式引用this和super关键字。
静态变量:静态变量是属于整个类的变量而不是属于某个对象的变量,不能把任何方法内 ...
Java中关于子类和父类构造方法的小问题
- 博客分类:
- Java SE
看到一句话:子类的构造方法,不管这个方法带不带参数,默认地它都会去寻找父类的不带参数的构造方法,如果父类没有不带参数的构造方法,那么子类必须要用super关键字来调用父类的构造方法,否则编译不能通过。
父 ...
Java中的代码块可以分为四类
一、普通代码块
直接在一个方法中出现的{ }就是一个普通代码块
public void save(){
System.out.println("普通代码块");
}
二、构造代码块
直接在类中定义的没有加static关键字的就是构造代码块
class Student {
{
System.out.println("构造代码块");
}
}
三、静态代码块
直接在类中定义使用static关键字的代码块,主要用来为类属性初始化
class St ...
Windows 8.1中添加美式键盘
- 博客分类:
- 计算机技术
说明:这里将添加“简体中文(美式键盘)”,也就是英文输入法,并设置为默认输入法
1、打开控制面板—时钟、语言和区域—语言,点击“添加语言”,选择“英语”—打开,选择“英语(美国)” —添加。
2、选择“English(United States)”,上移到首项,然后将中文语言删除。
3、打开注册编辑器:HKEY_CURRENT_USER\Keyboard Layout\Preload,修改“1”的键值为“00000804”,然后在Substitutes项中新建字符串值,名称为“00000804”,键值为“00000409”,关闭注册编辑器,注销后重新登录。
4、再打开控 ...
Java Map总结
- 博客分类:
- Java SE
Map是一个由键值对组成的数据结构,且在每个集合中键是唯一的。
为测试以下功能,开始一个具有JUnit测试功能的类
import org.junit.Test;
public class MapTest {
private Map<String, Object> map = new HashMap<String, Object>();
public MapTest() {
map.put("userName", "admin");
map.put("password&q ...