摘要:
String, StringBuilder, StringBuffer通过一些例子说明String的运行机制,首先明确确定的字符串值会提前被放入1.最简单的常量赋值 public void test() { String test = "test"; }查看JVM字节码public void test(); Code: 0: ldc #2; //String test 2: astore_1 3: return解释:0: 从常量池获取常量#2(即"test")并将其压入栈顶2: 将栈顶字符串引用弹出并赋给本地变量 1 (即变量te... 阅读全文
摘要:
安装Linux的时候可以将 /, /boot, /home 等放在不同的分区,每个分区可以选择需要的文件系统Ext文件系统的组织1. boot sector 用于存放引导程序,不同于Windows, Linux的安装可以将引导程序安装在自己选定的分区的boot sector,从而避免了覆盖MBR,不会损坏之前的系统的引导此处特别注意,如果你的 block size = 1024Bytes, 那么boot sector将占用 1个block,并位于block group 0, superblock将占用1个block,位于block group1;而如果你的blocksize>1024By 阅读全文
摘要:
Java的内部类可以获得其外围类的所有成员访问权限,可以很方便的对外围类进行操作。非static内部类都含有一个隐藏的外围类引用,这个引用可以通过 OuterClass.this 来获得使用。通常如果我们的一组操作需要遵循某些规范(例如接口,抽象类),就可以把这一组操作封装成一个内部类来供外部使用,而又不会脱离外围类。参见如下代码:public interface Selector<E> { boolean hasNext(); E next();}public class Sequence { private int[] seq; private Selector<I... 阅读全文
摘要:
适配器模式主要是为了在不能改变现有类的情况下,将一个类转换成另一种类,让他可以适应一个通用的接口public interface Printable { void printSth();}public class Printer implements Printable { @Override public void printSth() { System.out.println("I can print text"); }}public class Photogragher { public void printPhoto(){ Sy... 阅读全文
摘要:
阅读全文
摘要:
策略模式记住一句话: 使用统一的接口,根据不同的参数产生不同的表现引用我上一篇的工厂,策略模式简单的如下实现就可以了DBContext.javapackage strategyfactory;import db.DataBase;public class DBContext { private DBContext() {} public static void connect(DataBase db) { System.out.println("Using " + db.getClass().getName()); db.connect(); }}... 阅读全文
摘要:
本例子背景为根据客户端不同的选择,生成不同的数据库连接0. 无工厂代码package nofactory;public class NoFactory { private static final short MYSQL = 0; private static final short SQLSERVER = 1; public static void connect(short dbType) { switch (dbType) { case MYSQL: System.out.println("MySQL c... 阅读全文
摘要:
参见如下简单的程序package db;import java.sql.*;public class DBTest { private static final String USERNAME = "root"; private static final String PASSWD = "root"; private static final String DATABASE = "test"; private static final String DBMS = "mysql"; private static fi 阅读全文
摘要:
很多时候, int char bit set enum这几种类型都可以替换着用,下面对这几种类型的优劣稍作浅析以在数据库中建立用户表的性别(gender)字段为例,分别用以下几种类型各有什么优缺点1. int: gender tinyint unsigned not null可以这样定义gender列,好处是储存空间小( 1 Byte ),可扩展性好(range 0~255)坏处是没有强约束(可以在代码里控制),可读性不好,无从知道 0 1 2 到底什么意思2. char(1): gender char(1) not null优劣与int类似3. bit(1): gender bit(1) n 阅读全文
摘要:
问题描述: 有一个饮料公司,供应 t_max 种饮料, 最大供应容量为 v_max, 每种饮料由如下属性组成 T { C, V, H }, 其中C,V,H分别代表每种饮料的最大供应数量(瓶数),每瓶的容量,没瓶的客户满意度。问题: 给出饮料序列,求满意度最高的饮料组合(每种饮料各需要多少瓶,以及满意度的最大值)最优化问题一般可以用动态规划或者贪心算法解决,此处容易将问题化为递推式用 f(v, t) 表示供应容量为 v 时, 第 t ~ t_max - 1 种饮料的最优满意度(饮料编号从0~t_max-1)。k表示第t中饮料需要k瓶,有如下式子f(v, t) = k * H[t] + f(v - 阅读全文