Java新手的几个问题

作者&投稿:戴珍 (若有异议请与网页底部的电邮联系)
java初学者都应该搞懂的几个问题~

 则a==b将是true。
  但不好理解的地方是:
String a=new String("foo");
String b=new String("foo");
  则a==b将返回false。

Java错误,主要包括两方面,一种是语法错误,另一种是逻辑错误。
语法错误,也就是我们的编码不符合java 规范,在编译的时候无法通过。通常,我们都是用javac编译我们的源程序,如果代码中存在语法错误,比如某个表达式后缺少分号的时候,编译器就会告诉我们错误信息,编译就此停止。
逻辑错误,也就是我们常说的Bug,一般存在逻辑错误的程序都是可以顺利的被编译器编译产生相应的字节码文件,也就是class文件。但是,在执行的时候,也就是java ourClass的时候,得出的结果并不是我们所希望的。
下面几个问题都是非常常见的错误,在一些新手的代码里面经常会出现的。
1、 Java是分大小写的
对于经常写VB、Asp程序的人来说,一定要注意,变量money和Money是不一样的。
2、一个java源文件可以包含多个class,但是只能包含一个public 的class。
java是面向对象的程序语言,编译完的字节码也是一个一个的类,就是class。一个.java文件可以包含多个class,在编译的时候,编译器会为每一个class生成相应的class文件。
但是必须要注意,一个.java文件只能包含一个public class,而且这个public class的类名要与这个.java的文件名一致。
比如,正确的写法应该是下面这样的:
一个java源文件,文件名为 Test.java,内容如下:
class A { } class B { } public class Test { }

3、一个等号和两个等号的不同
在Java程序中,一个等号是赋值操作符,而两个等号则是比较操作符。在 java新手的程序中
经常出现这样的代码:
int a=1; int b=2; if(a=b) System.out.println("OK");

这样是不对的,因为if后面需要得到的是一个布尔类型的值,这样编译就会出错。
因为,a=b,是赋值操作,就是把 b的值赋给了a,返回等号右边的值,也就是b的值,比如:
int a=1; int b=2; int c=(a=b); System.out.println("a : "+a); System.out.println("b: "+b); System.out.println("c: "+c);

输出结果则是,a等于2,b等于2,c也等于2, 明白了吗?
4、java中的数组下标是从0开始的
比如我们定义了一个数组
Object[] myArray=new Object[10],说明数组中有10个元素,是从myArray[0]开始,到myArray[9]结束的在用for循环的时候,需要注意,正确写法如下:
for(int i=0;i<myArray.length;i++) { }

5、空引用的错误
这类错误也是最令人头疼的,属于逻辑性错误,编译器可以正常编译,但是在某种情况下执行出错,出错信息是 java.lang.NullPointerException 。
这是由于在对象的引用没有被初始化的情况下而调用这个对象的属性或者方法而造成的,比如下面的例子:
class A3 { public static void main(String[] args) { String s=null; int a=1; int b=2; if(a<b) { s="a<b"; } System.out.println(s.toString()); } }

编译和执行都没有错误,可是如果把a的值赋为10,如下:
class A3 { public static void main(String[] args) { String s=null; int a=10; int b=2; if(a<b) { s="a<b"; } System.out.println(s.toString()); } }

那么就可以正常编译通过,但是执行的时候则出错。就是因为现在a<b不成立,也就是说没有执行s="a<b"这个初始化语句,所以在输出s.toString()的时候,对象s其实还是null,没有被初始化,这时候调用.toString()方法自然会出现异常。
以上就简单写几个java新手经常会出现的错误,其实出现错误并不可怕,只要大家仔细的分析一下出现的错误,看看究竟是什么原因导致的,如何避免。这样,就会很快的提高自己的水平,加入到高手的行列中。由于自己也是菜鸟水平,所以写的东西,难免出现这样那样的错误,希望大家多提意见。

1.Java到底是用在什么方面的?
答:java用途很广。JavaEE用于企业的web开发,比如erp、报表等,用的越来越多,技术也越来越成熟;javaME用于手机开发,几乎所有的手机都支持java;JavaME用于桌面开发,比如网络管理软件、计算器等客户端,近几年用的少了。

2.Java编程工具。
答:Eclipse就行了,大多说人都在用,用起来很方便,很多东西不用去关注,Eclipse会提醒你。刚入门可以用记事本打代码,在控制台用命令运行程序熟悉一下工作原理。之后就用Eclipse就行,很多插件的。当然也有部分人用NetBeans等。

