java基础训练题网站(java学习网站)

想找一些java的带讲解的基础练习题

问题

• can not read xxx.java

• 怎样让char类型的东西转换成int类型?

• 我的applet原先好好的, 一放到web server就会有问题,为什么?

• 怎样哗槐改在 Applet中用某个图形涂满整个背景?

• 怎样比较两个类型为String的字符串?

• 怎样将浮点数(float)相加 ? Float 好像没有办法?

• 如何将字串String转换成整数int?

• 如何将整数 int 转换成字串 String?

• 哪位可以推荐几个比较好的java/jsp论坛?

• JAVA的环境变量 请教一下哪位高手知道JAVA的环境变量怎么配置?让它在DOS中运行,我下载的版本是jdk1.5.0_01,系统属性环境变量中有一个用户变量和系统变量,该配置在哪个变量中呢?

• C++和JAVA的分别?

• 初学java用那本书好

• 我想学习JAVA编程语言,但不知从啥开始?

• 初学JAVA的人看书参考书最好

• 作用域public,private,protected,以及不写时的区别

• ArrayList和Vector的区别,HashMap和Hashtable的区别

• char型变量中能不能存贮一个中文汉字?为什么?

• 继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?

• 谈谈final, finally, finalize的区别。

• Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?

• Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)

• 和的区别

• HashMap和Hashtable的区别?

• Collection 和 Collections的区别?

• 什么时候用assert?

• GC是什么? 为什么要有GC? (基础)?

• String s = new String("xyz");创建了几个String Object?

• Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

• short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

• Java有没有goto?

• 数组有没有length()这个方法? String有没有length()这个方法?

• Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

• Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?

• abstract class和interface有什么区别?

• abstract的method是否可同时是static,是否可同时是native,是否可同时是乱判synchronized?

• 构造器Constructor是否可被override?

• 是否可以继承String类?

• 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

• try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被明悔执行,在return前还是后?

• 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

• swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?

回答

• can not read xxx.java

首先看看你的文件是否保存为.java.txt的类型了(右点文件看属性里的扩张名) 重新保存 记得此时要把文件名.java加上引号 保存 。

返回顶部

--------------------------------------------------------------------------------

• 怎样让char类型的东西转换成int类型?

char c = 'A';

int i = c;

//反过来只要作强制类型转换就行了

c = (char) I;

返回顶部

--------------------------------------------------------------------------------

• 我的applet原先好好的, 一放到web server就会有问题,为什么?

一般来说,从以下方向试试:

确定class文件的格式没错——已经编译过,也没有损坏的情形;

确定所有用到的class文件放到web server上,少一个都不行;

确定所有的文件名和class名称一致,特别检查大小写有无差错;

如果程序中用到package,web server上的目录就要当心了。譬如您在class中宣告了一个叫COM.foo.util的package,那么web server的applet codebase目录底下就非得有 COM/foo/util这个子目录不可。(注意目录名称也有大小写之分);

web server上的文件档案应该事先设定好。(尤其是search,read和execute权限)

返回顶部

--------------------------------------------------------------------------------

• 怎样在 Applet中用某个图形涂满整个背景?

在背景建立 Panel 或 Canvas, 然后用图形填满它。

返回顶部

--------------------------------------------------------------------------------

• 怎样比较两个类型为String的字符串?

在两个对象之间使用 "==",会将“两个对象是否有同一reference”的结果传回。也就是说, 这等同于“两个对象是否拥有同一地址 (address)”,或者“两个对象物件是否为同一对象”。如果您的意思是判断两个字符串的内容是否相同,那么应该使用以下的方法才对:

if (s1.equals(s2) )

or if (s1.equalsIgnoreCase(s2) )

or if (s1.startsWith(s2) )

or if (s1.endsWith(s2) )

or if (s1.regionMatches(s1_offset, s2, s2_offset, length) )

or if (s1.compareTo(s2) 0)

返回顶部

--------------------------------------------------------------------------------

• 怎样将浮点数(float)相加 ? Float 好像没有办法?

我猜想您的程式大概写成这样:

Float One;

Float Two;

Float Hard = One + Two;

请注意 float 和 Float 是不同的,前者是 Java 基本类型之一, 而后者却是class。您应该将源代码改为:

float One;

float Two;

float Hard = One + Two;

Float One = new Float(1.0);

Float Two = new Float(2.0);

Float Hard = new Float(One.floatValue() + Two.floatValue());

返回顶部

--------------------------------------------------------------------------------

• 如何将字串String转换成整数int?

1)int i = Integer.parseInt([String]); 或

i = Integer.parseInt([String],[int radix]);

2)int i = Integer.valueOf(my_str).intValue();

注: 字串转成Double, Float, Long的方法大同小异。

返回顶部

--------------------------------------------------------------------------------

• 如何将整数 int 转换成字串 String?

有三种方法:

1)String s = String.valueOf(i);

2)String s = Integer.toString(i);

3)String s = "" + i;

注:Double, Float, Long 转成字串的方法大同小异。

返回顶部

--------------------------------------------------------------------------------

• 哪位可以推荐几个比较好的java/jsp论坛?

