免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 829 | 回复: 0
打印 上一主题 下一主题

学习JAVA的笔记(一) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-12-14 00:29 |只看该作者 |倒序浏览
1、Java之父Golsling
   1995年5月23日  Java诞生
   1998年12月     1.2版本  Java2   J2SE J2EE J2ME  
   2004年12月     1.5版本(5.0)  Java    JavaSE JavaEE JavaME
   
2、Java SE --- Java标准平台   
   Java EE --- 企业级平台
   Java ME --- 微小平台,用在资源受限的平台上
3、java的特点:
    1、java是一种纯面向对象的语言
    2、跨平台:一次编译,到处运行(write once,run anywhere)
            编译
        .java--------->.class(字节码)
            解释
        .class-------->可执行文件
      java虚拟机(JVM):由虚拟机处理操作系统之间的差异,实现跨平台
       _________
      |         |
      | 解释器  |
      |_________|
          |  JVM    |
      |_________|
      |  OS     |
      |_________|
   
    3、简单高效
   
4、第一个程序(课堂代码:A.java)
   
    文件名:A.java
   
    class HelloWorld{
        public static void main(String[] args){              //public 与 static 的位置可以交换,其它的不可以换位也不可以省略
            System.out.println(12);
            System.out.println("HelloWorld");
        }
    }
   
    class Welcome{
        public static void main(String[] args){
            System.out.println("Welcome");
        }
    }
    编译:javac A.java        javac  文件名
    解释:java HelloWorld     java  类名
    注意:一个源程序可以有多个类,一个类对应一个.class文件
               如果一个源文件中有公开类,则源文件的文件名必须与公开类的类名完全同名(大小写也要相同)
          一个源文件中至多只能有一个公开类
5、环境变量的设置
   
    JAVA_HOME=/opt/jdk1.5.0_06      指向java的安装目录
    PATH=$JAVA_HOME/bin:$PATH       指向安装目录下的bin子目录
    CLASSPATH=.                     类路径
    export JAVA_HOME CLASSSPATH   
windows下:我的电脑--->属性---->高级----->环境变量
    path=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Rational\common;C:\Program Files\Java\jdk1.5.0_09\bin
    CLASSPATH=.;C:\Program Files\Java\jdk1.5.0_09\lib\tools.jar
**6、包的概念:(课堂代码:HelloWorld.java)   
        
    文件多了用文件夹管理,类多了用包来管理,包和目录的结构一一对应
    关键字package   例package p1; //p1是包名
    编译时javac -d . HelloWorld.java    按照包结构生成.class文件,若目录不存在,会自动创建
   
    运行时 java p1.HelloWorld        注意:运行时要使当前目录要在p1的上一级,不能进入p1目录下运行
   
   
    引入哪个包里的哪个类:关键字import  
        
        import p6.p7.p8.Welcome;   声明以下用到Welcome时不带包名
        
        import p6.p7.p8.*;    *表示p6.p7.p8包下的所有类,不能表示子包
        import java.lang.*;  用到java.lang下的类可以不写这句话,这是默认的
   
    注意:
        package
        import
        class
        这三个顺序是不可改变的
    习惯上:加包,加注释,换行,缩进
7、注释
    单行注释://
    多行注释:/*.....*/
          /**.....*/  这个也是多行注释,但编译时会把这种注释抽出来放在html中做成帮助文档
         有这种注释在编译时要用:javadoc -d doc 源文件名   
            把生成的帮助文档放在doc目录下,生成的帮助文档就是doc目录下的index.html文件
         这种注释修饰方法时放在方法前,修饰类时放在类前
8、标识符
   
    只能包括字母,下划线,$ , 数字,但数字不能开头,区分大小写,关键字不能做标识符
    一个汉字就是一个字母,汉字也可做标识符,但习惯上不用
   
    包名也是标识符
   
    java的关键字都是小写字母,幻灯片44的关键字
    关键字    assert  1.4添加的
        enum    1.5添加的
    goto , const 是保留字,java中不能使用
   
    true , false 不是关键字,是布尔类型的字面值
   
    习惯上:包名---- 全是小写字母
        类名---- 每个单词的首字母大写,其它的都是小写
        变量名、方法名------- 第一个单词都是小写,第二个单词及以后的每个单词首字母大写
        常量------ 全大写
9、变量
   
    局部变量:在方法内定义的变量
          (1)一定要先赋值后使用
          (2)作用范围:从定义开始到定义它的代码块结束  
          (3)在重合范围不允许两个局部变量命名冲突
10、数据类型  (课堂代码:TestDataType.java)
   
    基本类型:8种
        (1)与整型相关的:byte     1B     -128~127   
                     
                byte a=1;byte b=2; byte c=a+b;  //error!!! 因为a+b后自动把类型提升为int,把4个字节的赋给低
                正确写法: byte c=(byte)a+b;
                 short    2B     -32768~32767
                 int      4B     -2147483648~2147483647
                 long     8B     -2的63次方---2的63次方-1       字面值+l或L
        (2)与浮点数相关的:
                float     4B     赋值时加f
                double    8B     赋值时加d
               
                float f=1.3; //error!  默认为double
        (3)布尔值: boolean   1B  字面值 true,false   意味着布尔值和整数不能转换       if(1)  //error!!!!
        (4)字符型:char      2B  采用unicode编码    //用一个字节来表示一个字符
            char c='a';  char c=97;  
            
            char c='\u0061' -----unicode码值(16进制) 1个16进制表示2个字节
    对象类型  
        
        字符串:String  str="abc";
            a+b 若有一方为字符串,则为字符串连接
                "1"+2+3   结果是"123"
                1+2+"3"   结果是"33"
11、类型自动提升:
        a ? b     //两个数进行运算
        switch(a,b类型){
            case double: 结果 double;     //先看有没有一个是double 结果就是double
                     break;
            case float:  float;           //先看有没有一个是float 结果就是float
                     break;
            case long:   long;            //先看有没有一个是long 结果就是long
                     break;           
            default:  int;break;          //不满足上述三条则结果为int
        }
   
        byte a=10;
        a=a+10; //error  有自动类型提升
        a+=10;   没有自动类型提升
12、运算符(TestOperator.java)
   
    / 两个整型相除结果为整型  例: 5/2=2   5.0/2=2.5
    计算机采用的是补码
   
    >>  有符号右移1位,最高位用符号位
    >>  无符号右移,不管之前是正数是负数,移完以后都是正数
13、流程控制
    (1)控制流
            if()
            if()….else
            if()…..else if()….else
            注意:else只是和其上面的同层的最近的if()来配对。
    (2)switch(s){
            case 'a':……break;
             case 1:……break;
             default:....break;
              }
            注意:switch()内数据类型为byte short char int类型,只有以上四种类型的才可以在switch()中使用。
                  case块中不加break时顺序执行下面的语句。   
         
    (3)循环语句
           for(int i=0;i<n;i++){}  ---- 知道循环次数时最好用for循环
        不知道次数知道循环条件最好用以下两个
           while(){}               ---- 循环0或多次
           do{} while();-----------注意加分号  循环1或多次
               


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/56812/showart_441929.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP