java程序员学c

2024-07-18

java程序员学c(精选6篇)

篇1:java程序员学c

集合部分测试题

考试宣言: 同学们, 考试考多少分不是我们的目的!排在班级多少的名次也不是我们的初衷!我们考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听!那时候学会了, 记住了, 也一样不影响你高薪就业!

本套题共40道不定项选择题,其中单选30道,多选10道。单选2分/题,多选4分/题。多选题不全对半分,全对满分。

1.所有异常的父类是()A a)Throwable类 b)Error类

c)Exception类

d)RuntimeException类

2.下列关键字能和try一起使用的有()CD a)final b)finalize c)finally d)catch

3.实现下列哪个接口,可以启用序列化功能()b a)Runnable接口

b)Serializable接口 c)Comparable接口 d)Comparator接口

4.当方法遇到异常(编译时异常)又不知如何处理时,下列哪种说法是正确的()C a)捕获异常(try{…}catch{…})b)抛出异常(throw 异常对象)c)声明异常(throws 异常类型)d)嵌套异常

5.如何自定义一个异常类()AB a)让这个类继承Exception b)让这个类继承RuntimeException c)让这个类继承Comparator d)让这个类继承Comparable

6.可以用来操作路径的类是()a a)File b)FileStream c)OutputStream d)FileReader

7.File类中,创建多级目录,可以通过以下那个方法()d a)create()b)createNewFile()c)mkdir()d)mkdirs()

8.下列哪一个import命令可以使我们在程序中创建输入/输出流对象()B a)import java.sql.*;b)import java.io.*;c)import java.net.*;d)import java.util.*;

9.下列关于Java中文件输入输出的说法正确的是()A a)在Java中,文件的输入输出功能是通过流来实现的

b)如果要把数据写入一个文件中,需要创建一个输入流对象 c)字符流在某些方面比如图片的处理,比字节流更方便x d)可以通过Reader r = new Reader(“c:java.txt”);创建一个输入流对象

10.获取指定目录下所有的文件,可以通过哪个方法实现:()D a)b)c)d)

list()getDir();listFile()listFiles()11.下面用字符流能成功拷贝的文件有()BC a)java基础自测题.doc b)学生考试答案.xml c)Student.java d)学生信息表.xlsx

12.看下面程序,加入xxx.txt里面有一个文字”a”,请问该程序输出结果是()D public static void demo1()throws FileNotFoundException, IOException {

InputStream is = new InputStream(“xxx.txt”);

int x = is.read();

System.out.println(x);} a)A b)a c)97 d)编译报错

13.如果我想保留a.txt中原有的内容,在后面追加写入数据,下面创建输出流对象写法正确的是()B a)FileOutputStream fos = new FileOutputStream(“a.txt”);

b)FileOutputStream fos = new FileOutputStream(“a.txt”,true);c)BufferedOutputStream bos = new BufferedOutputStream(“a.txt”,true);d)OutputStreamWriter osw = new OutputStreamWriter(new InputStream(“a.txt”,true),”gbk”);

14.下面关于字节流说法不正确的是()BC a)字节流拷贝文件时一次读取一个字节 b)字节流拷贝文件时一次读取两个字节

c)字节流使用完后需要关,内存输出流使用完后也必须要关闭 d)FileOutputStream没有缓冲区,而FileWriter有缓冲区

15.判断一个文件的大小我们可以使用哪个方法(AD)

a)File类的length()方法

b)File类的available()方法

c)FileInputStream类的length()方法 d)FileInputStream类的available()方法

16.已知 海贼王全集.avi 这个文件有20Gb 的大小,复制该文件最快的方式是()D a)

FileInputStream fis = new FileInputStream(“双元.jpg”);

FileOutputStream fos = new FileOutputStream(“copy.jpg”);

int b;

while((b = fis.read())!=-1){

fos.write(b);

}

fis.close();

fos.close();b)

c)

d)

FileInputStream fis = new FileInputStream(“致青春.mp3”);FileOutputStream fos = new FileOutputStream(“copy.mp3”);byte[] arr = new byte[fis.available()];

fis.read(arr);

fos.write(arr);

fis.close();fos.close();

FileInputStream fis = new FileInputStream(“xxx.txt”);FileOutputStream fos = new FileOutputStream(“yyy.txt”);

byte[] arr = new byte[1024];int len;while((len = fis.read(arr))!=-1){ fos.write(arr,0,len);}

fis.close();fos.close();

FileInputStream fis = new FileInputStream(“xxx.txt”);FileOutputStream fos = new FileOutputStream(“yyy.txt”);

byte[] arr = new byte[1024*8];int len;while((len = fis.read(arr))!=-1){

fos.write(arr,0,len);}

fis.close();fos.close();17.BufferedInputStream这个类是哪个设计模式的体现()B a)单例设计模式 b)装饰设计模式 c)工厂设计模式 d)适配器模式

18.下面说法正确的是()D a)OutputStream是个接口 b)Writer是个接口

c)BufferedOutputStream是FileOutputStream的父类x d)Reader是InputStreamReader的父类

19.下列关于Java I/O中字符输入流Reader类中的read方法描述错误的是?(A)

