1)起源:
源于sun的一个叫Green的项目,给家用电子产品开发一个分布式系统,通过给家用电器发送EMail来控制它们。
开始准备采用C++,但是C++太复杂,安全性差,所以就开发了一个类C的语言,名字叫Oak,这是java的前身。后来竞
争失败,走投无路的时候受NetScape启发,继续完善改名为java,开发了一个HotJava浏览器。
2)特点:
a:跨平台,编译成与平台无关的中间码
b:象指针和释放内存等操作被删除,屏弃C++中容易出错的地方,具有内存自动回收功能。是代码具有健壮性。
去掉了C++中的:指针运算,结构,typedefs,#define,全局变量的定义。释放内存。
c:包括一个支持http和ftp的基于tcp/ip协议的类库,使开发internet上的程序更容易。
3)文件说明
javac :java语言编辑器,叫源代码(后缀为java)编译成字节码(后缀为class) ---使用方法:javac 代码文
件.java
java :java字节码解释器 ---使用方法:java 字节文
件.class
4)语法:
a:注释://---表示注释一行 /* */---表示注释N行
b:数据类型:(8进制前面有个0,16进制前面有0x,或者0X)
1、整型----------byte(-128--128),short(-32768-32767),int(-21亿,2的32次方),long(2的64次方)
2、浮点型--------float,double
3、布耳型--------boolean
4、字符型--------Char //char b='c';
5、字符串型------string //String b="abcdefg";
c:数组:
1、定义:一维:int a[],二维:float b[][]
2、设置长度:a=new int[10] 或者写在一起:int a[]=new int[10];
3、长度:数组名.length
d:表达式
1、基本运算符号----:+,-,*,/,%(取模)
2、单目运算符号----:++,--,&(位与),|(位或)
3、判断符号--------: ==,!=,&&(并且),||(或者)
4、对象运算符------:if (myobjcet instanceof 父类) //判断是否是该父类的子类
5、三元运算符------:i=b?1:0 //表示如果b=true 则i=1,否则为0
e:控制结构:
1、判断结构: if (条件) {} else {}
2、开关结构:switch (表达式) {
case 值1:... break;
case 值2:... break;
case 值3:... break;
default:...
}
3:for循环结构: for (int i;i<=N;i++) {....}
4:while循环结构: while (条件) {....}
5:do循环结构: do {...} while (条件)
6:其他控制语句:
---break;
---continue;
---return 值;
---label:提供break,continue跳出循环的作用.跳转比如:break lab;
5)常用函数:
1:常用数学函数:java.lang.Math
2:字符串函数:
a、Char CharAt(i) ------------------返回第N个字符:
b、int CompareTo(字符串)-----------比较两个字符串: 小于0表示比他小,等于0表示相等,大于0表
示比他大
c、String Concat(字符串)--------------将两个字符串连接起来
d、int Indexof(字符或者字符串)-----求字符的位置,找不到返回-1
e、Stinrg Substing(其始位置,结束位置)-求子串
f、String trim()-----------------------去掉空格
3:转换函数:
a.字符串转化为数值:f=new float(s).floatvalue();
d=new double(s).doublevalue();
4:格式化函数:
a、格式话数字:format('2222%s3333%s1111',v1,v2) -------没有,java5才有。
b、格式话日期:java.text.SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d = sdf.parse(date);
java.text.SimpleDateFormat sdfNew = new SimpleDateFormat("MMddyyyy");
return sdfNew.format(d);
*****************************************************************************************************
6)类结构说明:
a、构造函数:与类名相同的函数比如: public HelloWorld () {...} ---构造函数没有返回值,void也没有,
如果有那就不是构造函数了
b、结束函数:java没有提供析构函数,因为java本身具有自动清除功能,但是他也提供了一个自动垃圾箱的成员
函数:
Protected void finaliaze () {...}
c、父类与子类:
class woman extends men {...}
d、访问控制:
1、public--------------可以被任意其他类调用
2、protected-----------只能在该类和其子类调用(自己也不能调用????)
3、private-------------只能在本类中调用
4、friendly------------(缺省)可以被本包里的任意对象访问。
e、静态:static
1、静态变量:static int i=1; //无论在哪个对象里面改变了静态变量的值,则所有对象的该静
态变量都要改变。
2、静态函数:static void add() {...} //静态函数不能访问非静态函数和变量。他的作用是:可直接调
用。同delphi中的类函数。
f、this 和 super
1、this代表本类。
2、super代表父类。
g、类的类型:
1、abstract------------抽象类,必须至少有一个虚函数。一个抽象类不能创建对象,必须继承子类才能创
建对象。
2、final---------------结束类:表示该类不能再派生出之类。
3、public--------------公共类:表示其他类可以调用,其他包要使用该类则:import 包。类。
4、synchronicable------同步类:表示这些类的成员函数必须同步。
h、接口:
1、定义:public interface TestIn {....声明空的方法}
2、使用:class MyClass implements 接口 {实现接口中的方法}
7)异常处理:
1、结构1:
try
{...}
catch (Exception e)
{...}
2、结构2:
try
{...}
finally
{...}
3、抛出错误 throw e;
8)HelloWorld例子:
public class HelloWord {
public static void main(String[] args) {
System.out.println("Hello,Wrold!");
}
}
//接收外部参数参数:int a=Integer.ParseInt(args[0]);
int b=Integer.ParseInt(args[1]);
*****************************************************************************************************
9)JAVA中的类:(根类:object)
1、输入输出类:java的输入输出类要使用java.lang程序包中的类
a: java.lang.System
b: java.lang.Inputstream
c: java.lang.Printstream
------------------------------------------------
System.in为 Inputstream的对象
System.out为Printstream的对象
System.err为Printstream的对象,用于错误信息的输出。
2、Date类 Date d1=new Date(); //定义一个当前时间的类
import java.utils.*
3、Hashtable类 //hash:杂乱序号 hash code:混列码
说明:Hashtable提供一个hash表,定义:Hashtable h1=new Hashtable(); Hashtable h2=new
Hashtable(20,)
4、Random类 随机数类
5、Vector类:安装一个可延续的对象数组
6、AWT类
10)不明白的代码
1、System.out.flush
---------flush()的作用是清空缓冲区,更新缓冲区,不然有时候会看不到输出,用BufferedReader用了一个系统
分配的缓冲区,只有缓冲区满了时候才会读出,如果没满而你又想操作的话,就要用flush清空缓冲区,让结果输出!
2、Integer.parseInt ---------//pa:z//解析,使用格式:parseInt(String s,int radix),返回一个整数
,为radix进制的
3、hashcode ---------------对象的散列标识,就和你的身份证类似,可以一下子就找到你的资料.数据结
构哈希散列的具体应用
hashtable和hashmap的区别-a、HashTable是线程安全的一个Collection,HashMap不是线程安全的
b、前者是图,后者是哈希表,在HashMap中不能由get()方法来判断HashMap中
是否存在某个键,而应该用containsKey()方法来判断。
c、前者的关键词是,遍历、查找、搜索(如最短路径)后者的关键词是,冲
突处理,排序,
d、都属于Map接口的类,实现了将惟一键映射到特定的值上。HashMap 类没有
分类或者排序。它允许一个 null 键和多个 null 值。 Hashtable 类似于 HashMap,但是不允许 null 键和 null
值。它也比 HashMap 慢,因为它是同步的。
e、Hashtable缺省的初始大小为101,载入因子为0.75,即如果其中的元素个数
超过75个,它就必须增加大小并重新组织元素,所以,如果你知道在创建一个新的Hashtable对象时就知道元素的确切
数目如为110,那么,就应将其初始大小设为110/0.75=148,这样,就可以避免重新组织内存并增加大小
一个hashtable的例子:
HashTable h=new HashTable();
h.put("用户1",new Integer(90));
h.put("用户2",new Integer(50));
h.put("用户3",new Integer(60));
h.put("用户4",new Integer(70));
Enumeration e=h.elements();
while(e.hasMoreElements()){System.out.println(e.nextElement());
4、没有结构怎么处理?-----------------用类代替。
5、vector //向量与arraylist-----a、Vector和ArrayList Vector和ArrayList在使用上非常相似,都可用来
表示一组数量可变的对象应用的集合,并且可以随机地访问其中的元素。
b、Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的
同步必然要影响性能,因此,ArrayList的性能比Vector好。
c、当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,
而ArrayList只增加50%的大小,这样,ArrayList就有利于节约内存空间
11)常出现的错误信息
1、The method readLine() from the type DataInputStream is deprecated //deprikeit//抗议,不赞成。
说明:说明这个方法或类java不再建议您使用,以后的版本也不会再更新这个方法或类。
2、Unhandled exception type IOException
说明:要用try ...catch...语句把会出错的地方包含起来 //Throws IOException
3、XXX cannot be resolved
说明:该变量没有定义或者不在定义范围之内。在{}内定义的变量只在{}内有
源于sun的一个叫Green的项目,给家用电子产品开发一个分布式系统,通过给家用电器发送EMail来控制它们。
开始准备采用C++,但是C++太复杂,安全性差,所以就开发了一个类C的语言,名字叫Oak,这是java的前身。后来竞
争失败,走投无路的时候受NetScape启发,继续完善改名为java,开发了一个HotJava浏览器。
2)特点:
a:跨平台,编译成与平台无关的中间码
b:象指针和释放内存等操作被删除,屏弃C++中容易出错的地方,具有内存自动回收功能。是代码具有健壮性。
去掉了C++中的:指针运算,结构,typedefs,#define,全局变量的定义。释放内存。
c:包括一个支持http和ftp的基于tcp/ip协议的类库,使开发internet上的程序更容易。
3)文件说明
javac :java语言编辑器,叫源代码(后缀为java)编译成字节码(后缀为class) ---使用方法:javac 代码文
件.java
java :java字节码解释器 ---使用方法:java 字节文
件.class
4)语法:
a:注释://---表示注释一行 /* */---表示注释N行
b:数据类型:(8进制前面有个0,16进制前面有0x,或者0X)
1、整型----------byte(-128--128),short(-32768-32767),int(-21亿,2的32次方),long(2的64次方)
2、浮点型--------float,double
3、布耳型--------boolean
4、字符型--------Char //char b='c';
5、字符串型------string //String b="abcdefg";
c:数组:
1、定义:一维:int a[],二维:float b[][]
2、设置长度:a=new int[10] 或者写在一起:int a[]=new int[10];
3、长度:数组名.length
d:表达式
1、基本运算符号----:+,-,*,/,%(取模)
2、单目运算符号----:++,--,&(位与),|(位或)
3、判断符号--------: ==,!=,&&(并且),||(或者)
4、对象运算符------:if (myobjcet instanceof 父类) //判断是否是该父类的子类
5、三元运算符------:i=b?1:0 //表示如果b=true 则i=1,否则为0
e:控制结构:
1、判断结构: if (条件) {} else {}
2、开关结构:switch (表达式) {
case 值1:... break;
case 值2:... break;
case 值3:... break;
default:...
}
3:for循环结构: for (int i;i<=N;i++) {....}
4:while循环结构: while (条件) {....}
5:do循环结构: do {...} while (条件)
6:其他控制语句:
---break;
---continue;
---return 值;
---label:提供break,continue跳出循环的作用.跳转比如:break lab;
5)常用函数:
1:常用数学函数:java.lang.Math
2:字符串函数:
a、Char CharAt(i) ------------------返回第N个字符:
b、int CompareTo(字符串)-----------比较两个字符串: 小于0表示比他小,等于0表示相等,大于0表
示比他大
c、String Concat(字符串)--------------将两个字符串连接起来
d、int Indexof(字符或者字符串)-----求字符的位置,找不到返回-1
e、Stinrg Substing(其始位置,结束位置)-求子串
f、String trim()-----------------------去掉空格
3:转换函数:
a.字符串转化为数值:f=new float(s).floatvalue();
d=new double(s).doublevalue();
4:格式化函数:
a、格式话数字:format('2222%s3333%s1111',v1,v2) -------没有,java5才有。
b、格式话日期:java.text.SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d = sdf.parse(date);
java.text.SimpleDateFormat sdfNew = new SimpleDateFormat("MMddyyyy");
return sdfNew.format(d);
*****************************************************************************************************
6)类结构说明:
a、构造函数:与类名相同的函数比如: public HelloWorld () {...} ---构造函数没有返回值,void也没有,
如果有那就不是构造函数了
b、结束函数:java没有提供析构函数,因为java本身具有自动清除功能,但是他也提供了一个自动垃圾箱的成员
函数:
Protected void finaliaze () {...}
c、父类与子类:
class woman extends men {...}
d、访问控制:
1、public--------------可以被任意其他类调用
2、protected-----------只能在该类和其子类调用(自己也不能调用????)
3、private-------------只能在本类中调用
4、friendly------------(缺省)可以被本包里的任意对象访问。
e、静态:static
1、静态变量:static int i=1; //无论在哪个对象里面改变了静态变量的值,则所有对象的该静
态变量都要改变。
2、静态函数:static void add() {...} //静态函数不能访问非静态函数和变量。他的作用是:可直接调
用。同delphi中的类函数。
f、this 和 super
1、this代表本类。
2、super代表父类。
g、类的类型:
1、abstract------------抽象类,必须至少有一个虚函数。一个抽象类不能创建对象,必须继承子类才能创
建对象。
2、final---------------结束类:表示该类不能再派生出之类。
3、public--------------公共类:表示其他类可以调用,其他包要使用该类则:import 包。类。
4、synchronicable------同步类:表示这些类的成员函数必须同步。
h、接口:
1、定义:public interface TestIn {....声明空的方法}
2、使用:class MyClass implements 接口 {实现接口中的方法}
7)异常处理:
1、结构1:
try
{...}
catch (Exception e)
{...}
2、结构2:
try
{...}
finally
{...}
3、抛出错误 throw e;
8)HelloWorld例子:
public class HelloWord {
public static void main(String[] args) {
System.out.println("Hello,Wrold!");
}
}
//接收外部参数参数:int a=Integer.ParseInt(args[0]);
int b=Integer.ParseInt(args[1]);
*****************************************************************************************************
9)JAVA中的类:(根类:object)
1、输入输出类:java的输入输出类要使用java.lang程序包中的类
a: java.lang.System
b: java.lang.Inputstream
c: java.lang.Printstream
------------------------------------------------
System.in为 Inputstream的对象
System.out为Printstream的对象
System.err为Printstream的对象,用于错误信息的输出。
2、Date类 Date d1=new Date(); //定义一个当前时间的类
import java.utils.*
3、Hashtable类 //hash:杂乱序号 hash code:混列码
说明:Hashtable提供一个hash表,定义:Hashtable h1=new Hashtable(); Hashtable h2=new
Hashtable(20,)
4、Random类 随机数类
5、Vector类:安装一个可延续的对象数组
6、AWT类
10)不明白的代码
1、System.out.flush
---------flush()的作用是清空缓冲区,更新缓冲区,不然有时候会看不到输出,用BufferedReader用了一个系统
分配的缓冲区,只有缓冲区满了时候才会读出,如果没满而你又想操作的话,就要用flush清空缓冲区,让结果输出!
2、Integer.parseInt ---------//pa:z//解析,使用格式:parseInt(String s,int radix),返回一个整数
,为radix进制的
3、hashcode ---------------对象的散列标识,就和你的身份证类似,可以一下子就找到你的资料.数据结
构哈希散列的具体应用
hashtable和hashmap的区别-a、HashTable是线程安全的一个Collection,HashMap不是线程安全的
b、前者是图,后者是哈希表,在HashMap中不能由get()方法来判断HashMap中
是否存在某个键,而应该用containsKey()方法来判断。
c、前者的关键词是,遍历、查找、搜索(如最短路径)后者的关键词是,冲
突处理,排序,
d、都属于Map接口的类,实现了将惟一键映射到特定的值上。HashMap 类没有
分类或者排序。它允许一个 null 键和多个 null 值。 Hashtable 类似于 HashMap,但是不允许 null 键和 null
值。它也比 HashMap 慢,因为它是同步的。
e、Hashtable缺省的初始大小为101,载入因子为0.75,即如果其中的元素个数
超过75个,它就必须增加大小并重新组织元素,所以,如果你知道在创建一个新的Hashtable对象时就知道元素的确切
数目如为110,那么,就应将其初始大小设为110/0.75=148,这样,就可以避免重新组织内存并增加大小
一个hashtable的例子:
HashTable h=new HashTable();
h.put("用户1",new Integer(90));
h.put("用户2",new Integer(50));
h.put("用户3",new Integer(60));
h.put("用户4",new Integer(70));
Enumeration e=h.elements();
while(e.hasMoreElements()){System.out.println(e.nextElement());
4、没有结构怎么处理?-----------------用类代替。
5、vector //向量与arraylist-----a、Vector和ArrayList Vector和ArrayList在使用上非常相似,都可用来
表示一组数量可变的对象应用的集合,并且可以随机地访问其中的元素。
b、Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的
同步必然要影响性能,因此,ArrayList的性能比Vector好。
c、当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,
而ArrayList只增加50%的大小,这样,ArrayList就有利于节约内存空间
11)常出现的错误信息
1、The method readLine() from the type DataInputStream is deprecated //deprikeit//抗议,不赞成。
说明:说明这个方法或类java不再建议您使用,以后的版本也不会再更新这个方法或类。
2、Unhandled exception type IOException
说明:要用try ...catch...语句把会出错的地方包含起来 //Throws IOException
3、XXX cannot be resolved
说明:该变量没有定义或者不在定义范围之内。在{}内定义的变量只在{}内有