浏览 1970 次
锁定老帖子 主题:我的学习总结
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-05-09
2. Pig pig = new Pig();其中pig为引用,Pig()为对象,前者在栈中,后者在堆中; 3. size of int:32位(4个字节) size of char:16位(2个字节) char在C语言中占一个字节 short :16位 boolean: 1位 float:32 位 为小型设备(如手机)等写程序时应该注意数据类型问题,因为这涉及到效率问题 重载问题:同名不同参,返回值不能作为重载。类型不匹配时,向上转换 重载基本数据类型时,要么全写,要么不这么做 package OverLoad; public class Main { public static void print(int arg) { System.out.println("int:" + arg); } // public static void print(char arg) { // System.out.println("char:" + arg); // } public static void print(short arg) { System.out.println("short:" + arg); } public static void print(long arg) { System.out.println("long:" + arg); } public static void print(byte arg) { System.out.println("byte:" + arg); } public static void main(String args[]) { short s = 50;// 范围-32768~+32767 print(s); print((short) 40); print((byte) 20);// 当调用其他类型的时候需要强制类型转换 print(20);// 默认为int类型 s++; s += s; //s = s + 1; print('c'); } } 4. 将操作符理解位函数 long l = 2000L;用大写的L,是为了避免在程序中出错 5. interface和abstract 的区别: interface可以有多个父接口,abstract中只有一个父类; 在接口前写static final,在abstract前写public abstract 在接口中不写public也默认为public interface意义:interface封装了操作,代表一种数据类型,用接口来定义一组操作 6. 数组和链表的差别: ArrayList<E>使用可调整大小的数组实现List。当列表(List)很大时,在表的头部进行添加和移除操作代价很大,但是创建和随机访问它的代价比较大。 LinkedList<E>时List和Quere的双向链接实现。对于任何大小的LinkedList,修改的代价都很小,但是随机访问较慢。 7. 成员变量在堆上分配 public class Sample{ A a = new A(); ................... ...................... } a的生命周期与{}无关 8. 堆(heap)和栈(stack)的区别: heap:系统内存。new 出来的东西存放在这; stack:系统内存。静态的,针对线程,函数调用 A( )---->B( )----->C( )----->D( ) A a = new A(); a的生命周期在{}内 a放在栈里,用完了就没有了,A()还存在; 从父类开始初始化,先初始化静态块------.>静态成员变量 成员变量先于构造函数运行 成员变量先于{}块运行 package SuperClass; public class Main { public static void main(String[] args) { Base base = new Sub(); } } class Base { static { System.out.print("A"); } { System.out.print("B"); } public Base() { System.out.print("C"); } } class Sub extends Base { public Ref ref = new Ref(); static { System.out.print("D"); } // 成员变量先于块初始化 { System.out.print("E"); } public Sub() { System.out.print("F"); } } class Ref { static { System.out.print("G"); } { System.out.print("H"); } public Ref() { System.out.print("I"); } } 运行结果:ADBCGHIEF 9. 注意事项:养成先写注释后些代码的习惯。尽量不用拼音,只要是有用到拼音的地方,记得一定要写注释 /* 调试代码的时候可以这样写 //*/ 用\n 换行会出现小黑块,应该用\r\n(windows系统里的换行) switch case 不缩进 public static final MANAGER = 1; uer.privligle = MANAGER; 常量的所有字母都大写,运用常量的好处在于多次调用后若要对其值进行修改,则只需要改动一次 在函数体内优先处理错误,能不写else就尽量不写 ,这样可避免一次缩进 ,如: package SuperClass; 10. public class Function { 11. public int cal(int arg) { 12. // arg<0的时候,抛出异常。arg>0的时候求平方 13. if (arg < 0) { 14. throw new RuntimeException(); 15. } 16. return (arg * arg); 17. } 18. public static void main(String args[]) { 19. Function fun = new Function(); 20. System.out.println(fun.cal(6)); 21. } 22. } 23. (建议)函数规模应该在200行以内,尽量使循环体内工作量最小 24. Statement接口提供了执行语句和获取结果的基本方法。 PreparedStatement接口添加了处理IN参数的方法; PreparedStatement:对于同一条语句的多次执行,Statement每次都要把SQL语句发送 给数据库,这样做效率明显不高,而如果数据库支持预编译,PreparedStatement可以先 把要执行的语句一次发给它,然后每次执行而不必发送相同的语句,效率当然提高, 当然如果数据库不支持预编译,PreparedStatement会象Statement一样工作,只是效率 不高而不需要用户工手干预.另外PreparedStatement还支持接收参数.在预编译后只 要传输不同的参数就可以执行,大大提高了性能. (1)Statement:由方法createStatement所创建。Statement对象用于发送简单的SQL语句。 (2)PreparedStatement:由方法prepareStatement所创建。PreparedStatement对象用于发送带有一个或多个输入参数(IN参数)的SQL语句。PreparedStatement拥有一组方法,用于设置IN参数的值。执行语句时,这些IN参数将被送到数据库中。PreparedStatement的实例扩展了Statement,因此它们都包括了Statement的方法。PreparedStatement对象有可能比Statement对象的效率更高,因为它已被预编译过并存放在那以供将来使用。 UUID:随机的字符串,不重复的。 package uuid; import java.util.UUID; public class TestUuid { public static void main(String[] args) { UUID uuid = UUID.randomUUID(); System.out.println(uuid); } } 25.Hash:快速定位,线程的。快速存取,将值映射到数组的下标 1. set:一组不可重复的元素 2. Collections:binarySearch(list,key); 二分查找(一定要是排好序的); 3. debug调试的时候展开this会看到堆上的成员变量 F5跟进到函数体内。F6单步运行。F7从当前函数跳过去。F8跳到下一个断点(跳过这次执行的断点)。 在debug调试的时候可以给出异常断点(运行的时候在有异常的地方停留) 4. Hit Count命中次数。若为5,则在第五次循环到此处停留 5. 递归一定要有出口,不可无限循环,否则抛出异常Java.lang.StackOverflowerError 递归的应用:(IO)遍历文件夹 6. facebook 脸谱 7. TCP:可靠的面向连接的传输协议。UDP:不可靠的,不面向连接的传输协议。 8. 表:用来实现客户的需求 9. 在实际应用中,我们总是可以通过添加中间层来解决问题。 10. varchar(10)五个汉字 11. truncate截断一个表的内容,在mysql中和oracle中都可用。truncate table table1 12. timestamp 插入时自动填充当前时间 13. 当两个或者多个表中有主键和外键关联的时候,先删除从表的内容再删除主表的内容 14. 比如国家,性别等不变的表可以写成数据字典表。 15. 索引对字符串操作时有效(有限长度的字符串),对于频繁增删改的表,不适合做索引,不要对大文本创建索引 16. 查询时用下划线进行单一匹配,%任意匹配 17. 分页查询:select * from table1 limit 1,5 ;从第二条往后查到第五条,下表从0开始计数; 18. 连接:select newstitle,readlog.id form news left join readlog on news.id=readlog.newsid and readlog.epid = 1; 19. 笛卡尔集:多表联查时表的数量不要超过4个 20. 有条件查询的原则:有where时,从左往右过滤掉最多数据的条件先写,这样可以减少程序运行时间 21. 常用分组函数:AVG,COUNT,MAX,MIN,SUM 22. select substr(company,2) from sale_log; 从这个字段的第二个字母开始向后查找并显示 23. select e.epid,n.news_title from news n inner join enterprise e on e.id = n.id;只有当这两个表有相同的字段的时候才会有查询结果 24. select replace('lenovo','l','pppp'); 将字符串‘l’替换成‘pppp’。结果为:ppppenovo; 25. XML:(extensible Markup Language)可扩展标记语言 26. DTD和Schema 的区别:二者都有数据类型的概念,DTD用于校验格式是否符合标准,有自己的一套语法。Schema(XML语法) 27. 什么是SAX?什么是DOM? SAX一边解析一边产生事件,目的:用于解析大文件。 DOM速度快,耗内存,完整的将文档加进系统内存后开始解析 28. 用XPath查询时//book查询所有的book,无论位置如何 29. XML和HTML的关系? XML是面向数据的,HTML是面向展示的,HTML时XML的子集; 30. 建一个实例文件 共分五级:一级logger.debug() 二级logger.info() 三级logger.warn(); 四级logger.error(); 五级logger.fatal(); 顺序由低到高 对于大量的debug输出,先判断 if(log.isDebugEnable()) log.debug("Debug Message:" + arg); 目的:防止大量生成无用字符串 31. 产生对象的三种方法:new,从序列化(恢复时),发射 32. 一个电子表格文件(Excel)有65536行,IV列。Merging Cell合并单元格 33. 脏数据的概念: 34. 事务? 35. 快速查询? 36. JSP中感叹号的作用与原理: 代码如果写在<% %>中,则编译生成java代码时(在jspService()中),直接用原代码,若不写在<% %>中,则在生成的java文件中用out.write("")中输出生成jsp代码形式 37. 加叹号与不加叹号的区别: 加了以后编译生成成员变量;不加生成临时变量 38. <jsp:forward>与redirect的区别: 前者时浏览器端的跳转,产生一次请求,在它下面的代码不会被执行,在相应生成的java文件中生成if(true)语句,若没有if(true)会出错 后者时重定向,产生两次请求,在jsp页面中的它下面的代码会被执行 39. session的生命周期: page,request。session,application(顺序从小到达为包含关系) 一个request包含多个page 一个sessionbaohan多个request session生命周期的消亡:1。session的时间到,2,浏览器窗口关闭,IP消亡 子窗口会继承父窗口的sessionID. 40. 异常关键字:try ---catch---finally,throw,throws throw与throws的区别:throw抛出异常,throws是用来修饰方法的 41. SQL函数分为两种:当行函数和多行函数 42. 反射:是java基于虚拟机的动态语言,从字符串开始 43. notity与notifyAll的区别: 前者唤醒某个等待线程,由JVM决定 后者唤醒所有的等待线程 44. Collection和Collections的区别: Collection是集合类的上级接口,继承他的接口主要有Set和List。 Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 45. &和&&的区别: &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 46. 《Hibernate实战》 47. 线程与堆和栈的关系? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-10-01
没看完,但感觉lz说的初始化那有问题,建议lz看看臧圩人博客的类的初始化顺序,恩。。。我是小菜,刚开始认真学习,哈哈。。。
|
|
返回顶楼 | |