这个网站是我最近才发现的,虽然内容不多,但是提供的相关java工具挺齐全。还有就是里面提供了java教学视频录象的免费下载,好像一两周更换一段。个人觉得挺适合初学者的,尤其是那个classpath的设置,讲的很透彻,大家有空可以看一看。

java官方站点(英文)

要想了解最新的java动态,下载最新的java相关,比如j2se、j2ee、j2se的最新jdk版本就来这里吧。

java中文站

这个可能大家都知道,不用说了,他提供的java资源是最丰富的。注册论坛是免费的,还送积分,用积分可以下载软件和电子书等,如果积分用完了,就需要自己发表一些文章来赚新的积分。

中文java网站

跟上面站点类似的一个站,宗旨就是:为java爱好者服务。值得一看!

锋网

综合性的java网站,内含“下载中心”、“教程教学”等栏目。

返回顶部

--------------------------------------------------------------------------------

• JAVA的环境变量

请教一下哪位高手知道JAVA的环境变量怎么配置?让它在DOS中运行,我下载的版本是jdk1.5.0_01,系统属性环境变量中有一个用户变量和系统变量,该配置在哪个变量中呢?

Windows下JAVA环境变量的设置祥解

Windows下JAVA用到的环境变量主要有3个,JAVA_HOME、CLASSPATH、PATH。下面逐个分析。

JAVA_HOME指向的是JDK的安装路径,如x:\JDK_1.4.2,在这路径下你应该能够找到bin、lib等目录。值得一提的是,JDK的安装路径可以选择任意磁盘目录,不过建议你放的目录层次浅一点,如果你放的目录很深,比如x:\XXXXXX\xxxxx\XXXX\xxxx\XXXX\xxxx\XXXX\xxx……

那么,下面的步骤和以后的应用你都要受累了,呵呵。设置方法:

JAVA_HOME=x:\JDK_1.4.2

PATH环境变量原来Windows里面就有,你只需修改一下,使他指向JDK的bin目录,这样你在控制台下面编译、执行程序时就不需要再键入一大串路径了。设置方法是保留原来的PATH的内容,并在其中加上%JAVA_HOME%\bin

(注,如果你对DOS批处理不了解,你可能不明白%%引起来的内容是什么意思;其实这里是引用上一步设定好的环境变量JAVA_HOME,你写成x:\JDK_1.4.2也是可以的;你可以打开一个控制台窗口,输入echo

%JAVA_HOME%来看一下你的设置结果) :

PATH=%JAVA_HOME%\bin;%PATH%

同样,%PATH%是引用以前你设置的PATH环境变量,你照抄以前的值就行了。

CLASSPATH环境变量我放在最后面,是因为以后你出现的莫名其妙的怪问题80%以上都可能是由于CLASSPATH设置不对引起的,所以要加倍小心才行。

CLASSPATH=.\;%JAVA_HOME%\lib\tools.jar

首先要注意的是最前面的".\;",如果你看不清,我给你念念——句点反斜杠分号。这个是告诉JDK,搜索CLASS时先查找当前目录的CLASS文件——为什么这样搞,这是由于LINUX的安全机制引起的,LINUX用户很明白,WINDOWS用户就很难理解(因为WINDOWS默认的搜索顺序是先搜索当前目录的,再搜索系统目录的,再搜索PATH环境变量设定的)

,所以如果喜欢盘根究底的朋友不妨研究一下LINUX。

为什么CLASSPATH后面指定了tools.jar这个具体文件?不指定行不行?显然不行,行的话我还能这么罗索嘛!:)

这个是由java语言的import机制和jar机制决定的,你可以查资料解决。

呵呵,具体的设定方法: win2k\xp用户右键点击我的电脑-属性-高级-环境变量,修改下面系统变量那个框里的值就行了。

win9x用户修改autoexec.bat文件,在其末尾加入:

set JAVA_HOME=x:\JDK_1.4.2

set PATH=%JAVA_HOME%\bin;%PATH%

set CLASSPATH=.\;%JAVA_HOME%\lib\tools.jar

返回顶部

--------------------------------------------------------------------------------

• C++和JAVA的分别?

JAVA和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继乘,多态)。而由于c++为了照顾大量的C语言使用者,

而兼容了C,使得自身仅仅成为了带类的C语言,多多少少影响了其面向对象的彻底性!JAVA则是完全的面向对象语言,它句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的基础上,据弃了其他语言的不足之处,从根本上解决了c++的固有缺陷。

Java和c++的相似之处多于不同之处,但两种语言问几处主要的不同使得Java更容易学习,并且编程环境更为简单。

我在这里不能完全列出不同之处,仅列出比较显著的区别:

1.指针

JAVA语言让编程者无法找到指针来直接访问内存无指针,并且增添了自动的内存管理功能,从而有效地防止了c/c++语言中指针操作失误,如野指针所造成的系统崩溃。但也不是说JAVA没有指针,虚拟机内部还是使用了指针,只是外人不得使用而已。这有利于Java程序的安全。

2.多重继承