3.通常听到什么工具包的?
答:java这种语言讲究开放,有很多基础的东西每个人都自己写多浪费时间,而且术业有专攻。用别人的包,只要知道有什么接口就行了,拿来用。比如解析xml文件、用spring、Hibernate、Struts等,都要用别人的包,用了之后你能够把注意力放在业务上,而不是系统的细节上(比如数据库、日志等)

4.新手适合看哪些入门书?有什么好的网上免费教程么?
答:入门书先看java语法的,我们教材用的清华出版社的,Java核心技术这本不错,之后看你想做什么,web开发就看看javaEE的书。视频教程上verycd(电驴),计算机资料里面,有很多的教程,大多数著名的培训机构的视频都有,而且免费。

5.有的人说学编程要点英文,请问英文基础要多少?
答:不懂英文也行,就是要在学习的时候注意记忆。常用的单词就那么几个。当然你想更好的发展,就要把英语练好。因为很多文档都是英文的(技术是国外的,新技术刚开始没有译文)

6.所谓的编程是直接把代码输入再输出么?还是什么?
答:编程就是通过代码控制逻辑和输入输出。当然我说的不是很专业,等你看了书,写了几个程序之后,就理解了

7.能举几个简单的例子关于编程的么?最基础的,一个一个解释下。在输出会有什么影响?
答:
a)public class Test{
public static void main(String[] args){//定义程序主函数(入口)
System.out.print("你好,世界");//在屏幕显示“你好,世界”
}
}

b)public class MathTest {
public static void main(String[] args) {
System.out.println(Math.round(11.4));//四舍五入
System.out.println(Math.round(11.5));//round是math包里的函数,用来四舍五入
System.out.println(Math.round(11.6));
System.out.println(Math.round(12));
System.out.println(Math.round(-11.4));
System.out.println(Math.round(-11.5));
System.out.println(Math.round(-11.6));
System.out.println(Math.round(-12));
}
}//输出:
11
12
12
12
-11
-11
-12
-12

8.有什么好的BBS,或者QQ群可以讨论么?
答:csdn(技术门户),javaEye,java中文世界社区。qq群直接搜java就行,一大堆

9.Java很出名,实用性到底怎样?值得学么?市场价值高么?
答:实用,当然值得学习。关键在你能不能学好,一时头热,不用心学,不下功夫是学不好的。学得好自然待遇很好。还有对工作的态度。

10.Java的概念是什么?思路。希望在第7个问题能回答详细点。
答:买本java的基础书看看吧,Java语言是简单的;Java语言是一个面向对象的;Java语言是分布式的;Java语言是健壮的;Java语言是安全的;Java语言是体系结构中立的;Java语言是可移植的;Java语言是解释型的;Java是高性能的;Java语言是多线程的;Java语言是动态的

1.java是高级语言,牺牲运行效率,提高代码可重用率,最适合应用软件。
有J2SE(java基础),J2EE(适合企业软件),J2ME(适合手机软件)。
2.现在最流行ECLIPSE,很统一的。
3.java的好处就是代码可重用率好,好多东西别人写好了你直接用,全你自己写累死你。
4.新手先学J2SE,也就是新手说的JAVA,最好去书店买本JAVA入门,不贵,网上资料多,但不系统,高手知道要搜什么,新手不适合。还是教材系统。
5.if, else懂吧,懂就够了,以后成为高高高手要看英文文献那个再说。
6.看来你是够新手的,买本教材自己看吧,肯定教你的。
7.一个语言最基础就的是Hello World程序,就是输出Hello到屏幕上,其实JAVA都有现成的函数来实现这个功能,你只要调用函数就好了。
8.你最好把最基础的教材学好再上论坛讨论,否则别人说的你都不懂。
9.JAVA厉害在代码可重用率好,简单来说就是别人写好了你直接用,举个例子你自己要写个10万行代码的大程序累死你吧,但用别人写好的你调用下就轻松多了,说不定几百行就搞定了。
10.第7个问题不是我不想回答,你买个教材前几章都教这个,我给你个链接,讲JAVA基础了你自己看吧,我们搞JAVA的就讲可重用,别人有的我们不重复劳动,而是直接拿来用,基本概念什么的也一样。

另:JAVA绝对是现在最流行的编程语言。建议你先把基础搞好,买本入门教材好好学,以后找工作很轻松。

