java基本语法学习笔记

工作中要使用一个java的开源框架(Lucene),两天时间学习一下java的基本语法,写一点笔记。

1.  下载了jdk6及Tomcat 的windows安装程序, 一步一步的按http://zhidao.baidu.com/question/27497097.html学习了环境的配置,到这里为止,可以写一个小jsp在localhost运行没有问题了。

2. 后面是感到基本语法不了解,所以在风上找了两个ppt学习一下,整理的还行,比看书快多了,保留连接如下:

a. http://wenku.baidu.com/view/cb124d5bbe23482fb4da4cce.html   java教程,讲的很实在

b. http://wenku.baidu.com/view/9f3942ea81c758f5f61f67e9.html   java达内培训课件,讲的不错

3. 说明:写的比较乱,不过都是精华(哈哈,在一个C++使用者看来),太基础的东东就省略了。

 

 

 

http://wenku.baidu.com/view/cb124d5bbe23482fb4da4cce.html的学习笔记:
基础部分:
1.1999java分成j2se(eclipse , NetBean及Swing), j2ee(商业及开源服务器IBM WebSphere, Oracle BEA Weblogic, RedHad JBoss, Apache Tomcat,sping中间件), j2me(嵌入式)三个版本.
2.package import class interface enum @annotation
3.一个java文件只能包含一个public的(class interface enum @annotation)声明,且与文件名相同
4.包声明语句必须在第一行(除了注释)
5. import 导入的以"."分隔的父子包无实际的包括关系
6.java.lang(System, String, Integer, Thread, 基本类型包装包等,是自动导入);java.io(输入输出);java.util(Collection, Date, Math等)java.text(日期,文本格式化等)
7.类是最小的程序单位,每个类会生成一个class文件
8.pubic static void main(String[] args)写法,文件名本身不在参数之中
9.任何类都可以有一个main方法,System.exit()退出
10.规范:class and interface e.g. HelloWorld; field and method e.g. doGet(); const e.g. HELLO_WORLD; packge e.g. cn.iflytek.jince.demo
11.值类型primitive type:byte(1), short(2), int(4), long(8, l,L)(以上四个全为有符号的), boolean(1, true, false),float(4, f,F), double(8, d,D), char(2,无符号;'a', '/u0061', 0141, 0x0061, 97都可); java是静默溢出, 不会报错;Integer.MIN_VALUE == Integer.MAX_VALUE + 1; ;数学表达式中都是整数类型,只能得到int或long型的,所以"byte b = a+1;”编译不能通过; Integer.MIN_VALUE == -Integer.MIN_VALUE; ;Float.NaN, Float.POSITIVE_INFINITY, Float.NEGATIVE_INFINITY, Double.类似;
11. 引用类型reference type :class, interface, array, enum, annotation(注解类型)
12.即时给没有的变量同赋null,如让gc回叫内存
13.var: 成员var(static or not), 局部var, 方法arg, 异常arg
14.成员变量自动初始化,局部变量则不
15.final声明常量
16.==, !=, >, <, <=, <=; +-*/; +=, -=; ++, --; &, |, ~, <<, >>, >>>(无符号移位); &&, ||, !; .; instanceof(类型检测); ==(地址比较);
1括号引用:() [] . 2单目: ++ -- !(逻辑非) ~(取反) 右->左 3算术: * / % + - 4关系:> < >= <= == != 5逻辑:&& | & | 6位:<< >> >>> & | ^ 7条件: ?:  8赋值: = += -= *= /= %= >>= <<= >>>= &= |= ^= 右->左
17.流程控制与C完全一样,switch也一样
18.Throwable -> Exception(checked exception,    must be treated) -> RuntimeException(unchecked e..,   does not have to be caught), Throwable -> Error(unchecked e..);   try ... catch ... finally{总是被执行}
Application won't be able to recover from an Error. All java's exception types derive from Exception
19.String helloWorld = "hello" + "World"; "+"是惟一被重载的操作符, 建议使用StringBuffer(thread save)或StringBuilder(thread no save); String.equals("..."), 而不是"=="来判断相等
20."Integer i = new Integer(10); int i2 = i.intValue();" 或 "Integer i = 10; int i2 = i;"的自动包装与拆包
21.BigDecimal与BigInteger
22.int[] a1= new int[3]; int[] a2 = {1,2,3};(数组初始化器)   int[]a3 = new int[]{1,2,3};(匿名数组)   int[][][]aaa = {{{1}, {2}, {3}}, {{1}, {2}}, {{3}}};
23.System.getenv(); System.getProperties(); System.currentTimeMills(); System.namoTime(); System.gc(); 等接口
24.System.out.printf("%d, %d", 1, 2);

 

 