c++支持多重继承,这是c++的一个特征,它允许多父类派生一个类。尽管多重继承功能很强,但使用复杂,而且会引起许多麻烦,编译程序实现它也很不容易。Java不支持多重继承,但允许一个类继承多个接口(extends+implement),实现了c++多重继承的功能,又避免了c++中的多重继承实现方式带来的诸多不便。

3.数据类型及类

Java是完全面向对象的语言,所有函数和变量部必须是类的一部分。除了基本数据类型之外,其余的都作为类对象,包括数组。对象将数据和方法结合起来,把它们封装在类中,这样每个对象都可实现自己的特点和行为。而c++允许将函数和变量定义为全局的。此外,Java中取消了c/c++中的结构和联合,消除了不必要的麻烦。

4.自动内存管理

Java程序中所有的对象都是用new操作符建立在内存堆栈上,这个操作符类似于c++的new操作符。下面的语句由一个建立了一个类Read的对象,然后调用该对象的work方法:

Read r=new Read();

r.work();

语句Read r=new Read();在堆栈结构上建立了一个Read的实例。Java自动进行无用内存回收操作,不需要程序员进行删除。而c十十中必须由程序贝释放内存资源,增加了程序设计者的负扔。Java中当一个对象不被再用到时,无用内存回收器将给它加上标签以示删除。JAVA里无用内存回收程序是以线程方式在后台运行的,利用空闲时间工作。

5.操作符重载

Java不支持操作符重载。操作符重载被认为是c十十的突出特征,在Java中虽然类大体上可以实现这样的功能,但操作符重载的方便性仍然丢失了不少。Java语言不支持操作符重载是为了保持Java语言尽可能简单。

6.预处理功能

Java不支持预处理功能。c/c十十在编译过程中都有一个预编泽阶段,即众所周知的预处理器。预处理器为开发人员提供了方便,但增加丁编译的复杂性。JAVA虚拟机没有预处理器,但它提供的引入语句(import)与c十十预处理器的功能类似。

7. Java不支持缺省函数参数,而c十十支持

在c中,代码组织在函数中,函数可以访问程序的全局变量。c十十增加了类,提供了类算法,该算法是与类相连的函数,c十十类方法与Java类方法十分相似,然而,由于c十十仍然支持c,所以不能阻止c十十开发人员使用函数,结果函数和方法混合使用使得程序比较混乱。

Java没有函数,作为一个比c十十更纯的面向对象的语言,Java强迫开发人员把所有例行程序包括在类中,事实上,用方法实现例行程序可激励开发人员更好地组织编码。

8 字符串

c和c十十不支持字符串变量,在c和c十十程序中使用Null终止符代表字符串的结束,在Java中字符串是用类对象(strinR和stringBuffer)来实现的,这些类对象是Java语言的核心,用类对象实现字符串有以下几个优点:

(1)在整个系统中建立字符串和访问字符串元素的方法是一致的;

(2)J3阳字符串类是作为Java语言的一部分定义的,而不是作为外加的延伸部分;

(3)Java字符串执行运行时检空,可帮助排除一些运行时发生的错误;

(4)可对字符串用“十”进行连接操作。

9“goto语句

“可怕”的goto语句是c和c++的“遗物”,它是该语言技术上的合法部分,引用goto语句引起了程序结构的混乱,不易理解,goto语句子要用于无条件转移子程序和多结构分支技术。鉴于以广理由,Java不提供goto语句,它虽然指定goto作为关键字,但不支持它的使用,使程序简洁易读。

l0.类型转换

在c和c十十中有时出现数据类型的隐含转换,这就涉及了自动强制类型转换问题。例如,在c十十中可将一浮点值赋予整型变量,并去掉其尾数。Java不支持c十十中的自动强制类型转换,如果需要,必须由程序显式进行强制类型转换。

11.异常

JAVA中的异常机制用于捕获例外事件,增强系统容错能力

try{//可能产生例外的代码

}catch(exceptionType name){

//处理

}

其中exceptionType表示异常类型。而C++则没有如此方便的机制。

参考资料:

返回顶部

--------------------------------------------------------------------------------

• 初学java用那本书好

学习一门新的知识,不可能指望只看一本,或者两本书就能够完全掌握。需要有一个循序渐进的阅读过程。我推荐Oreilly出版的Java系列书籍。

在这里我只想补充一点看法,很多人学习Java是从《Thinking in Java》这本书入手的,但是我认为这本书是不适合初学者的。我认为正确的使用这本书的方法应该是作为辅助的读物。《Thinking in Java》并不是在完整的介绍Java的整个体系,而是一种跳跃式的写作方法,是一种类似tips的方法来对Java很多知识点进行了深入的分析和解释。

对于初学者来说,最好是找一本Java入门的书籍,但是比较完整的循序的介绍Java的语法,面向对象的特性,核心类库等等,在看这本书的同时,可以同步来看《Thinking in Java》,来加深对Java的理解和原理的运用,同时又可以完整的了解Java的整个体系。

对于Java的入门书籍,蔡学镛推荐的是Oreilly的《Exploring Java, 2nd Edition》 或者《Java in a Nutshell,2nd Edition(针对C++背景)》,我并没有看过这两本书。其实我觉得电子工业出版社的《Java 2编程详解》或者《Java 2从入门到精通》就很不错。

