Chinaunix首页 | 论坛 | 博客
  • 博客访问: 187418
  • 博文数量: 54
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 630
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-02 18:41
文章分类

全部博文(54)

文章存档

2011年(1)

2009年(30)

2008年(23)

我的朋友

分类: Java

2008-11-26 15:26:42

第1章:java语言简介
 java是1995年6月由Sun公司引进的革命性编程语言,语法简单,完全面向对象,最突出的就是平台无关性。Java不像c++,它不针对CPU芯片进行编译,而是把程序编译为字节代码的一种“中间语言”。字节码很接近于机器码。可以在java虚拟机(JVM)上解释执行,JVM将字节码翻译成本地计算机的机器码,并将机器码交由操作系统运行。
 java字节码经过仔细设计,似的java运行时环境很容易使用JIT(即时编译方式 just in time)编译技术将字节码直接转化成高性能的本地机器码,再交给操作系统运行,而不必解释一句执行一句。
 java特点之一就是内置对多线程的支持。C++没有内置多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计。
 Java Applet程序很安全,因为它被限制在java运行环境中不允许访问计算机其他部分。

 java三种平台:J2SE——java标准版或java标准平台,J2EE——java企业版或java企业平台,J2ME——java微型版或java小型平台。
 
 java源文件的命名:如果源文件中有多个类,最多只能有一个类为public类,如果有一个类是public类,那么原文件名必须与这个类名完全相同。扩展名(.java)。如果源文件没有public类,那么源文件名字只要和其中某个类名相同即可。

 
第2章:基本类型、数组和枚举类型
 java标识符由字母、_、$和数字组成,且第一个字幕不能是数字。标识符区分大小写。java语言使用的是Unicode标准字符集,因此java所使用的字母不仅包括拉丁字母[a-zA-Z],也包括汉字,日文的片假名和平假名,朝鲜文,俄文,希腊字母以及其他许多语言中的文字。
 如可以:
  int 中国=1; //成功编译运行

 java基本数据类型:(8种)boolean[true、false];byte[1字节有符号整数];char[2字节字符类型];short[2字节有符号整数];int[4字节有符号整数];long[8字节有符号整数];float[4字节浮点数,7-8位有效数字];double[8字节浮点数,15-16位有效数字];
 按精度从'低'到'高'排列如下:byte < short < char < int < long < float < double
 级别低的变量值可以直接赋值给级别高的变量,反之则需要显式类型转换:
 float x=100;    int x=(int)35.89;
 (一个常见错误)把一个double类型赋值给float型,没有进行强制转换运算,如下:
  float x=12.4; //语法错误   
 正确写法:
  float x=12.4F;
  float x=(float)12.4;
 
 数组:与C++不同,Java不允许在声明数组中的方括号内指定数组元素个数,如下两种将语法错误:
  int a[12]; //语法错误
  int[12] a; //语法错误
 正确如下:
  int a[]; //int[] a;
  a=new int[12];
 与C语言不同的是,Java允许使用int型变量类指定数组元素个数,如下:
  int size=10;
  double number[] = new double[size]; //C中不允许
 一个二维数组中一维数组长度可以不同:
  int a[][] = {{1},{1,2},{1,2,3}};
 java中数组属于引用型变量,且可以重新赋值。(C++中不可以,C++中数组为引用常量)
  int a[]={1,2,3}, b[]={4,5};
  a=b;   //java中编译通过
 
 
第3章:运算符、表达式和语句
 数组与for语句:JDK 1.5对for语句进行了改进,为更好遍历数组,改进后的for语句格式如下:
  for(声明循环变量 : 数组名)
  { ...
  }
 如:
  char b[]={'a','b','c','d'};
  for(char ch : b)
  {
   System.out.println(ch);
  }
 注意:for(声明循环变量 : 数组名)中的"声明循环变量"必须是变量声明,不能使用已经声明过的变量。不能写成下面形式:
  int a[]={1,2};
  int i=0;
  for(i : a) //i无法解析为类型
  {
   System.out.println(i);
  }
 
 java中的枚举类型(定义在类外面)可以用如下形式返回一个数组:
  enum WeekDay{sun, mon, tue, wsd, thu, fri, sat}
 类中如下使用:
  WeekDay a[]=WeekDay.values();
  for(WeekDay day : WeekDay.values()) //
  {
   System.out.println(day);
  }
 
 
第4章:类与对象
 java中定义类的成员变量时可以同时赋初值,如:
  class A
  {
   int a=12; 
   float b=12.56f;
  }
 但是不可以写成如下形式:
  class A
  {
   int a;
   float b;
   a=12;  //非法
   b=12.56f; //非法
  } 
 
 java中对于对象数组的初始化只能一个一个初始化,如下:
  A[] a=new A[15];
  for(int i=0; i  {
   a[i]=new A();
  }
 
 JDK1.5新增了静态导入功能,可以直接使用类变量和类方法(static),而不必通过对象或类名来使用它们。
  import static 包名.类名.*;
 或
  import static 包名.类名.类变量名;
  import static 包名.类名.类方法名;
 
 java中不用private,public,protected访问修饰符修饰的方法和变量称为友好变量和友好方法。友好变量和友好方法可以被同一个包下的其它类使用。(当然要先定义对象)
 protected修饰的变量和方法可以被同一包中的其他类或者子类调用。
 类前加public修饰符表示该类可以在任何另外一个类中创建对象。如果一个类没有用public修饰则叫做友好类,另外一个类使用友好类创建对象时要保证它们在同一包中。
 
 基本类型的类包装,java中提供了与基本数据类型相关的类,实现了对基本数据类型的封装。这些类在java.lang包中,分别是Byte,Integer,Short,Long,Float,Double和Character类。
 响应实现Byte(byte num),Interger(int num),Short(short num),Long(long num),Float(float num),Double(double num)来构造对象。
 并实现相应的byteValue(),intValue(),shortValue(),longValue(),floatValue(),doubleValue()方法返回数据。
 Character类实现对char基本数据类型的封装。构造函数和响应返回该对象包含的char型数据方法为Character(char c)和charValue()。
 Character类中包含的一些常见方法如下:
  public static boolean isDigit(char ch);
  public static boolean isLetter(char ch);
  public static boolean isLetterOrDigit(char ch);
  public static boolean isSpaceChar(char ch);
  public static boolean isLowerCase(char ch);
  public static boolean isUpperCase(char ch);
  public static char toLowerCase(char ch);
  public static char toUpperCase(char ch);
 
 自动装箱与拆箱:JDK1.5增加了基本数据类型和相应的对象之间的相互自动转换功能,称为基本数据类型的自动装箱和拆箱。
 自动装箱就是把一个基本数据类型值直接赋值给与基本数据类型相对应的类的实例,如
  Integer number=100;
 自动拆箱是把基本数据类型相应的类的实例直接赋值给相应的基本数据类型变量,或把基本数据类型相应的类的实例当做相应的基本数据类型来使用,如:
  int x=number+number;

 
阅读(1757) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~