a)read()方法的返回值类型为char类型 b)read()方法的返回值类型为int类型

c)read()方法的返回值如果为-1,表示到流的末尾

d)read(char[] cbuf)方法表示将读到的多个字符存入字符数组cbuf中

20.下列哪些选项是Java I/O中字符输出流FileWriter类中的write方法?()ABCD a)write(char[] cbuf)写入字符数组

b)write(char[] cbuf, int off, int len)写入字符数组的某一部分 c)write(int c)写入单个字符 d)write(String str)写入字符串

21.假设存在xxx.txt文件,内容为”大家好”,以下代码运行的结果为?(A)public class Test { public static void main(String[] args)throws IOException {

FileReader fr = new FileReader(“xxx.txt”);

FileWriter fw = new FileWriter(“zzz.txt”);

int c;

while((c = fr.read())!=-1){

fw.write();

}

fr.close();

fw.close();} } a)b)c)d)

编译报错

程序正常运行,zzz.txt文件中的内容为”大家好” 程序正常运行,但是没有生成zzz.txt文件 程序正常运行,但是zzz.txt文件中是乱码

22.FileWriter类直接继承哪个类?(A)

a)OutputStreamWriter b)Writer c)BufferedWriter d)InputStreamReader

23.关于自定义字符数组拷贝文件的说法错误的是?()AC a)自定义的数组越大越好

b)自定义的数组既不能太大,也不能太小

c)可以使用FileReader类的available()方法的返回值作为数组的大小

d)建议定义为1024的整数倍,但不能太大,防止内存溢出

24.假设xxx.txt文件中存了2000个汉字,下列程序运行后输出的结果是?(B)

public class Test { public static void main(String[] args)throws IOException {

FileReader fr = new FileReader(“xxx.txt”);

FileWriter fw = new FileWriter(“yyy.txt”);

int count = 0;

char[] arr = new char[1024];

int len;

while((len = fr.read(arr))!=-1){

count++;

fw.write(arr,0,len);

}

fr.close();

fw.close();

System.out.println(count);} }

a)1 b)2 c)3 d)4

25.下面的哪个类代表字节输入流到字符输入流转换的桥梁?()A a)InputStreamReader b)OutputStreamWriter c)FileReader d)BufferedReader

26.BufferedReader读取一行时,判断该行是否结束的标志是什么?()AD a)

r b)

null c)

-1 d)

rn

27.缓冲流是否需要关闭()B a)否 b)是

c)以上答案都不对 d)关不关都可以

28.以下代码运行后输出的结果是?(A)

public class Test { public static void main(String[] args)throws IOException {

System.out.println(fun(5));} public static int fun(int num){

if(num == 1){

return 1;

}else {

return num * fun(num2)+ fun(num-1);

} } } a)34 b)13 c)21 d)5

30.为了提高读写性能,用下面的哪些流?()ABCD a)BufferedInputStream b)BufferedOutputStream c)BufferedReader d)BufferedWriter

31.下列关于Java I/O中哪个流可以将多个文件中的内容合并到一个文件中(序列流)?(cC a)SequenceOutputStream b)InputStreamReader c)SequenceInputStream d)OutputStreamWriter

32.下面的哪个流表示内存输出流?()A a)ByteArrayOutputStream b)ByteArrayInputStream c)ObjectInputStream d)ObjectOutputStream

33.下面说法正确的是?()b a)可以通过ByteArrayOutputStream和ByteArrayInputStream实现文件的复制)b)不可以通过ByteArrayOutputStream和ByteArrayInputStream实现文件的复制 c)用ByteArrayOutputStream和ByteArrayInputStream实现文件的复制,会出现乱码 d)用ByteArrayOutputStream和ByteArrayInputStream实现文件的复制,不会出现乱码

34.下面说法错误的是?()D a)ByteArrayOutputStream内部封装了字节数组

b)new ByteArrayOutputStream()利用空参构造创建对象时,内部的数组的大小为32 c)toByteArray()以字节数组的形式返回数据 d)以上说法都不对

35.关于对象操作流的描述正确的是?()A a)ObjectOutputStream流是将对象以Object类型写入到文件中 b)ObjectOutputStream流是将内容写入到Object对象中 c)ObjectInputStream流是读取Object对象里的内容

d)ObjectInputStream是从文件中读取一个对象出来,读出来是Object类型的,需要进行强制类型转换

36.ObjectOputStream类中的哪个方法可以将对象写入到文件中?()C a)write(Object obj)b)append(Object obj)c)writeObject(Object obj)d)objectWrite(Object obj)

37.下列选项中哪个不属于I/O流?()C a)FileWriter b)FileReader c)Properties d)PrintStream

38.下列说法不正确的是()D a)Properties 类表示了一个持久的属性集L b)Properties 可保存在流中或从流中加载L c)属性列表中每个键及其对应值都是一个字符串L d)以上说法都不对