在所有的Java书籍当中,其实最最有用的,并不是O'reilly的 Java Serials,真正最最有用处是JDK的Documentation!几乎你想获得的所有的知识在Documentation里面全部都有,其中最主要的部分当然是Java基础类库的API文档,是按照package来组织的,对于每一个class都有详细的解释,它的继承关系,是否实现了某个接口,通常用在哪些场合,还可以查到它所有的public的属性和方法,每个属性的解释,意义,每个方法的用途,调用的参数,参数的意义,返回值的类型,以及方法可能抛出的异常等等。可以这样来说,所有关于Java编程方面的书籍其实都不过是在用比较通俗易懂的语言,和良好的组织方式来介绍Documentation里面的某个package里面包含的一些类的用法而已。所以万变不离其宗,如果你有足够的能力来直接通过Documentation来学习Java的类库,那么基本上就不需要看其他的书籍了。除此之外,Documentation也是编程必备的手册,我的桌面上有三个Documentation的快捷方式,分别是J2SDK1.4.1的Documentation,Servlet2.3的Documentation和J2SDKEE1.3.1的Documentation。有了这个三个Documentation,什么其他的书籍都不需要了。

对于Java Web 编程来说,最核心的是要熟悉和掌握HTTP协议,这个就和Java无关了,在熟悉HTTP协议之后,就需要熟悉Java的实现HTTP协议的类库,也就是Servlet API,所以最重要的东西就是Servlet API。当然对于初学者而言,直接通过Servlet API来学习Web编程有很大的难度,我推荐O'reilly的《Java Server Pages 》这本书来学习Web 编程。

EJB的书籍当中,《Enterprise JavaBeans, 2nd Edition》是一本很不错的书, EJB的学习门槛是比较高,入门很难,但是这本书完全降低了学习的难度,特别重要的一点是,EJB的学习需要结合一种App Server的具体实现,所以在学习EJB的同时,必须同步的学习某种App Server,而这本书相关的出了三本书,分别是Weblogic6.1,Websphere4.0和JBoss3.0上面部署书中例子的实做。真是既有理论,又有实践。在学习EJB的同时,可以边看边做,EJB的学习会变得很轻松。

但是这本书也有一个问题,就是版本比较旧,主要讲EJB1.1规范和部分EJB2.0的规范。而Ed Roman写的《Mastering EJB 2.0》这本书完全是根据EJB2.0规范写的,深入浅出,覆盖了EJB编程的各个方面,并且还有很多编程经验tips,也是学习EJB非常推荐的书籍之一。

如果是结合Weblogic来学习J2EE的话,《J2EE应用与BEA Weblogic Server》绝对是首选读物,虽然是讲述的Weblogic6.0,仍然值得购买,这本书是BEA官方推荐的教材,作者也是BEA公司的工程师。现在中文版已经随处可见了。这本书结合Weblogic介绍了J2EE各个方面的技术在Weblogic平台上的开发和部署,实践指导意义非常强。

在掌握了Java平台基础知识和J2EE方面的知识以后,更进一步的是学习如何运用OO的方法进行软件的设计,那么就一定要学习“设计模式”。Sun公司出版了一本《J2EE核心模式》,是每个开发Java企业平台软件的架构师必备的书籍。这本书全面的介绍了J2EE体系架构的各种设计模式,是设计师的必读书籍。

Java Learning Path(三)过程篇

每个人的学习方法是不同的,一个人的方法不见得适合另一个人,我只能是谈自己的学习方法。因为我学习Java是完全自学的,从来没有问过别人,所以学习的过程基本上完全是自己摸索出来的。我也不知道这种方法是否是比较好的方法,只能给大家提供一点参考了。

学习Java的第一步是安装好JDK,写一个Hello World,? 其实JDK的学习没有那么简单,关于JDK有两个问题是很容易一直困扰Java程序员的地方:一个是CLASSPATH的问题,其实从原理上来说,是要搞清楚JRE的ClassLoader是如何加载Class的;另一个问题是package和import问题,如何来寻找类的路径问题。把这两个问题摸索清楚了,就扫除了学习Java和使用JDK的最大障碍。推荐看一下王森的《Java深度历险》,对这两个问题进行了深入的探讨。

第二步是学习Java的语法。Java的语法是类C++的,基本上主流的编程语言不是类C,就是类C++的,没有什么新东西,所以语法的学习,大概就是半天的时间足够了。唯一需要注意的是有几个不容易搞清楚的关键字的用法,public,protected,private,static,什么时候用,为什么要用,怎么用,这可能需要有人来指点一下,我当初是完全自己琢磨出来的,花了很久的时间。不过后来我看到《Thinking in Java》这本书上面是讲了这些概念的。

第三步是学习Java的面向对象的编程语言的特性的地方。比如继承,构造器,抽象类,接口,方法的多态,重载,覆盖,Java的异常处理机制。对于一个没有面向对象语言背景的人来说,我觉得这个过程需要花很长很长时间,因为学习Java之前没有C++的经验,只有C的经验,我是大概花了一个月左右吧,才彻底把这些概念都搞清楚,把书上面的例子反复的揣摩,修改,尝试,把那几章内容反复的看过来,看过去,看了不下5遍,才彻底领悟了。不过我想如果有C++经验的话,应该一两天时间足够了。那么在这个过程中,可以多看看《Thinking in Java》这本书,对面向对象的讲解非常透彻。可惜的是我学习的时候,并没有看到这本书,所以自己花了大量的时间,通过自己的尝试和揣摩来学会的。

