自由飞翔

我在仰望,java之上

统计

留言簿(2)

我关注的blog

阅读排行榜

评论排行榜

2012年4月9日 #

编码至高法则-高内聚低耦合

     摘要: 此法则适合所有语言,咱们以JavaScript和Java两个角度分析一下这个东东。 一、javascript 有这样的一个页面,js、css代码都写在html页面中。 例如:gnj.html v1版本Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-...  阅读全文

posted @ 2019-09-11 15:59 GavinMiao 阅读(207) | 评论 (0)编辑 收藏

Jgoodies FormLayout 小结


一、列与行的参数都由三个部分组成:对齐方式、固定尺寸、调整方式。
1.对齐方式:
1)列对齐有left, center, right, fill.默认fill
2)行对齐有:top, center, bottom, fill. 其中fill表示填充至整个区域。默认center。
2.固定尺寸:
pref表示preferred size,适当大小,即首选尺寸大小。
min表示minimum size,
dlu 表示dialog units,
px, pt, in, mm, cm)分别表示Pixel, Points, Inches, Millimeter, Centimeter。
3. 调整方式:
二、CellConstraints:
cc.xywh(3, 1, 3, 1):表示3列,1行,colspan=3,rowspan=1
三、FormLayout:
  1.FormLayout layout = new FormLayout(
   new ColumnSpec[]{
     FormSpecs.DEFAULT_COLSPEC,
     FormSpecs.GLUE_COLSPEC,
     FormSpecs.DEFAULT_COLSPEC,
     FormSpecs.GLUE_COLSPEC,
     FormSpecs.DEFAULT_COLSPEC,
     FormSpecs.GLUE_COLSPEC},
   new RowSpec[]{
     FormSpecs.DEFAULT_ROWSPEC,
     FormSpecs.GLUE_ROWSPEC,
     FormSpecs.DEFAULT_ROWSPEC,
     FormSpecs.GLUE_ROWSPEC,
     FormSpecs.DEFAULT_ROWSPEC,
     FormSpecs.GLUE_ROWSPEC
   }
  );
2.

FormLayout layout = new FormLayout( 
        "right:pref, 6dlu, 50dlu, 4dlu, center:50dlu", // columns
        "pref, 3dlu, pref, 3dlu, pref"); // rows   





参考文章:
http://hi.baidu.com/lijunwyf/item/a18d95f719ff01da6225d26f

posted @ 2012-09-29 11:29 GavinMiao 阅读(1306) | 评论 (0)编辑 收藏

Vector浅见

例子:
import java.util.*;
public class TestVector{
 public static void main(String[] args){
  Vector v = new Vector();
  v.add(null);
  v.add(new Integer(1));
  v.add("123");
  
  for(Enumeration e = v.elements();e.hasMoreElements();){
   System.out.println(e.nextElement());
  }
  v.insertElementAt("insert",2);
  v.setElementAt("insert",0);
  
  for(Enumeration e = v.elements();e.hasMoreElements();){
   System.out.println(e.nextElement());
  }
  
 }
}

结果:
null
1
123

insert
1
insert
123
 
结论:
vector中可以放入null;
vector可以放入不同类型的对象;
vector是同步的容量自增长的向量;

posted @ 2012-09-24 08:49 GavinMiao 阅读(293) | 评论 (0)编辑 收藏

火车票订票好办法

一、前提须知:
1.北京铁路局:
直属站15个:北京站北京西站天津站天津西站丰台站丰台西站南仓站塘沽站唐山站石家庄站石家庄南站、邯郸站、阳泉站、北京南站、天津西站。
2.郑州铁路局:
直属车站11个:郑州站、郑州北站、郑州东站、洛阳站、新乡站、开封站、商丘站、月山站、长治北站、长治站。
二、
北京电话订票窍门:1、座机打!;2.用手机加区号打!北京铁路局管内,如唐山区号:打0315-95105105,手机打95105105的有效区号:河北省邯郸0310石家庄0311保定0312张家口0313承德0314唐山0315廊坊0316沧州0317衡水0318邢台0319秦皇岛0335山东德州0534山西阳泉0353天津022。订好之后可以在北京取票!!

posted @ 2012-09-18 07:55 GavinMiao 阅读(354) | 评论 (0)编辑 收藏

异常积累:org.hibernate.StaleStateException

ERROR - Exception executing batch: 
org.hibernate.StaleStateException: Batch update returned unexpected row count fr
om update [0]; actual row count: 0; expected: 1