39.以下代码运行后输出的结果是?()C public class Test { public static void main(String[] args)throws IOException {

Properties prop = new Properties();

prop.setProperty(“name”, “张三”);

prop.setProperty(“tel”, “***”);

Enumeration en =(Enumeration)prop.propertyNames();

while(en.hasMoreElements()){

String key = en.nextElement();

String value = prop.getProperty(key);

System.out.print(value + “:”);

} } } a)b)c)d)name:tel tel:name 张三:***: ***:张三

40.关于Properties类中的load和store方法说法正确的是?()AB a)load方法从流中读取属性列表,键值对,加载到Properties对象中 b)store方法将Properties对象中的键值对,写入到流中

c)load方法将Properties(Properties)对象中的内容加载到文件中

d)以上说法都不对

篇2:java程序员学c

想要成为一个合格的java程序员,必须需要牢固的基础,这样在未来接触新的知识的时候,才能快速吸收,认为基础不牢固的程序员,随时都会被新的知识和技术所淘汰,下盘不稳风一吹就倒,那么作为一个合格的java程序员应该具备哪些知识呢?今天 就来和大家分享java高手之路上的必备基础知识:

一、面向对象的知识:JAVA是一个面向对象的开发语言,因此熟悉面向对象对学习JAVA很有必要,您要了解:什么是对象,什么是类;什么是封装,什么是多态,什么是继承;什么是抽象类,什么是接口。了解了概念后,您还需要这些概念是如何体现的,如类和对象有什么区别?类是如何封装的?

二、JAVA语法:如果您有C++等面向对象语言的开发经验,您只需简单的翻看一下介绍JAVA的相关书籍就可以了。如果您是新手,没有关系,您下些工夫,好好研究一本JAVA初级教程之类的书就可以了。

三、JSP和HTML:做JAVA程序员都少不了和JSP以及HTML打交道。因此,想成为JAVA程序员就不可避免的要熟悉JSP和HTML,您最好能知道JSP的几个内置对象,如Session,Request,Reponse,以及常用的JSP标签,如include,userBean等。如果您再熟悉一下JS和CSS就更好了,那会使您制作的页面更友好。

四、WebServer:熟悉了以上三种,可以肯定的说您已经可以制作出来JSP页面了,您也可以在您的页面里使用自己开发的JAVA类(JAVABEAN)了,但您的页面总要跑起来才能看到您要的效果,这就要求您必须熟悉一种WebServer,比如:TOMCAT,RESIN等。您要熟悉如何发布您的应用,如何利用WebServer的数据库资源等。

五、开发工具:大家都知道,开发工具可以帮助您更好更快地开发,因此熟悉几种开发工具很有必要。目前JAVA的开发工具比较流行的有JBuilder,IDEA,Eclipse,HTML的开发工具有Dreamweaver等。

六、熟悉一种框架:熟悉一种框架其实是成为JAVA程序员的一种可选知识,但目前开发B/S结构的应用的开发小组,都差不多会采用一种框架来构建自己的应用系统。框架都会有许多可重用的代码,良好的层次关系和业务控制逻辑,基于框架的开发使你可以省出很多的开发成本。目前比较流行的框架有Struts和Spring等。

千锋2017年2月就业榜出平均月薪10827元,Java工程师平均月薪12153元;深圳千锋JavaEE首期班毕业第一周就业率61.5%,平均薪资13156元;毕业两周100%就业,平均薪资12729元。就业薪资震惊整个java培训界。千锋JavaEE培训拒绝照本宣读,培养的是实用型人才,在学员参加培训过程中,千锋准备了5个实战项目,以让学员达到熟练掌握项目的实战能力以及技术难点,千锋JavaEE培训学员实战项目包括个人网上银行、企业宣传项目、汽车租赁系统、网上书城、在线通讯录。各个行业各个领域都有涉及,选择千锋JavaEE培训,成就企业技术型高端人才

篇3:java程序员学c

C语言和JAVA语言在TIOBE编程语言排行榜上长期占据前两名的位置, 在计算机行业内有着广泛的应用。这两门课程也是教学难度较大的课程, 是学生深入接触计算机学科领域知识的基础课程。搜索万方数据和中国知网10年来的论文, 并没有发现探讨这两门程序设计课程之间内在联系的论文;目前主流的程序设计教材也极少对这两门语言进行比较。学生在学习这两门课程时, 往往觉得内容繁杂, 难于掌握。充分挖掘这两门课程的共同特性, 比较这两门语言的语法和特性的不同之处, 突出课程的重点, 能够帮助学生更好地掌握课程内容。

JAVA程序设计大体可以分为面向过程的程序设计和面向对象的程序设计。面向过程的JAVA程序设计和C语言程序设计并没有本质区别, 基本思想都是采用“自顶向下、逐步求精”的程序设计方法和“单入口单出口”的控制结构。

在这两门课程的多年教学实践中, 通过讨论、分析和总结, 确定了以程序设计为主线、重点是培养学生的程序设计能力和计算思维, 也就是放在思路、算法、编程构思和程序实现上。在程序实现这个环节, 通过运用比较教学法进行C语言和JAVA语言的语法和特性的教学, 既有助于学生更好更快地掌握高级语言的语法和特性, 也有助于学生体会语言只是表达工具, 问题求解和计算思维的能力才是核心。