第四步就是开始熟悉Java的类库。Java的基础类库其实就是JDK安装目录下面jre\lib\rt.jar这个包。学习基础类库就是学习rt.jar。基础类库里面的类非常非常多。据说有3000多个,我没有统计过。但是真正对于我们来说最核心的只有4个,分别是

java.lang.*;

java.io.*;

java.util.*;

java.sql.*;

这四个包的学习,每个包的学习都可以写成一本厚厚的教材,而O'reilly也确实是这样做的。我觉得如果时间比较紧,是不可能通过读四本书来学习。我觉得比较好的学习方法是这样的:

首先要通读整个package的框架,了解整个package的class,interface,exception的构成,最好是能够找到介绍整个包框架的文章。这些专门介绍包的书籍的前几章应该就是这些总体的框架内容介绍。

对包整体框架的把握并不是要熟悉每个类的用法,记住它有哪些属性,方法。想记也记不住的。而是要知道包有哪些方面的类构成的,这些类的用途是什么,最核心的几个类分别是完成什么功能的。我在给人培训的时候一般是一次课讲一个包,所以不可能详细的介绍每个类的用法,但是我反复强调,我给你们讲这些包的不是要告诉你们类的方法是怎么调用的,也不要求你们记住类的方法调用,而是要你们了解,Java给我们提供了哪些类,每个类是用在什么场合,当我遇到问题的时候,我知道哪个类,或者哪几个类的组合可以解决我的问题,That'all!,当我们具体写程序的时候,只要你知道该用哪个类来完成你的工作就足够了。编码的时候,具体的方法调用,是边写代码,边查Documentation,所有的东西都在Documentation里面,不要求你一定记住,实际你也记不住3000多个类的总共将近10万个方法调用。所以对每个包的总体框架的把握就变得极为重要。

第五步,通过上面的学习,如果学的比较扎实的话,就打好了Java的基础了,剩下要做的工作是扫清Documentation里面除了上面4个包之外的其他一些比较有用处的类。相信进展到这一步,Java的自学能力已经被培养出来了,可以到了直接学习Documentation的水平了。除了要做GUI编程之外,JDK里面其他会有用处的包是这些:

java.text.

java基础训练题网站(java学习网站)  第1张

谁有没有好的JAVA学习网站,或资料,最好是有很多练习代码的,非常感谢

你既然喜欢编程,就应该认认真真的学习一门语言,先前岁从VB开始,VB是比较好的入门语言,可视化的,比较简单,是非常好的入门语言。书籍最少应该准备两本,不可能一本书籍会包含VB的所有内容,在看书的时候,可以交叉的看,一本书籍中没有讲到的内容可以在另一本中看到,这样对学习是很有好处的,也能保证所学知识的完整性。学编程是一个很漫长的过程,不要着急,要理论与实践想结合,例程书籍也是很重要的,看源代码对学习也是很有帮助的,等你学完这门VB语言之后,学习别的语言是非常简单,可以尝试C语言,按照C——C++——VC的顺序学习,有助于知识的连贯性,我也希望你能学好的。

学习C语言,谭浩强的《C程序设计》是一部非常好的C语言书籍,学习程序设计是一个非常漫长的过程,不要着急,一本书多看两遍三遍,学会交叉学习法,在学习C的过程中,可以看看数据结构,编译原理,操作系统等书籍,对编成都是很有帮助的。最开始学习的时候,先不要编一些比较大的程序,多编一些小程序,比如数组运算,字符组合等等,指针是C语言的精华,是比较复杂的部分。如果有一天你能熟练驾驭指针的操作了,我相信你,你一定能学习好C语言的。

我是2001年接触编程的,刚开始只是大概了解一下,并没有进行比较深入的学习,我是从VB开始入门的,学了1年多,然后转入C语言,按照C——C++——VC的顺序学习,C学了两年,现在开始学习C++,C++的学习是很有难度的,类,标准库,多态,继承等等比较抽象难道懂的概念,虽然他秉承了C语言的风格,但是有很多很多是C语言不具备的,要多看书,上机实践也是必不可少的。《C++编程思想》,《C++标准库》,这些书都非常好,内容也很全面,例程书籍也是必不可少的,多看源代码对编程是很有帮助的,也会少走很多弯路。总之,C++的学习是一个比较漫长的过程,大概需要两年的时间,这只是底限,如果想学通,学精,还需要更多的时间。

我向你推荐一些C++经典书籍:

c++程序设计教程

c++编程思想

c++大学教程

c++程序设计语言

数据结构算法与应用c++语言描述

c++标准模板库------自修教程与参考手册

泛型编程与STL

深度探索c++对象模型

设计模式---可复用面向对象软件的基础

重构---改善既有代码的设计

Essential c++

Effective c++

More Effctive c++

C++ primer