ERROR - Could not synchronize database state with session
org.hibernate.StaleStateException: Batch update returned unexpected row count fr
om update [0]; actual row count: 0; expected: 1


不注意的话,还真的有点无所适从,Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
这个异常是由于主键设置为自增长,而在我们插入记录的时候设置了ID的值导致的。看下我的Hibernate映射文件中ID的定义:

参考文章:http://hi.baidu.com/shirdrn/blog/item/adec1e82d067ddb86c81191c.html

posted @ 2012-04-18 15:33 GavinMiao 阅读(10558) | 评论 (0)编辑 收藏

java.lang.IllegalStateException: Cannot forward after response has been committed

现象:
页面报500.
原因:
在request.getRequestDispatcher("/success.html").forward(request, response);
后面还有未执行的代码,但是已经提交了响应。

posted @ 2012-04-14 09:08 GavinMiao 阅读(465) | 评论 (0)编辑 收藏

UML初接触

1.UML:unified modeling Language(统一建模语言)
2.草图与蓝图:
前者指:手工绘制的、规范度较低的UML模型;
后者指:case工具绘制的正式的、规范的UML模型;
3.不同可视性的符号:
“+”:public   “#”:protected  “-”:private  “~”:package
4.UML主要包含三种图:静态图、动态图、物理图
5.关联关系:用来表示一个对象持有另外一个对象的引用,或是调用另外一个对象的方法
6.类图:


7.类图之间的关联:
—▷▷  —>持有

posted @ 2012-04-13 11:34 GavinMiao 阅读(301) | 评论 (0)编辑 收藏

面试题(互联网网上商城行业)

    只有注册用户登录后才能阅读该文。阅读全文

posted @ 2012-04-12 22:39 GavinMiao 阅读(106) | 评论 (0)编辑 收藏

不用临时变量交换两个数

方法1:
a=a^b;
b=a^b;
a=a^b;
方法2:
a=a+b;
b=a-b;
a=a-b;

posted @ 2012-04-12 11:27 GavinMiao 阅读(395) | 评论 (0)编辑 收藏

易宝支付面试题(根据网上总结)

1.public class TestKnowleage5 {
public static void main(String[] args){
String strValue = "ABCDEFG";
strValue.substring(3);
System.out.println("result1"+strValue);
strValue.concat("123");
System.out.println("result2"+strValue);
String value = new String("ABCDEFG");
System.out.println(strValue==value);
}
}

运行结果:
result1ABCDEFG
result2ABCDEFG
false
2.public class Test{
    public static void main(String[] args){
         int x = 100;
int y = 200;
if(x == y)
System.out.println("not equal");
else
System.out.println("equal");
    }
}

运行结果:
equal

3.public class TestKnowleage5 {
public static void main(String[] args){
try{
new TestKnowleage5().methodA(5);
}catch(IOException e){
System.out.println("caught IOException");
}catch(Exception e){
System.out.println("caught Exception");
}finally{
System.out.println("no Exception");
}
}
public void methodA(int i) throws IOException{
if(i%2 != 0){
throw new IOException("methodA IOException");
}
}
}

运行结果:
caught IOException
no Exception

4.public class TestKnowleage5 {
static boolean isTrue(){
System.out.println("isTrue");
return true;
}
static boolean isFalse(){
System.out.println("isFalse");
return false;
}
public static void main(String[] args){
if(isTrue() || isFalse()){
System.out.println("|| operate return true");
}
if(isFalse() & isTrue()){
System.out.println("& operate return true");
}
}
}

运行结果:
isTrue
|| operate return true
isFalse
isTrue

5.public class TestKnowleage5{
public static void main(String args[]){
MyThread t = new MyThread();
t.run();
t.start();
System.out.println("A");
}
}
class MyThread extends Thread{
public void run(){
try{
Thread.currentThread().sleep(3000);
}catch(InterruptedException e){
}
System.out.println("B");
}
}
运行结果:
BBA或
BAB
6.class A{
void fun1(){
System.out.println(fun2());
}
int fun2(){
return 123;
}
}
public class TestKnowleage5  extends A{
int fun2(){
return 456;
}
public static void main(String[] args){
A a;
TestKnowleage5 b = new TestKnowleage5();
b.fun1();
a = b;
a.fun1();
}
}