1 程序设计教学中存在的问题

程序设计课程是计算机及相关专业的基础课程, 教学难度较大。学生往往难以理解程序设计的思维方式, 对教学内容似懂非懂, 而掌握良好的程序设计方法则更加困难。如果以语言知识为主线组织教学内容, 由于C语言和JAVA语言涉及的知识点非常多, 很多学生在学完一门课程后, 普遍认为程序设计难学, 教学内容枯燥, 缺乏主动探索问题的兴趣。

传统的课程教学较少提及这两门语言的共性, 不能在已有的基础上去完成新知识的建构, 大大增加了学生的学习负担, 导致常用C语言编程的同学对JAVA语言产生生疏感, 而常用JAVA语言的同学也不乐意使用C语言, 不少同学对于学习两门语言显得有些无所适从, 产生了畏难情绪, 放弃了进一步学习程序设计的机会。

2 比较教学法在程序设计课程中的应用

2.1 程序设计课程能力培养目标

卡内基梅隆大学的周以真教授指出, “计算思维是运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为”[1]。2010年首届“九校联盟 (C9) 计算机基础教学课程研讨会”上, 明确提出计算机基础教学的核心任务是计算思维能力的培养[2]。清华大学吴文虎教授提出, “以强调动手上机实践编程为切入点, 以任务驱动的方式, 通过实例讲授程序设计的基本概念和基本方法”[3]。

2.2 比较教学法

比较教学法是教师在教学实践中, 着重体现辨析并确定教学内容间异同关系的思维过程和方法。其本质特征在于“比较”、“对照”、“对比”、“参照”。即把彼此之间具有某种联系的教学内容放在一起, 加以对比分析, 以确定其异同关系, 认识其本质差异。

从思维训练的角度看, 比较数学法可分为两种类型: (1) 求同比较———将相同的知识, 或性质相似的材料放在一块加以比较, 使学生利用新旧知识之间的联系, 加深理解, 增强记忆; (2) 求异比较———事物之间存在差异, 教师的责任就在于引导学生将这种差异揭示出来。

2.3 比较教学法应用

程序设计课程的重点是培养问题求解能力, 促成学生计算思维的形成, 语句只是表达工具, 编程思路才是重点和难点。JAVA语言在编程风格上非常接近于C/C++语言, 这是比较教学法能用于C和JAVA程序设计教学的重要因素;在线评测系统能够同时支持这两种语言, 为比较教学法的应用提供了实践平台。

3 C语言和JAVA教学内容分析

C语言本质上是面向过程的设计语言, 提倡结构化程序设计;JAVA语言本质上是面向对象的编程语言, 但也支持面向过程的程序设计。C语言和JAVA语言在结构化程序设计方面存在大量的相同之处, 如在基本数据类型、运算符、表达式、三种基本结构、数组、函数等方面, C语言和JAVA语言高度相似, 采用比较教学法可以突出计算思维的本质, 培养学生掌握结构化程序设计的基本方法, 提升学生学习的效率, 克服学生对于程序设计课程的畏难情绪。

在教学中, 把原有的C语言和JAVA语言的教学内容进行了重新组织, 包含3部分:C和JAVA共同的结构化程序设计 (基本数据类型、运算符、表达式、三种基本结构、数组、函数等) ;C语言特有部分 (字符串、指针、结构体等) ;JAVA特有部分 (面向对象程序设计、图形界面程序设计、异常处理、多线程等) 。

通过内容的重新组织, 强调了结构化程序设计的概念, 让学生真正体会到语句只是表达工具, 问题求解能力的培养才是重点。

4 C语言和JAVA比较教学要点

在C语言和JAVA的教学过程中, 要有效地实施以问题求解能力培养为目标的比较教学, 建议把握以下要点。

4.1 以问题求解为中心

程序设计类课程的主要目标就是培养学生应用计算机 (体现为编写程序) 解决问题的能力。问题求解能力是在不断解决问题的过程中逐步得到提高和强化的, 这就需要有一个平台能够支撑学生完成足够的练习。

在实践过程中, 我们采用的是HUST Online Judge。这是由华中科技大学毕业生王良晶等开发并在2008年底以GPL协议进行开源的在线评测系统, 该系统基于LAMP平台, 提供了使用Ubuntu的LiveCD系统, 用户无需安装即可使用其完整功能, 并可以图形化方式完成系统安装, 降低了使用门槛。基于此系统, 我们创建了C/C++/JAVA程序自动评测系统, 网址为http://learn.siso.edu.cn/JudgeOnline。

我们精选了能够充分体现计算思维特点的大量题目放置在评测系统中, 围绕这些问题展开教学, 语言语法围绕问题逐步引入, 强调语句只是表达工具, 重点放在思路、算法、编程构思和程序实现上, 让学生在做中学、学中做, 通过实践感受和领悟计算机问题求解的基本方法和思维模式。

4.2 以C语言为主, 兼顾JAVA语言