1.JAVA最大的优势在于WEB方面的开发,JAVA语言主要有三种 J2SE(桌面应用),J2EE(WEB应用),J2ME(手机开发),
2.一般用IBM的ECLIPSE和它有很好的集成其他插件的功能。
3.工具包有些是要支持一些特殊功能而引入的一些LIB包,比如要你把数据倒出到一个EXCEL表格中如果用一些支持该功能的开源的JAR包会起来事半功倍的效果。
4.关于JAVA学习的资料网上的资源有很多,只要你肯去找。这里我给你推荐几个
javaeye,51cto,csdn这几个国内的网站都不错的。open-open这个网站也不错。当然还有IBM的,ORACLE的。太多了。反正只要你想学,是很多的。
5.当然有英文基础当然更好,但是这不是最重要的,关键看你对编程感不感兴趣,有没有这方面的天赋很重要。
6.其实这个问题有大师早就总结过了。编程就是数据结构+数据算法。
9.就目前而言是的。
10.不知道LZ之前有没有学习编程语言的经历。但是看你问的这些问题。估计是没有。其实关于这个问题你可以去网上进行了解下。我可以简单的给你介绍下。JAVA是一门面向对象的语言。你可以先了解下面向对象的概念。因为这个话题比较广。不是一两句能解释清楚的。如果有兴趣,欢迎留言,下次在讨论。

看你想的这么多,没有回答的必要。要果你喜欢coding是不会这样的。有很多人就是这样学的一半放弃的!


韩服AVA新手任务问题
任务字面的意思是 “冻结的break1分生存”绿色的字是“进行中”。绿色字下面是“状态”。任务具体怎么做 还真不清楚了···或者是“越狱”的音译“《프리즌 브레이크》(Prison Break)。1분是一分或者一名 ...

AVA新手选枪和改造问题
冲锋枪虽然射速快但是威力小抖动大,不适合新手。游戏币机枪推荐两把:首先可以改的一把-M4A1(加强版)【改枪:基本不用改,要改的话可以全部加上。】。其次一把是成品枪G36-Rail(注意一定要买后面加Rail的那把)。狙击枪的话游戏币连狙是那把HK417sniper【改枪:注重射速稳定性。弹夹可以不用改...

关于AVA的一些问题...高分!!!
1、在个人仓库可以改枪,只有激光 准镜 枪把 枪托这可以改 ,MP5不能改枪管,你进游戏 按 V就加消音器了 2、现在还没有 准星变换的 功能 只有一种准星 以后应该会有 3、游戏设置里 叫 辅助摄像机【貌似在最后一个选项里】辅助摄像机就是部分模式中在死亡后出现在画面中央的画面,或者扔雷炸死...

AVA的新手详细攻略
新手的话买枪是点商城,买好后放仓库里,然后换到哪个背包就可以了.上路的话我建议玩侦察兵的BIZ(就记得钱3位了),64颗子弹,一般新手都需要冲锋的.(当然也不是高手就是猥琐的- -!)这把枪按V还可以装消音,精准度威力都不错,建议使用,还有什么不懂问我,其实我也是个菜鸟.. 楼主,建议你去做任...

AVA新手 枪支问题 看详情
AVA国服里AK是主流,因为相对于那点后坐力威力太大了点,M4一般不太有人用因为射速太快导致弹道很飘,M4的改装很重要,有用M4的高手存在,而且十分强悍,新手可以试下M16,这是一把后坐力出了名的小的枪,和CF里差太多了。狙击手的话SV98还不错,不推荐SV98改装加威力,因为加了和没加实际效果是...

关于AVA新道具的几个问题。希望有研究的朋友能帮小弟解答一下~_百度知 ...
1.轻巧,防御力加强,不过头上的探照灯会暴露你的位置。有时蹲下时会看到探照灯露了出来,不过影响不大。2.龙鳞靴:防御力强,耐久少,有加速功能,不过摔下去会很痛。缓冲靴:防摔可说100%不扣血,速度和普通的一样,实用,廉价。3:有加速和无加速。劳动护膝的属性比龙鳞强,龙鳞比石板强,且...

AVA武器问题
这里有个问题给很多人讲下:av里的枪械有3个命中点,第一是枪械本身属性,第二是瞄准镜的准心,第三是精准丧失~下面以狙击为例,步枪同理 先把命中丧失问题还给一些新手提下:狙击开镜后右边有个垂直的白条,条条中的显示白色的格数越多,你的准确丧失概率就越大 以tpg-1为例,稍微的移动就会造成...

ava游戏问题 求助
问你是否发送邮件 你点击否 具体原因见下 1、系统的硬件配置不够、系统不完善、病毒木马的破坏游戏文件、非正常关机造成的磁盘错误 2、运行过多程序。或运行导致冲、突的程序(建议开启游戏的时候关闭无关的程序,包括在后台运行的程序)3、“句柄错误”,尝试重启后重新登录客户端 转自AVA论坛 ...