前五本应该属于入门书籍,后面的属于学习难度比较大的,想提高C++的编程能力,看看这些书籍谈锋有好处。建议你把编程思想这本书多看看。多做练习题,对提高编程水平的帮助是很大的。

其实语言是相通的,一门语言学会了,学习其他语言就比较容易了。

业界有这样一种说法,因为JAVA这门语言包含了C++的一些特性,掌握了C++,就等于掌握了JAVA的80%,

在掌握了C++之后(我说的掌握指的是,可以熟练用C++编程序了,并没有要求你完全掌握C++的所有部分,没有人能达到这一点,因为C++太庞大了,如果能坚持不懈的学习C++两年到三年的时间了,你就可以学习其他的语言了)可以试着学习一些含悔晌其他的语言,如JAVA,VC++等等比较复杂的语言.

这时候可以说你已经对程序设计语言有个大体的认识了,可以明确自己学习的方向,根据自己的学习情况而定,是学习一些自己比较感兴趣的语言啊(从兴趣出发),还是为了找工作啊,开始进行更深入的学习.比如学习windows下的框架编程和.net编程等等比较复杂的语言.

如果是为了找工作的话我建议你学好C,C++,JAVA三门语言.

在我国目前的软件开发行业中,北方C,C++,JAVA的需求量是非常大的.南方以VB为主.

关于英语对学习程序设计有没有帮助的文章这个话题已经有很多人议论过了,我个人建议把计算机专业术语弄明白了就可以了,你可以买一本计算机英语教程看一看,对程序设计是有帮助的。其实程序设计当中的英文都是一些非常简单的,如for,else,while.......并没有太高深的,而且学习程序设计不像学习网络,如CCNA这类认证需要掌握大量的英文。但是在学习程序设计的时候身边有两个工具应该足够了-----------金山词霸,计算机词典。相信你一定能学好程序设计的。

学习数学和学习程序设计有一个共同点------锻炼逻辑思维能力。在程序设计的学习中涉及到数学的地方并不多,所以也没有必要去认真的学习数学也可以学好程序设计的。

如果你是一个肯吃苦,肯用心学习程序设计的人,具有坚持不懈的精神的人,我相信,只要你认认真真去学,即使你的英语数学水平再差,你也一定能够学好程序设计的。

我是一名大三的学生,我也正在学习C++这门语言,一年多的时间,学习的感觉真的很累的,希望能和你成为朋友!

好了,说了这么多,可以参考一下,为自己做个学习计划,要对自己有信心,最后祝你在学习编程的道路上走的更好更远,祝你学有所成!!

哪儿有java练习题?

Java面向对象程序设计

考试卷

班级:

姓返握空名:

时间: 90分钟

一、选择题(没有注明漏瞎多选,则为单选)

1、 下列变量定义错误的是 D

A. int a;

B. double b=4.5;

C. boolean b=true;

D. float f=9.8; (9.8f)

2、 6+5%3+2的值是 D 3%5=3

A. 2

B. 1

C. 9

D. 10

3、 对于一个三位的正整数 n,取出它的十位数字k(k为整型)的表达式是

A. k = n / 10 % 10

B. k = ( n - n / 100 * 100 )%10

C. k = n % 10

D. k = n / 10

4、 下列语句序列执行后,k 的值是 D

1. int x=6, y=10, k=5;

2. switch( x % y ) (=6) (long类型不行)

3. {

4. case 0: k=x*y;

5. case 6: k=x/y;

6. case 12: k=x-y;

7. default: k=x*y-x; (default 位置可以改变)

8. }

A. 60

B. 5

C. 0

D. 54

5、 下列语句序列执行后,i的值是:

1. int i = 10;

2. do { i/=2; } while( i-- 1 ); (减去1)

A. 1

B. 5

C. 2

D. -1

6、 在某个类中存在一个方法:void getSort(int x),以下能作为这个方法的重载的声明的是:(同一个方法中参数不同,返回值类型可以不同也可以相同)

A. public getSort(float x) 没有返回类型 一定是构造函数 不能重载

B. int getSort(int y)(参数一样不是重载)

C. double getSort(int x,int y) (参数不一样是重载)

D. void get(int x, int y)

7、 下列哪个是合法的Java标识符:(两个答案) B C

A. TreeGlasses

B. FirstJavaApplet

C. _$theLastOne

D. 273.5

8、 设 a = 8,则表达式 a 2 的值是:C (无符号右移动)左移是乘 右是除

A. 1

E. 2

B. 3

C. 4

9、 下皮皮面的程序名为Student.java

1. public class Student

2. {

3. private String name;

4. public Student(String s_name) //1

5. {

6. name = s_name; //2

7. }

8. public static void main(String args[])

9. {

10. Student s = new Student(); //3

11. }

12. }

使用如下指令编译:javac Student.java将会得到什么结果?

A. 将会顺利通过编译,并将产生一个Student.class的类文件

F. 编译时在//3处出错

B. 编译时在//2处出错

C. 编译时在//1处出错

10、 下面选项中能把字符串转换成float类型的是?: B

A. float value = new Float(str); 创建一个对象

B. float value = Float.parseFloat(str);