运行结果:
456
456
7.class A{
int val;
public int getVal() {
return val;
}
public void setVal(int val) {
this.val = val;
}
}
public class TestKnowleage5{
public static void main(String[] args){
A data = new A();
ArrayList list = new ArrayList();
for(int i=100;i<103;i++){
data.setVal(i);
list.add(data);
}
int j = 0;
while(j<list.size()){
A tmp = (A)list.get(j);
System.out.println("list("+j+")="+tmp.getVal());
j++;
}
}
}

运行结果:
list(0)=102
list(1)=102
list(2)=102

8.hibernate导入大量数据时,为了避免内存中产生大量对象,在编码时注意什么,如何去除?

9.视图与表的区别
10.触发器有哪几种类型
11.
事务操作有那几个步骤
12.写出对应正则表达式:
1)1-6位字母或数字;
[a-zA-Z0-9]{1,6}
2)手机号(只能是139或159开头,11位数字)
1[35][9][0-9]{8}
13.字符串反转:new StringBuilder(str).reverse().toString();
14.写程序:1+2²+3²+...+n²
int func(int n){
    return n==1?1:func(n-1)+n*n
}

15.写一个延迟加载的单例模式:
public class SingleTon{
    private static  SingleTon  instance = null;
    private SingleTon(){}
    public static SingleTon getInstance(){
        if(instance == null){
                synchronized(""){
                    if(instance == null){return new SingleTon();}
                }
        }
        return instance;
    }
}

16.
JSP的9种内置对象:
request:
HttpServletRequest类的实例,
客户端的请求信息被封装在request对象中
response:
HttpServletResponse类的实例,
response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。
out:
out对象是JspWriter类的实例,是向客户端输出内容常用的对象
session:
session对象指的是客户端与服务器的一次会话,从客户端连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession类的实例
page:
page对象就是指向当前JSP页面本身,有点象类中的this指针,它是java.lang.Object类的实例
application:
ServletContext类的实例,
application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭
exception:
exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象
pageContext:
pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本类名也叫pageContext
config:
config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)
17.session和cookie的区别?
18.JDBC的操作步骤?

posted @ 2012-04-11 11:32 GavinMiao 阅读(1523) | 评论 (0)编辑 收藏

面试题(移动通信方面)

1.方法重载与多态,简述;
2.什么是设计模式?使用过哪些?
3.列出熟悉的java开源项目及简述;
4.一组radio,用alert弹出当前所选的是第几个radio?用原生javascript;
5.function showme(){
Book.prototype.abc = function(){
alert('456');
}
var abook = new Book(1,2);
Book.abc = function(){
alert('123');
}
abook.abc();
Book.abc();
abc();//此方法调用浏览器会报错,未定义
}
function Book(a,b){
this.a = a;
this.b = b;
Book.abc = function(){
alert('def');
}
this.abc = function(){
alert('xyz');
}
abc = function(){
alert('@@@@@@');
}
var abc = function(){
alert('$$$$$$');
}
}

点击按钮调用showme(),页面显示结果为:
第一个弹出框:xyz
第二个弹出框:123

6.线程的四种状态?
7.ext有哪些组件?ext如何与后台交互?
8.HashMap放入、查找、删除,将所有value放入一个数组,得到map中所有内容;List添加、查找、删除;
9.List<Student> student(name,age) 比较oldList<Student>和newList<student>,按名字比较,获得新增的、修改的、删除学生列表;
10.使用过哪些xml技术?怎么实现的?
11.java异常:throws、throw、try、catch、finally,举例,如何处理异常
12.字符串反转:
public class TestKnowleage5 {
public static void main(String[] args){
System.out.println(reverse("abc"));
System.out.println(reverse2("abc"));
System.out.println(reverse3("abc"));
}
public static String reverse(String str){
return new StringBuffer(str).reverse().toString();
}
public static String reverse2(String str){
char[] chs = str.toCharArray();
char[] re = new char[chs.length];
for(int i = 0 ; i<chs.length;i++){
re[i] = chs[chs.length - i - 1]; 
}
return new String(re);
}
public static String reverse3(String str){
char[] chs = str.toCharArray();
String re = ""; 
for(int i = 0;i<chs.length;i++){
re += chs[chs.length - 1 -i];
}
return re;
}
}

posted @ 2012-04-10 22:39 GavinMiao 阅读(513) | 评论 (0)编辑 收藏

面试题(ERP行业)