对于同一个问题求解, 既可以使用C语言也可以使用JAVA来解决。在教学过程中, 还是需要有个主次, 建议采用以C语言为主, 兼顾JAVA语言。这样做主要有以下原因: (1) 同样的程序, 往往C语言的代码要简洁一些, 更适合初学者上手; (2) C语言的开发工具 (我们采用的是C-Free) 更为小巧易用、界面简洁, 适合初学者使用;而JAVA的常用开发工具Eclipse和Netbeans都较为庞大, 尽管功能全面但在编写小规模程序方面并没有太多优势; (3) 在结构化程序设计的资源上, 无论是教材还是互联网资源, C语言要远远多于JAVA。

在学生能够较好地掌握C语言的前提下, 鼓励学生将已有的C语言程序改写成JAVA语言来完成同样的任务, 能更好地让学生体会到这两种语言的异同。

4.3 精选语言语法和规则

结构化程序设计的教学要以程序设计为主线, 结合实际案例来展开, 将程序开发过程的相关内容贯穿和渗透到每个知识点的讲授中去, 训练学生分析问题和解决问题的能力, 让学生更多地上机编程, 鼓励和引导探索式学习。

在以问题求解为中心的授课过程中, 讲授的语法和规则要尽可能简单, 不求面面俱到, 够用就行, 细枝末节的东西可以不讲, 要学生“抱西瓜”而不是“拣芝麻”。例如, 在课程前期, int、double和char这3种基本数据类型就完全够用, 不必将所有数据类型及其细节都呈现给学生, 这样会使不少初学者无所适从。

4.4 结构化程序划分

结构化程序设计采用了“单入口单出口”的模式:数据输入→数据处理→数据输出, 根据该模式编写的程序也有利于提交到在线评测系统进行自动化检测。该类程序可以划分成4个部分:声明、输入、运算和输出。除了在数据的输入处理上存在差异外, 在声明、运算和输出上, C语言和JAVA语言的差异非常小。

对于简单的数据输入, 两种语言的输入处理都有固定的模式, 在教学中提供了关键笔记, 让学生在模板的基础上进行改动, 这样就让两种语言在输入处理方面的差异实现了最小化。

对于数据的输出, JAVA语言教材中更多采用的是System.out.println, 使用这种表达方式会导致C语言和JAVA语言的输出部分代码存在较大的差异。建议在教学中采用C语言风格的printf, 不但实现了在两种语言下代码的一致性, 而且代码的可读性更好, 更容易实现浮点数指定格式的输出。

求异比较可以更好地了解C语言和JAVA语言的差异。例如对于双精度浮点数输出采用printf (“%.3f”, x) 而不是printf (“%.3lf”, x) , 尽管C语言中两种方式都是正确的, 但后者在JAVA语言环境下会产生异常。

C语言和JAVA语言非本质的差异可以通过一定的方法来弱化, 从而突出共同点。例如从形式上看, C语言和JAVA语言的程序入口main函数差异较大, 可以将程序框架设计成模板, 让学生直接拿过来使用, 学生只需填写程序的核心部分, 这样更能突出C和JAVA的共同点。

5 应用关键笔记 (Key Note) 提升学习效率

为配合在线评测系统在教学中的使用, 提高学生解决问题的效率, 克服学生的畏难情绪, 突出教学重点, 我们精心设计了关键笔记 (Key Note) 。从形式上看, 关键笔记仅是一张正反面打印的A4纸, 内容精简, 在使用过程中可以根据学生的反馈进行快速调整后再次分发。

关键笔记的内容凝聚了C语言和JAVA (面向过程部分) 的所有核心知识点、最常用代码和典型算法 (如计数、统计、排序、数字分离、进制转换等) 及在线评测系统的注意事项, 次要内容只提供线索, 在需要的时候, 学生可以依据线索在互联网上查找, 这也有助于培养学生的网络学习能力。

学生可以借助关键笔记, 分别运用C语言和JAVA语言来完成在线评测系统中的所有练习。这种方式突出了语言知识的重点, 强调了运用知识的能力, 有助于培养学生的计算思维能力。教材在教学过程中更多地是起到参考书的作用, 帮助学生完善对于语言的认识。

表1取自于关键笔记, 比较了C、C++和JAVA语言在处理输入的不同之处。

说明:C语言中的gets函数具有安全隐患, 可以在课程后期提醒学生谨慎使用。

6 对比教学法的教学效果

从2010年开始的3年时间里, 程序设计课程的教学逐步从以语言知识为主线转向了以程序设计为主线, 并在C语言和JAVA语言程序设计课程中采用了比较教学法。在采用新的教学方法后, 学生的学习目标清晰, 学习兴趣增强, 学期期末的课程评价显示, 学生对于程序设计课程的评价从原来的较为靠后的排名转变为跃居前列。

学生参加程序设计竞赛的人数和成绩也稳步提升。以蓝桥杯全国软件设计与开发大赛个人赛为例, 参加人数从2011年的13人、2012年的32人提高到2013年的38人;参赛成绩也有很大的提升, 近3年获得江苏省一等奖的人数分别为0、4、10人, 2013年获得省一等奖的10人中有3人来自C/C++组, 有7人来自JAVA组, JAVA组的成绩在全省高职院校中排名第一, 这个成绩说明了在采用比较教学法后, JAVA程序设计的教学质量获得了显著提高。