AVA显卡配置
显卡都不错,楼上第三问不对吧。显卡牌子很多的。但显卡核心处理器(GPU)只有两种,NVIDA和ATI。主要是看这个。比如说七彩虹的,既做NVIDA卡,也做ATI卡,认显卡,比较新手的方法就是看显存,虽然完全靠显存来选不是万能,但是一个好显卡不配一个大显存是万万不能的。还有个比较无敌的方法,看价格-...

AVA的问题!求帮忙!
我玩这么久也没见过这种问题 你可以检查一下自己的键盘 看看是不是键盘问题

黄山区17637119129: 每个Java初学者都应该搞懂的六个问题是什么?
蓍真柳氮: 问题一:我声明了什么!String s = "Hello world!"; 许多人都做过这样的事情,但是,我们到底声明了什么?回答通常是:一个String,内容是“Hello world!”.这样模...

黄山区17637119129: java 新手问题 -
蓍真柳氮: 1、属性下的第一个方法或类中的第一个方法不一定定义的就是构造方法 2、类的结构其实是可以自己随便定义的 不过考虑到开发习惯通常是:属性、构造方法、普通方法3、构造方法 在实际的工作之中其实通常是为类中的属性做初始化的(赋值) 4、去掉具体有没有影响 还得看你所定义的某一个类的作用 和 自己的需求5、对于定义类:可以提供多个无参构造方法 但是建议至少保留一个无参构造方法6、对于某些框架的设计其实构造方法的作用是非常大的 因为框架的设计玩的几乎都是反射 而反射就会牵扯都构造方法问题

黄山区17637119129: java初学者的一点困惑
蓍真柳氮: 给你一些建议吧,我在几个月前和你一样,特别迷茫,困惑.非常能理解你现在的心情,我也是学了很久,觉得什么都... 第3就是初学者进入java初期都会迷糊一阵子,慢慢的就好了.等你有了一定的了解以后,就到网上或是书上,找一些...

黄山区17637119129: Java初学者必须了解的三大问题是什么呢?
蓍真柳氮: 对于这个系列里的问题,每个学Java的人都应该搞懂.当然,如果只是学Java玩玩就无所谓了.如果你认为自己已经超越初学者了,却不很懂这些问题,请将你自己重归初...

黄山区17637119129: Java初学者容易混淆的几个问题是什么?
蓍真柳氮: 1.String类和StringBuffer类 它们都是处理字符串的类,但是它们有一个最大的区别... //omit some code StringBuffer s2=new StringBuffer("Hello from Java!"); s2.replace(...

黄山区17637119129: 初学java的几个问题 -
蓍真柳氮: 1、JVM提供了一个Java运行时环境,所有的JVM支持语言在此环境中运行时隔离了不同系统平台的差异性,达到跨平台的目的.2、针对相同函数名的问题,面向对象对两种情况进行了定义,在同一个类中拥有相同函数名的多个方法,则为重载...

黄山区17637119129: 初学JAVA的几个问题
蓍真柳氮: 数据库不属于JAVA的先行课,但JAVA也是有关于数据库部分的操作,这部分就是JDBC里的,初级阶段就不需要涉及到,可以等你学的深入一点再学,你的零基础是指没有学过JAVA吧,那个网上的教程很多啦,我们当时用的教材是JAVA大学教程第六版(英文版),这本挺适合初学者,要真有问题,网上那么多资源都是可以好好利用的,加油吧

黄山区17637119129: 新手关于Java的一些问题高手帮忙
蓍真柳氮: 1.println()是输出后在多输出一个“\n”换行符,print()没有,所以println()输出后会重新换行输出第二个println()输出的内容.2.具体情况来看,所有的字符串常量都应该加上双引号.3.输出并换行.4.i*j 的结果转换成字符串输出5.返回上一层目录: cd ..(cd后带两点) 返回根目录:cd \6.子函数运行后返回主函数的数据,子函数可以没有返回值7. 方法名是随便起的,不过需要重载方法,方法名必须与需要重载的方法名称一致

黄山区17637119129: JAVA新手的问题 -
蓍真柳氮: 楼上的别乱说好不好.还换一个jdk,你用没用过java啊 lz的错误在于:首先你的程序不是一个applet 其次,你的程序的main参数应该是String[] args 而不是String args 顺便,LZ注意首字母大写. 那是因为你不会用eclipse…… 你可以在你的工程...

黄山区17637119129: java新手小问题
蓍真柳氮: int i=1你已经声明并且赋值也存储在内存中,声明了就开辟了内存空间,不用创建对象了. 首先内存总体分为了4个部分,包括 stack segment 、heap segment、code segment 、data segment ; 其中我们程序中用关键字new出来的东西都是存...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网