C. float value = Float.floatValue(str);

D. float value = (new Float()).parseFloat(str);

11、 下边程序运行的结果是? 实例化子类对象要看父类

1.class Base {

2. Base() { System.out.print("Base"); }

3. }

4. public class Alpha extends Base {

5. public static void main( String[] args ) {

6. new Alpha();

7. new Base();

8. }

9. }

A. Base

B. BaseBase

C. 程序编译失败.

D. 程序运行但没有任何输出

12、 下面程序运行的结果是? A 值传递

1. public class X {

2. private static int a;

3. public static void main(String [] args) {

4. modify(a);

5. System.out.println(a);

6. }

7. public static void modify(int a) {

8. a++;

9. }

10. }

A. 0

B. 1

C. 程序编译失败

D. 程序抛出异常

13、 下面程序运行的结果是?

1.String s = "Hello" + 9 + 1;+字符连接(9+1+”hello”=10hello(string类型))

2.System.out.println(s);

A. Hello10

B. Hello91

C. Hello10.0

D. 程序编译失败

14、 下列说法正确的是? C

A. 一个子类可以有多个父类,一个父类也可以有多个子类

B. 一个子类可以有多个父类,但一个父类只可以有一个子类

C. 一个子类可以有一个父类,但一个父类可以有多个子类

D. 上述说法都不对

15、 下面程序运行的结果是?

1. abstract class AbstrctIt {

2. abstract float getFloat ();

3. }

4. public class AbstractTest extends AbstractIt {

5. private float f1= 1.0f;

6. private float getFloat () {return f1;} 权限只能扩大不能缩小

7. }

A. 编译成功

B. 在第6行产生一个运行时异常

C. 在第6行产生一个编译错误

D. 在第2行产生一个编译错误

16、 下面的程序输出的结果是:B

1. public class A implements B {

2. public static void main(String args[]){

3. int i;

4. A c1 = new A();

5. i= c1.k;

6. System.out.println("i="+i);

7. }

8. }

9. interface B {

10. int k = 10;接口(抽象方法和静态常量的结合)里的静态常量 public static final

11. }

A. i=0

B. i=10

C. 程序有编译错误

D. i=true

17、 方法methodA返回类型是:

1. public class returnIt{

2. returnType methodA(byte x, double y) {

3. return (short) x/y * 2;

4. }

5. }

A. int

B. byte

C. long

D. double

18、 下面的程序输出的结果是:A

1. public class IfTest {

2. public static void main(string[]args) {

3. int x = 3;

4. int y = 1;

5. if (x = y) =:赋值运算符 (==)比较运算符

6. System.out.println(“Not equal”);

7. else

8. System.out.println(“Equal”);

9. }

10.}

A. Equal

B. Not Equal

C. 编译失败

D. 程序没有任何输出结果

19、 在下面程序中,变量i可以使用的数据类型是:(两个答案) A B

1. switch (i) {

2. default:

3. System.out.println(“Hello”);

4. }

A. char

B. byte

C. float 不行

D. double 不行

E. object

20、 应用程序的main方法中有以下语句,则输出的结果是:A

1. int[] x={122,33,55,678,-987};

2. int y=x[0];

3. for(int i=1;ix.length;i++){

4. if(x[i]y)

5. y =x[i];

6. }

7. System.out.println(y);

A. 678

B. 122

C. -987

D. 33

21、 程序输出的结果是?C

1. public class X {

2. public static void main(String [] args) {

3. try {

4. badMethod();

5. System.out.print(“A”);

6. }

7. catch (Exception ex) {

8. System.out.print(“B”);

9. }

10. finally {

11. System.out.print(“C”);

12. }

13. System.out.print(“D”);

14. }

15. public static void badMethod() {}

17. }

A. AB

B. BD

C. ACD

D. ABCD

22、 程序输出的结果是?D

System.out.println(4 | 3);: 二进制 安位或

A. 0

B. 1

C. 5

D. 7

23、 关于下述程序哪个是正确的构造器重载(两个正确)

1. public class ConstOver {

2. public ConstOver (int x, int y, int z) {

3. }

4. }

A. ConstOver ( ) { }

B. protected int ConstOver ( ) { } 构造函数没有返回类型

C. private ConstOver (int z, int y, byte x) { }

D. public Object ConstOver (int x, int y, int z) { }

E. public void ConstOver (byte x, byte y, byte z) { }

24、 下述程序编译运行后在//1和//2处分别打印出什么值?

1. public class Test9静态变量和静态块只会初始化一次

2. {

3. static int i = 1;

4. static

5. {

6. i++;

7. }

8. public Test9()

9. {

10. i++;

11. }

12. public static void main(String[] args)

13. {

14. Test9 t1 = new Test9();

15. System.out.println(t1.i); //1

16. Test9 t2 = new Test9();

17. System.out.println(t2.i); //2

18. }

19. }

A. 2和2

B. 3和3

C. 3和4

D. 4和3

25、 下列答案正确的是:两个答案 A B

int[] arr = new int[10];

A. arr[0] 是null

B. arr[10]是0

C. arr[9] 是0

D. arr[0] 是0