7 结语

在C语言和JAVA语言程序设计课程中以程序设计为主线展开教学, 采用了比较教学法, 并给学生提供了包含核心知识点、最常用代码的关键笔记用于在线评测系统中的问题求解, 突出了课程的重点, 培养了学生的计算思维, 激发了学生的兴趣, 提升了学生对于课程的满意度。实践表明, 比较教学法的运用显著提升了程序设计课程尤其是JAVA的教学质量。

参考文献

[1]JEANNETTE M W.Computational Thinking[J].Communications of ACM, 2006, 49 (3) :33-35.

[2]何钦铭, 陆汉权, 冯博琴.计算机基础教学的核心任务是计算思维能力的培养——《九校联盟 (C9) 计算机基础教学发展战略联合声明》解读[J].中国大学教学, 2010 (9) :7-11.

篇4:java程序员学c

关键词:C++;Java;异常处理

中图分类号:TP312.1文献标识码:A文章编号:1007-9599 (2011) 08-0000-01

C++,Java Exception Handling Mechanism Analysis

Wang Huiyuan

(China University of Mining and Technology,School of Computer Science and Technology,Xuzhou221116,China)

Abstract:Exception handling must be considered in the program development.This paper made a detailed analysis and comparion on the exception handling mechanism of C++ and Java,So that we can use it correctly and make the program safely and strongly.

Keywords:C++;Java;Exception handling mechanism

一、引言

程序设计时应考虑一定的容错能力,即在环境条件出现异常的情况下,不会轻易出现死机和灾难性的后果,而是有合理的表现,这就是异常处理。异常处理机制是用于管理程序运行期间错误的一种结构化方法,所谓结构化,是指程序的控制不会由于产生异常而随意跳转。

二、C++异常处理机制

C++的异常处理由保留字try引出。一个try结构包括一个try子句的复合语句以及一列异常处理程序,这些复合语句定义了所跟随的异常处理程序的作用域。C++异常处理一般语法:

throw表达式;

try{提出一个异常的代码

}catch(形参){

异常处理程序

}catch(形参){

异常处理程序

}

在C++中,任何需要检测异常的语句都必须在try语句块中执行,try子句后的复合语句是代码的保护段。一个try结构中提出的异常将即刻终止执行这个结构的代码,然后从紧跟在try结构后面的第一个处理程序开始,搜索一个匹配的处理程序,catch语句即是异常处理程序。如果某段程序中发现了不能处理的异常情况,就可以使用throw语句抛出这个异常,将它抛给调用者。异常类型声明部分指明该子句处理的异常的类型,与函数的形参类似,可以是某个类型的值,也可以是引用。当异常被抛出以后,catch子句便依次被检查,若某个catch子句的异常类型声明与被抛出的异常类型一致,则执行该段异常处理程序。如果异常类型声明是一个省略号(…),catch子句便处理任何类型的异常,这段处理程序必须是try块的最后一段处理程序。

实例如下:

void fun(int num)

{ try

{if(num==0) throw code;

if num==1)throw ‘a’;}

catch (int n)