//此句,编译无法通过,Cannot make a static reference to the non-static field b
1.arrayList、linkedList、vector的区别
2.
写几种J2EE规范并简要描述
3.什么是设计模式?用过哪些设计模式?
4.OO的四大特性是哪些?并简要描述
5.方法重载、多态概念及简要描述;
6.sql常用的优化方法有哪些?
7.sleep()与wait()的区别?
8.
public class TestException {
public static void main(String[] args) {
int i = 1;
switch(i){
case 0:
System.out.println(0);
break;
case 1:
System.out.println(1);
default:
System.out.println(4);
case 2:
System.out.println(2);
case 3:
System.out.println(3);
}
}
}
运行结果:
1
4
2
3
9.HashTable和HashMap的区别
10.怎样理解mvc模式?
11.抽象类、接口的区别?
12.智力题:
有1-7号,7块地,S、U、V、W、X 5个遗产继承者,
S若继承2号,不能继承3号;
3号和4号不能同时继承;
S若继承一块或多块地,则U不能继承
1块地不能被2人合分;

问:若S继承2号地,剩余3个人中,不能同时哪2块地?
A:1和6 B:1和7 c:3和7 d:1和5 e:1和3
13.
public class TestKnowleage5 {
static int a;
int b,c=0;
public static void main(String[] args){
a++;
b++;//此句,编译无法通过,Cannot make a static reference to the non-static field b
c++; //此句,编译无法通过,cannot make a static reference to the non-static field c
}
}


参考文章:

posted @ 2012-04-10 21:59 GavinMiao 阅读(496) | 评论 (0)编辑 收藏

用友面试题(参考网上总结而出)

1,有三个jsp页面:a.jsp b.jsp c.jsp,流程是a.jsp--> b.jsp--> c.jsp,其中a.jsp提交的数据要在c.jsp中访问,用最简单的办法怎么做?不用session。
在b.jsp中放N个hidden隐藏域保存a.jsp中的数据,一起提交到c.jsp,在c.jsp中取出。2.sql server支持集群么?
支持,不过属于热备份类型,不能做负载均衡。不过符合你的条件
首先系统做集群,数据库文件放到磁盘阵列里,双机或多机共同访问磁盘阵列,就可以了,可以集群后做负载均衡;
3.HashTable与HashMap的区别:
1)HashMap非线程安全,HashTable线程安全;
2)HashMap可放一条key为空的记录,任意记录的value可为空,hashTable不可以;
3)hashMap去掉了contains方法,增加了containsKey和containsValue方法;
4.如何理解mvc模式:
mvc是sun提出的model2开发模式,将控制、视图、模型进行了分离;提高了可维护性、扩展性、可移植性、组件的可复用性;
5.SingleTon:
6.对象序列化的含义:
java序列化技术可以使你将一个对象的状态写入一个byte流里,并且可以从其它地方把该byte流里的数据读出来,重新构造一个相同的对象。
这种机制允许你将对象通过网络传播,并且随时可以把对象持久化到数据库、文件等系统里,java的序列化技术是RMI、EJB等技术的基础;
实现方法:implements Serializable标记为可序列化,然后用ObjectOutputStream和ObjectInputStream读写;
7.数据库中的锁包含哪些?
排它锁和共享锁
8.jsp和servlet的区别:
1)简单来说:jsp就是含有java代码的html,servlet就是含有html的java代码;
2)jsp最终被解释成servlet,编译再执行,jsp不过是servlet的另一种编写形式;
3)jsp擅长表示,servlet擅长数据处理,在mvc中jsp处于视图层,servlet处于控制层;
9.oracle在数据库中的交集怎么表示:
1)用intersect操作符 2)用in 语句
9.JNDI、JMS、JTA、RMI:

JNDI:java naming and directory interface java命名目录接口
JMS:java messing service java消息服务
JTA:java transaction api java事务api
RMI:
Remote Method Invocation 远程方法调用

10.事务:

1)ACID属性:
A:atomic 原子性
C:consistent 一致性
I:isolation 隔离性
D:duration 持久性
2)概念:事务就是一系列操作,它们完成一项任务。只要这些操作里有一项没成功,事务就操作失败,发生回滚事件。即撤销前面的操作,这样可以保证数据的一致性。而且可以把操作放在缓存里,等所有操作都成功就提交数据库,这样保证费时的操作都是有效操作。
3)隔离级别 4)传播行为
参考文档:http://wenku.baidu.com/view/56a532eb856a561252d36f81.html

posted @ 2012-04-09 11:32 GavinMiao 阅读(1047) | 评论 (0)编辑 收藏