类部分:
1. 通过this调用其它的构造方法。
2. public:全公开;protected:对子类与同一包中的公开;默认:对同一包中的公开;private:只类本身公开;类只能受public与默认修饰
3. extends
4. Object类是父类, 单继承, Object.equals(Object o), Object.hashCode(), Object.toString()三个方法
5. supper用来访问父类的东东
6.final阻止继承与方法的覆盖(子类重定义父类的方法,也即实现了多态)
7.子类覆盖父类的条件:方法名相同;参数类型与顺序相同;不降低访问权限;返回类型与同类或子类型;抛出同类与子类的异常;只覆盖public与protected方法;静态方法不能覆盖,但可以隐藏。
8.abstract类与方法
10.IoC容器类解决组合中依赖对象的创建
11.类的静态初始化代码块的理解及一些顺序
12.初始化代码时的循环引用与调用
13.finalize():不可靠
14.interface:字段为public, static,final;函数为public,abstract;无construct;can extends other interface; can be implements by a class, one class can imply more than one interface.
16.内部类:能否访问父类实例分为实例内部类(不能。可以这样理解:否则不用循环引用了吗)与静态内部类(可以)
17.内部类也支持继承与实现;同时方法内部也可以定义内部类。
18.java允许动态定义内部类,匿名内部类实际上是向函数式编程理念的一各靠近,它变相的实现了一各函数代理机制;同时也是一各编程技巧,在编写简短的回调代码时非常有用,如鼠标事件的处理上。
19.<T extends String>的范型限制

 

 

http://wenku.baidu.com/view/9f3942ea81c758f5f61f67e9.html 的学习笔记:
1.java.lang.System.gc()/java.loag.Runtime.gc();
2.javac option src_file
java -option class args
javadoc option packagenames src_file @files
jar ctxu vfm0mi jar-file manifest-file -C directory files...
3. key words: abstract boolean break byte case catch char class continue default do double else extends enum false final finally float for if implements import instanceof int interface import long native new null package private protected public return short static super switch synchronized this throw throws transient true try void volative while
save words: const goto
not key words: friendly sizeof
4. 只能new才会产生新对象,所以MyDate s = new MyDate(22,7,1964); MyDate t = s; 是使s与t指向同一个对象了。
5.null NotPointerException异常
6.== != 是值(值类型)或地址(引用类型)是否相等的判断, 而对两个对象来说,应该实现CompareAble接口来做是否逻辑相等(2011年2月19日23:54:40 上面说法错误,只要实现从Object继承下来的equals方法即可)
7.AND OR NOT只作用于boolean类型
8 -256>>4 : -256/pow(2,4)=16,你可以计算一下,这样在负数用补码表示时,除以16即相当于右移4位; 在不溢出的情况下,左移相当于乘2
9. Object o = new String("Hello");String str = (String)o; 的显示转换
10.case byte,short,int,char:
11.outter:  ... break outer;  带标签的break; 要在循环语句之前
12.int[] arr; or int arr[]; 数组是一个对象,长度不可变
13.int[][] twoarr = new int[2][3]; or int[][] twoarr = new int[2][]; twoarr[0] = new int[3]; twoarr[1] = new int[5]; 是向后展开的:一个一维数组,元素是什么,是数组(数组也是一个对象),这样大小不同也就可以理解了
14.int[] s = {1,2,3}; int[] d = {1,2,3,4}; System.arraycopy(s, 0, d, 0, s.length);
15.modify class class_name extends father_name implements interface_name{...}
16.重载:方法名相同,参数类型各个数不完全相同
17.声明形式 public class Manager extends Employee{...}    
18.java.lang.Object
19.super use to: super.age; or  super(); super(args) 调用父类的构造函数 public deived(int i){super(i); ...}
20."derived instanceof base;" is true
21.封装,继承,多态
22.final class不继承 method不覆盖 field or local var不改变
23.一个没有实现的方法必须声明为abstruct的,包含abstruct method 的class must be decleard as abstruct class
24. 访问控制的上三角
  modifyes  inside_class  the_same_package  subclass  other
  public  yes  yes  yes  yes
  protected   yes  yes  yes
  default(不写)  yes  yes
  private  yes
25. Boolean, Byte, Short, Character, Integer, Long, Float, Double   primitive type to Wapper Class
26.interface extends: Collection ->set list -> sortedSet Map SortedMap
class extends: Collection -> HashSet LinkedList,Vector,ArrayList -> Hashtable,HashMap TreeMap
26. Exception propagation(繁殖):getCause(), getMessage(), printStackTrace()
27.common Exception: lang.AithmeticException, NullPointerE.., ArrayIndexoutofBoundsE.., SecurityE.., NegativeArraySizeE..;    method(args)throws IOException{... throw IOException("adsf"); ...}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值