靳宗信—Java程序设计基础教程(网本).doc_第1页
靳宗信—Java程序设计基础教程(网本).doc_第2页
靳宗信—Java程序设计基础教程(网本).doc_第3页
靳宗信—Java程序设计基础教程(网本).doc_第4页
靳宗信—Java程序设计基础教程(网本).doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java程序设计基础教程(讲稿)主讲人:靳宗信黄河科技学院信息工程学院计算机科学系2011-1-2第1章 java入门 一、Java的历史:1991:James Gosling1994:许多著名的公司购买了java的版权1995.5.23:Birthday (Java1.0)1996:Can only do simple things (Java1.02)1998.12:Can do almost anything (Java1.2)Now:Java1.6 二、编程语言排行榜三、Java技术的分类(1)J2SE:Java 2 Standard Edition 支持所有JAVA标准规范中所定义的核心类函数库和所有的JAVA基本类别。J2SE定位在客户端程序的应用上。 (2) J2EE:Java 2 Enterprise Edition 在J2SE的基础上增加了企业内部扩展类函数库的支持,比如支持Servlet/JSP的javax.servletr.*和EJB的javax.ejb.*的类函数库。J2EE定位在服务器端程序的应用上。 (3) J2ME:Java 2 Micro Edition 只支持JAVA标准规范中所定义的核心类函数库的子集。定位于嵌入式系统的应用上。 四、Java程序的分类(J2SE)(1)Java Application例:class HelloWorldpublic static void main(String args)System.out.println(Hello World!);(2)Java Applet例:import java.applet.Applet;import java.awt.*;public class TestApplet extends Appletpublic void paint(Graphics g) g.drawString(Hello World,10,100); New Document 五、Java开发工具(1)JDK:Java Software Develop Kit 可以从下面的网站下载:/technetwork/java/index.html()(2)EditPlus:源程序的编辑器(3)Java的集成开发环境 Eclipse (MyEclipse) Netbeans JBuilder Jcreator 六、JDK的安装、配置(1)下载 JDK(2)安装 JDK(3)配置环境变量 PATH CLASSPATH(4)安装 EditPlus七、Java程序的开发过程(1)Java应用程序的开发过程编辑源程序 (EditPlus)保存源程序 (.java)编译源程序 (javac.exe)调试源程序运行例子:class HelloWorldpublic static void main(String args)System.out.println(Hello World!);(2)Java Applet的开发过程编辑源程序 (EditPlus)保存源程序 (.java)编译源程序 (javac.exe)调试源程序运行 (浏览器运行)例子:import java.applet.Applet;import java.awt.*;public class TestApplet extends Appletpublic void paint(Graphics g) g.drawString(Hello World,10,100); New Document 八、参考书籍(1)Thinking in JavaFourth Edition1999年Java世界最具有影响力的书籍作者:Bruce EckelThinking in C+Thinking in PatternsC+Inside & OutUsing C+(2)最重要的资料:Java API Documentation可以从以下网站下载:/technetwork/java/index.html()作业:(1)配置Java的开发环境(2)编写一个Java应用程序,并运行(3)编写一个Java Applet,并运行(4)叙述Java为什么是跨平台的?31第二章 Java语言基础一、标识符和关键词(1)标识符:用来表示类名、变量名、方法名、类型名、数组名、文件名的有效字符序列Java语言规定:标识符有字母、下划线、美元符号和数字组成,并且第一个字符不能是数字。Java语言中的字母不仅是指常用的拉丁字母a、b、c等,还包括汉字、日文、朝鲜文、俄文、希腊字母以及其他许多语言中的文字。(2)关键词:java语言中被赋予特定意义的一些单词。不能把这些单词作为名字来使用。常见的关键词如下:abstractbooleanbreakbytecasecatchcharclasscontinuedodoubleelseenumextendsfalsefinalfinallyfloatforimplementsimportinstanceofintinterfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticsuperswitchsychronizedthisthrowthrowstruetryvoidwhile二、Java的数据类型(一)基本数据类型基本类型大小最小值最大值对应包装类booleanBooleanchar16 bitUnicode 0Unicode 216-1Characterbyte8 bit-128+127Byteshort16 bit-215-215-1Shortint32 bit-231-231-1Integerlong64 bit-263-263-1Longfloat32 bitIEEE754IEEE754Floatdouble64 bitIEEE754IEEE754Double基本数据类型的转换:(按精度从高到底的顺序)byte short intlongfloatdouble(1)自动类型转换(2)强制类型转换 (二)复合数据类型 类型性、接口类型、数组类型等。三、运算符(1)+ * / %例题1:public class TestOnepublic static void main(String args)System.out.println(7/2);System.out.println(7.0/2);System.out.println(7.0/2.0);System.out.println(7.0/2.0);例题2:public class TestTwopublic static void main(String args)System.out.print(7%-2+t);System.out.print(7%2+t);System.out.print(-7%2+t);System.out.println(-7%-2+t);System.out.println(7.2%2.8=+7.2%2.8);(2)+ 例题3:public class TestThreepublic static void main(String args)int a=2;a+;System.out.println(a=+a);int m=a+;System.out.println(a=+a+,m=+m);int n=+a;System.out.println(a=+a+,n=+n);算术混合运算的精度:byte short int long float double char类型和整数类型运算的结果?例题4:public class TestFourpublic static void main(String args)byte x=7;/那么B+x的结果是什么类型?(3)关系运算符: 2=+(a2);System.out.println(a2=+(a2);System.out.println(a2=+(a2);(6)其它运算符:运算符描述?:所用相当于if-else 用于声明数组、创建数组及访问数组元素.用于访问对象实例或者类的成员(type)强制类型转换new 创建对象或数组instanceof判断对象是否为类的实例四、Java中的注释(1)单行注释/此行为单行注释(2)多行注释/*此处为多行注释*/(3)文档注释/*此处为文档注释*/五、字符界面常见类型数据的输入(1)字符的输入例题:import java.io.*;public class InputCharpublic static void main(String args)char c= ;System.out.println(Enter a character please:);try c=(char)System.in.read();catch(IOException e) System.out.println(e);System.out.println(Youve entered a character:+c);输入英文,汉字?例题:import java.io.*;public class InputCharpublic static void main(String args)char c= ;System.out.println(Enter a character please:);tryInputStreamReader ln=new InputStreamReader(System.in); c=(char)ln.read();catch(IOException e) System.out.println(e);System.out.println(Youve entered a character:+c);(2)字符串的输入import java.io.*;public class InputStringpublic static void main(String args)String s=;System.out.println(Enter a String please:);tryInputStreamReader ln=new InputStreamReader(System.in);BufferedReader in=new BufferedReader(ln); s=in.readLine();catch(IOException e) System.out.println(e);System.out.println(Youve entered a String: +s);(3)基本数据类型的输入import java.io.*;public class InputIntegerpublic static void main(String args)int a=0;System.out.println(Enter a Integer please:);tryInputStreamReader ln=new InputStreamReader(System.in);BufferedReader in=new BufferedReader(ln); String s=in.readLine(); a=Integer.parseInt(s);catch(IOException e) System.out.println(e);System.out.println(Youve entered a Integer: +a);其它输入方式import java.util.*;public class OtherInputpublic static void main(String args)Scanner scan=new Scanner(System.in);int a=scan.nextInt();System.out.println(a);六、流程控制语句(1)条件控制语句if语句switch语句(2)循环语句for语句(foreach语法)class TestForeachpublic static void main(String args)int a=1,2,3,4,5,6,7,8,9,10;/*for (int i=0;i10 ;i+ )System.out.println(ai);*/ for(int x:a) System.out.println(x);while循环do-while循环(3)跳转语句break语句(带标号的break)class TestBreakpublic static void main(String args)outer:for (int x=0;x10 ;x+ ) for (int y=0;y10 ;y+ ) if (y=1)break outer; System.out.print(x+ ); System.out.println(); System.out.print(y+ ); continue语句(带标号的continue)七、方法八、Java数组一维数组二维数组八、Java才命令行参数第11章 多线程(第一讲)线程的基础(1)程序、进程和线程的概念。(2)线程的生命周期。(3)java中创建线程的方法。(4)Thread类中常用方法。(5)线程的优先级。(6)守护线程和用户级线程。(第二讲)线程的同步、死锁及线程间的通信(1)同步的概念:同一个进程的多个线程共享同一存储空间,带来了访问冲突这个严重的问题。如两个线程访问往往同一个对象时,一个线程向对象中存储数据,另一个线程读取该数据。如果第一个线程还没有完成存储操作,第二个线程就开始读取数据,就产生了混乱。例题1:未使用同步机制的多线程程序:class DataClassprivate int data=0;public void increase() int nd=data;tryThread.sleep(100);catch (Exception e)data=nd+1;public int getData() return data;class NThread extends ThreadDataClass d;NThread(DataClass d) this.d=d;boolean alive=true;public void run() for(int i=0;i100;i+) d.increase();alive=false;public class NoSynpublic static void main(String args)DataClass d=new DataClass();NThread t1=new NThread(d);NThread t2=new NThread(d);t1.start();t2.start();while(t1.alive|t2.alive);System.out.println(data=+d.getData();例题2:使用同步机制的多线程程序:public synchronized void increase()将例题1进行修改,加入同步机制。(2)同步块:synchronized修饰的方法虽然可以解决同步问题,但也存在缺陷,如果一个synchronized的方法需要执行的时间很长,将会大大影响系统的效率,所有Java提供了一个解决办法:使用synchronized块。例题3:使用Synchronized块的方法:class CallMevoid call(String msg) synchronized(this) System.out.print(+msg); try Thread.sleep(1000); catch (Exception e) System.out.println();class Caller implements RunnableString msg;CallMe target;public Caller(CallMe t,String s) target=t; msg=s; new Thread(this).start();public void run() target.call(msg);public class SynBlockpublic static void main(String args)CallMe target=new CallMe();new Caller(target,hello);new Caller(target,synchronized);new Caller(target,world);(3)线程的死锁:class Asynchronized void print() System.out.println(Aprint);synchronized void callB(B bObject) System.out.println(Thread.currentThread().getName()+:);System.out.println(Lock aObject,and wait bObject.);tryThread.sleep(100);catch (Exception e)bObject.print();class Bsynchronized void print() System.out.println(Bprint);synchronized void callA(A aObject) System.out.println(Thread.currentThread().getName()+:);System.out.println(Lock bObject,and wait aObject.);tryThread.sleep(100);catch (Exception e)aObject.print();public class DeadLock implements RunnableA a=new A();B b=new B();DeadLock() new Thread(this).start();a.callB(b);public void run() b.callA(a);public static void main(String args)new DeadLock();(4)线程通信:例题4:生产者-消费者线程/模拟生产者消费者模型class Store private int seq

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论