{ cout<<“捕获整型:”<

catch (char c)

{ cout<<“捕获字符型:”<

return ;}

void main()

{f(0);f(1);}

上述通过传入参数0和1,抛出两种不同类型的异常,一种整形,一种字符型。

三、Java异常处理机制

Java中的异常处理是以C++的为基础的,与C++中的异常处理程序有着相同的形式,只是其中的每一个catch都必须具有参数,而且这些参数的类型必须是预定义类Throwable的子类。Java的设计与面向对象语言的风格更为接近,还包括了一组由Java虚拟机器所隐式提出的预定义异常。

Java异常处理的语法格式:

try{可能产生异常的语句

}catch(ExceptionType1 e1){

处理异常

}catch(ExceptionType2 e2){

处理异常

}finally{

//一般是用来释放资源的语句}

Java的异常处理机制的思想是:在Java程序的一个方法的运行过程中,如果发生了异常,则这个方法生成代表该异常的一个对象,其中包含有关异常的信息,并把它交给Java运行时系统,即抛出异常。当运行时系统收到抛出的异常对象后,运行时系统在方法的调用堆栈中查找,找到可以处理该异常的方法,并将该异常交给此方法处理,即捕获异常。如果Java运行时系统找不到可以捕获异常的方法,则运行时系统将终止,相应的Java程序也将退出。Java的异常处理与C++相比增加了finally子句,不论try代码块中是否发生了异常事件,finally块中的语句都会被执行。因此,它提供了程序的一个统一的出口,在某些情形下能够提供极大的方便。Java对可能出现异常的处理方法有两种:一种是积极的异常处理,在方法上使用try-catch-finally语句来捕获异常并处理它所生成的异常对象;另一种是对于处理不了的异常,通过throws/throw语句抛出异常。

Java规定所有抛出的异常都必须是从Throwable类派生而来。Throwable类有两个直接子类:Error和Exception。其中,Error类的异常为内部错误,Java程序不对这类异常进行处理;Exception类是编程中处理的错误,其中包含着一个重要的子类,就是RuntimeException,这个子类包含所有常见的运行时异常。

四、结束语

本文对C++和Java语言中的异常处理机制进行了分析和比较,通过对它们的学习,我们可以在编程过程中正确使用异常处理,从而使我们的程序更加健壮。

参考文献:

[1]李春葆.C++语言程序设计[M].北京:清华大学出版社,2008

篇5:java程序员学c

一般。

如上面

程序员做好了

以后可不可以像

开始在别人那学修电脑

学精通了

自己开店

也自己开公司呢?何必要爬啊爬

爬到经理

还是给人打工

篇6:java程序员学c

大家好,最近总结了一下作为Java语言初学者,需要掌握的一些基本知识,和一个Java程序员所具备的基本素质,与大家共同分享,不足之处望大家多提宝贵意见。

1、Java概述

 1995年5月23日开始,原名为Oak,最先开始用于一个绿色项目开发(一次编译随处使用),后来更名为Java。

 09年SUN公司被Oracle收购,先后经历1.0、1.1、1.2、1.3、1.4、5、6、7、8等版本。 Java SE 标准开发

Java EE 企业级开发

Java ME 移动开发

2、JDK和JRE  JDK:Java Development Kit(Java开发工具集)

Java语言与JDK的关系:足球比赛与足球场

 JRE:Java Runtime Environment 如果客户要使用Java语言平台开发的软件,就必须安装JRE。

它包含:开发技术、用户界面工具箱、整合类库、基础类库和Java虚拟机  区别:JDK可以给开发者提供开发环境,也可以运行程序;JRE不能开发Java程序,只能运行Java程序,客户通常只安装JRE不安装JDK。 Java平台分为四个部分: 操作系统:Linux、Macintosh、Solaris、Windows,.etc 2 JVM(Java虚拟机)

虚拟的操作系统,不同的操作系统虚拟机也不同,它只能识别class文件.3 JDK(包含JRE、工具程序与API)4 Java语言

 几个专有名词解释:

JDBC:Java DataBase Connection(Java数据库连接):将数据库的数据展示到前台页面

JNDI:Java Naming Directory Interface(Java命名目录接口)RMI:Remot Method Invoke(远程方法调用):跨IP、跨进程的调用。

开发者向客户提供自己的ip、端口、方法名称,客户拿到了这些则可以远程访问开发者的服务,最终能够获取到想要的东西。rmi://10.7.210.616712/basketballInfo

3、JVM(了解)

 概述:Java Virtual Machine(Java虚拟机):可以通过Java虚拟机来实

磨砺营IT教育版权所有

http://

现跨平台。

我们可以把JVM看做操作系统,他只能运行.class文件

 不跨平台:在Windows系统开发的程序无法再其他操作系统上运行,不能实现跨平台。

HelloWorld 0101110 Windows操作系统

0101011 Solaris操作系统

 跨平台:一次编译,到处运行。好比一份用当地语言编写的文档(俄文),先翻译成英文,在由英文翻译成客户所在国家的语言

 JVM作用过程:源程序—(编译)—> 字节码(.class)—(JVM把字节码进行解释)—> 操作系统能理解的机器语言  了解两点: 他是一个操作系统,专门执行class文件 有了它才能够实现跨平台;不同的操作系统,它的虚拟机不一样。

4、写出第一个Java程序(重点)

 步骤:安装jdk配置环境变量(连接用户和操作系统)检查是否配置完成(win+R,输入cmd,输入java –version,能够显示Java版本信息说明安装成功)

 编程工具:记事本、写字板、EditPlus、Eclipse等。

输入javac命令:编译程序,使之创建一个.class文件(字节码)输入java命令:解释执行程序(执行jdk文件夹bin目录下的java.exe文件,即请求Java虚拟机来执行某字节码)

5、Java标识符命名规范(掌握)

定义:可以自定义的字符序列叫标识符

类名称也叫作标识符,类名称必须和Java源文件名称前缀保持一致。命名规范: 类名称首字母必须大写,如果有多个单词,每个单词首字母大写; HelloWorld 2 标识符可以使用大小写字母(一般全部用大写字母)开始,也可以使用$(美元符号)或_(下划线)开始; 命名遵循“见名知意”的规则; 命名遵循“驼峰命名法”的规则(即有多个单词时,每个单词首字母大写)。

磨砺营IT教育版权所有

http://

6、注释

单行注释://+内容(放在代码的上面一行)

//定义一个整数类型的变量,其名称为height int height; //给变量赋值:

//使用 =(赋值运算符)给变量赋值

//赋值运算符:将(赋值运算符)右边的数值赋给左边的变量 height = 173;

 多行注释/块注释:

注意:行注释只能写在方法里面,用来注释变量、分支、循环

多行注释用来注释类、方法、属性

7、变量(重点)

定义:驻留在内存中的一个存储单元(临时)如何使用变量来完成计算: 1 声明一个变量

语法: 数据类型 变量名;int height;2 给变量赋值

语法:

变量名 = 值;height = 173;3 声明变量和赋值可以放在一行,即:数据类型 变量名 = 值;int weight = 86;注意:变量使用之前,一定要为其赋初始值(初始化)。4 如何向控制台输出变量 System.out.println(height);System.out.println(height);

磨砺营IT教育版权所有

http:// 如何使用变量改变数值 weight = weight + 1;变量有哪些数据类型:

数据类型分为两大类:基本数据类型和引用数据类型。基本数据类型: 1 整数类型:

int(整形): 32bit或者4byte,最大值为2的31次方-1,最小值为负2的31次方

short(短整形): 16bit或者2byte,最大值为2的15次方-1,最小值为负2的15次方

long(长整形): 64bit或者8byte,最大值为2的63次方-1,最小值为负2的63次方

注意:所有整数的默认字面量(在编译器能够知道的数值)都为int类型,所以long类型的变量值需要在后面一定要加上一个“L”(可以用小写,但是规范一般用大写。)

byte(字节类型): 8bit或者1byte,最大值为2的7次方-1,最小值为负2的7次方

注意:定义整数尽量使用int类型,如果空间不够再使用long类型,不要使用short、byte来定义整数。小数类型:

float(单精度浮点型): 32bit或者4byte,科学计数法 float pi = 3.14F;注意:所有小数的默认字面量(在编译器能够知道的数值)都为double类型,所以float类型的变量值需要在后面一定要加上一个“F”(可以用小写,但是规范一般用大写。)

double(双精度浮点型):64bit或者8byte,科学计数法 注意:定义小数优先使用double类型,避免不必要的错误。3字符类型:

char(字符类型): bit16或者2byte,只能存储单个字符(2byte,也可以存储汉字或字母)

char sex = ‘男’;注意:只能存储单个字符,必须以单引号开始,单引号结束。

磨砺营IT教育版权所有

http:// 布尔类型:

boolean(布尔类型):只能存储两个值——true/false boolean bool = true;经常使用的数据类型有:int、long、double、bollean 几乎不用的数据类型有:short、float、char 很少用到的数据类型有:byte(第五周讲)变量的命名规范 变量名只能以大小写字母、下划线、美元符号开头,但是可以有大小写、下划线、美元符号、数字组成; 一般使用小写字母开头来定义变量; 如果有多个单词采用驼峰命名法,从第二个单词开始首字母大写; int tomAge = 18 4 变量名区别大小写; 变量名长度不受限制,但是一般变量名称长度不要超过15个字符。6 如果超过15个字符,去掉元音字母保留辅音字母

7、运算符

1、算数运算符

+-* / % 其中,%叫做取模运算符(取余数运算符)。21 / 5 = 4 21 % 5 = 1 在Java世界中,两个整数相除,结果必然是一个整数

2、赋值运算符

= :将运算符右边的数值赋给左边的变量 注意:右边的数值也可以是变量

3、  比较运算符 > < >= <= == 比较两个数值(是否相等)

磨砺营IT教育版权所有

http://

!= 不等于

比较运算符计算的结果一定是一个boolean数据类型 boolean calcResult = 3 > 5;System.out.println(calcResult);则输出false

4、++--放前面叫前向自增/自减:先计算再赋值 放后面叫后向自增/自减:先赋值再计算

int a = 3;int b = 2;int result =(a++)*(--b)+(--a)/(b ++);输出为3*1+3/1=6

5、逻辑运算符(重点)自增和自减(面试会考察)

逻辑运算符必须要配合boolean数据类型一起使用  && 与:

使用场景:

条件1 && 条件2 多个条件都为真则为真。1 int score1 = 80;int score2 = 90;boolean gift = score1 >80 && score2 >80;System.out.println(gift);2 int score1 = 80;int score2 = 90;boolean result1 = score1 >80;boolean result2 = score2 >80;boolean gift = result1 && restult2;

磨砺营IT教育版权所有

http://

System.out.println(gift);两个例子输入结果均为false。 || 或

使用场景:

条件1 || 条件2 多个条件有一个为真,则为真。!非

使用场景:!条件 非真为假,非假为真。

6、位运算符(重点)

特征:将两个整数转成二进制再针对每个bit位逐个进行上下比较的位运算  & 位与:上下结果都为1则结果是1,否则结果是0 10010 8 01010 10 00010 2  | 位或:上下只要有1个1结果就是1,否则是0 10010 8 01010 10 11010 26  ^ 位异或:上下相同为0,否则为1 10010 8 01010 10

磨砺营IT教育版权所有

http://

11000 24 拓展1: int有32位

00000000 00000000 00000000 00000010 最高位 次高位 次低位 最低位

第32位也叫作符号位,1代表负数,0代表正数。拓展2:

~ 取反 先+1再取反

int value = ~10 则得到-11 00001010 1110101

7、 位移运算符

<< 左位移:左位移多少位,就在最右边补多少个0 将10进制数2,左位移3位 2 << 3 00010则去掉前3位,在后面加3个0,变成了10000  >> 右位移:右位移多少位,就在最右边去掉多少个位

将10进制数17,左位移3位 17 >> 3 10001则去掉后3位,在前面加3个0,变成了00010

上一篇:维修工程验收会议纪要下一篇:三星申请表