26、 编译器能够为类A分配一个默认构造器的是?(两个答案) A D

A. class A {}

B. class A {

public A() { }

}

C. class A {

public A(int x) { }

}

D. class Z { }

class A extends Z {

void A() { }

}

27、 下面程序运行的结果是:

1.public class Foo {

2.public int i = 3;

3. public static void main(String args[]) {

4. Object o = new Foo();

5. Foo foo = (Foo)o;

6. System.out.println("i = " + foo.i);

7. }

8.}

A. i=3

B. i = 0.

C. 程序编译错误

D. 程序运行时抛出异常

28、 下面程序运行的结果是:

1. class Exc0 extends Exception { }

2. class Exc1 extends Exc0 { }

3. public class Test {

4. public static void main(String args[]) {

5. try {

6. throw new Exc1();

7. } catch (Exc0 e0) {

8. System.out.println("Ex0 caught");

9. } catch (Exception e) {

10. System.out.println("exception caught");

11. }

12. }

13. }

A. Ex0 caught

B. exception caught

C. 编译失败,错误在第2行

D. 编译失败,错误在第6行

29、 下面表达式计算的结果和返回值类型分别是?(两个答案) B D

Math.ceil(0.1 + Math.floor(Math.random())); 0-1之间的小数

A. 0.0

B. 1.0

C. float

D. double

E. 一个随机数

30、 下面程序运行的结果是:

1.public interface Test {

2. int frood = 42;

3.}

4.class TestImpl implements Test {

5. private static int frood;

6. public static void main(String[] args) {

7. System.out.println(++frood);

8. }

9.}

A. 0

B. 1

C. 42

D. 43

答题卡

1 2 3 4 5

6 7 8 9 10

11 12 13 14 15

16 17 18 19 20

21 22 23 24 25

26 27 28 29 30

二、编程题

注意:书写清晰,看不清楚不给分,注意字体大小,写不下可以写在背面,标清题号。

1、 输出n行n列的空心矩形(要求使用嵌套循环),当n=5时,运行结果显示如下:

#####

# #

# #

# #

#####

2、 设计Java程序

假设有50瓶饮料,喝完3个空瓶可以换一瓶饮料,依次类推,请问总共喝了多少瓶饮料?

3、 设计Java程序,实现如下功能:

获取50个0至300之间的随机整数,并输出到屏幕上;

取出上面50个整数中的偶数,倒序排列输出到屏幕上。

4、 编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。每个类都有构造方法和输出相关数据的方法。

java,想请问有什么java练习题的网站可以介绍

个人推亏肢荐牛客网,上面有大量的面试和进阶相关的题目,而且题目销如世都有相关思路解析。具体的网址我就不发了,很橡伏容易就会被检测异常。直接百度搜索牛客网就好了

java练习题

static{..}是静态块,类加载以后就会被执行。

class StaticStuff被加铅颂搭载以后会被初始化。其中的x属樱做性在这时被初始化为0。完成属性初始化槐拿后,就会执行static{..}块,按编码顺序执行。

请问到那些站能下载到大量java初学者编程练习题呀??给推荐几个??拜托了各位 谢谢

·javaworld.com: ·Matrix-Java开发者社区: ·onjava.com: ·下载示例程序的全部源码: ·DWR: ·HSQL: ·AJAX的定义: ·“AJAX:通向Web应用的新途径": Jesse James Garrett (Adaptive Path,2005.2): ... archives/000385.php · “非常动态的Web界面” Drew McLellan (xml.com, 2005.2): ·XMLHttpRequest AJAX 工作范例: ... ttprequest/examples · “可用的XMLHttpRequest实践” Thomas Baekdal (Baekdal.com, 2005.3): ·"XMLHttpRequest使用导引" Thomas Baekdal (Baekdal.com, 2005.2): ... Request-guidelines/ ·AJAX实质: 孙卫琴 凌去论坛 中国it实验室里面有很多java资料 java开发乐园 CSDN论坛 中国最有名的技术论坛,《程序员》杂志就是他们出版的,你可以在上面提薯帆兄出问题,马上就有人回答你,如果你觉得好,你可以给那人加分; Java研究组织 上面有很多原创文章,高手还是挺多的; Java开发者 那里Java资料比较全; java.com.cn 看这域名就知道有多牛,注册用户快接近一万了,同时在线人数也在一千左右,人气很旺的; IBM的开发者网络 IBM永远的蓝色巨人 J道 ITPUB论坛 开源项目网站: 湖北省软件公共开发平台 共创联盟 网上Web服务的资料: 中国轿皮UDDI技术联盟 CSDN的柴晓路专栏 (注:柴晓路也是互联网上一个有名的人物,他发表过很多关于数袭Web服务的文章,还出了一书,应该称的上是中国Web服务技术的先行者) IBM的开发者网络的XMLWeb Service专栏: IBM可是Web服务的力推者

以上内容为新媒号(sinv.com.cn)为大家提供!新媒号,坚持更新大家所需的前端知识。希望您喜欢!

版权申明:新媒号所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请发送邮件至 k2#88.com(替换@) 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023-09-23 13:15
下一篇 2023-09-23

相关推荐

发表回复

登录后才能评论