JAVA新手入门必看的30个问题

科研人必备!用WisPaper搭建个人文献知识库的完整指南(附Zotero联动技巧) 本文详细介绍了如何利用WisPaper搭建高效的个人文献知识库,包括文件命名标准化、文件夹结构设计、语义搜索技巧及与Zotero的深度联动方法。通过智能标签系统和知识图谱功能,科研人员可以快速定位关键文献,提升研究效率。特别适合需要管理大量学术文献的研究者。 阅读详情

JAVA新手入门必看的30个问题

1 什么是Java、Java2、JDK?JDK后面的1.3、1.4.2版本号又是怎么回事?
答:Java是一种通用的,并发的,强类型的,面向对象的编程语言(摘自Java规范第二版) JDK是Sun公司分发的免费Java开发工具,正式名称为J2SDK(Java2 Software Develop Kit)。

2 什么是JRE/J2RE?
答:J2RE是Java2 Runtime Environment,即Java运行环境,有时简称JRE。
如果你只需要运行Java程序或Applet,下载并安装它即可。
如果你要自行开发Java软件,请下载JDK。在JDK中附带有J2RE。
注意由于Microsoft对Java的支持不完全,请不要使用IE自带的虚拟机来运行Applet,务必安装一个J2RE或JDK。

3 学习Java用什么工具比较好?
 答:作者建议首先使用JDK+文本编辑器,这有助你理解下列几个基础概念:path,classpath,package并熟悉基本命令:javac和java。并且下载和你的JDK版本一致的API帮助。
如果你不确定类或函数的用法,请先查阅API而不是发贴求助。
当你熟悉Java之后,你可以考虑换一个IDE。很多人推荐JCreator,实际上JCreator的功能还 是很弱的。
作者推荐eclipse,下载网址http://www.eclipse.org 。因eclispe是免费的.

4 学习Java有哪些好的参考书?
答:作者首先推荐Thinking in Java,中文名《Java编程思想》,有中文版。
该书第一章介绍了很多面向对象的编程思想,作为新手应当认真阅读。
除此以外,O′relly出版社和Wrox出版社的书也不错。作者本人不喜欢大陆作者的书。
也许你觉得英文太难,但是网上大多数资料都是英文的。另外,你需要经常查阅API,而那也是英文的。

5 Java和C++哪个更好?
答:这个问题是一个很不恰当的问题。你应该问:Java和C++哪个更适用于我的项目?
如果你不需要跨平台,不需要分布式,要强调程序的运行速度,C++更为适用。反之?你应当考虑Java。
6 什么是J2SE/J2EE/J2ME?
答:J2SE就是一般的Java。
J2ME是针对嵌入式设备的,比如Java手机,它有自己的SDK。而J2EE使用J2SE的SDK。
J2EE规范更多的是对J2EE服务器的要求和开发人员的约束。详情见后继《J2EE FAQ》。

二、命令篇
7 我写了第一个Java程序,应该如何编译/运行?
答:首先请将程序保存为xxx.java文件,然后在dos窗口下使用javac xxx.java命令,你会发现该目录下多了一个xxx.class文件,再使用java xxx命令,你的java程序就开始运行了。

8 我照你说的做了,但是出现什么"′javac′ 不是内部或外部命令,也不是可运行的程序或批处理文件"。
答: 你遇到了path问题。操作系统在一定的范围(path)内搜索javac.exe,但是没能找到。请编辑你的操作系统环境变量,新增一个 JAVA_HOME变量,设为你JDK的安装目录,再编辑Path变量,加上一项 %JAVA_HOME%/bin。然后关掉并新开一个dos窗口,你就可以使用javac和java命令了。

9 环境变量怎么设置?
答:请向身边会设的人咨询。
10. javac xxx.java顺利通过了,但是java xxx的时候显示什么"NoClassDefFoundError"?
答:你遇到了classpath问题。java命令在一定的范围(classpath)内搜索你要用的class文件,但是未能找到。
首 先请确认你没有错敲成java xxx.class,其次,检查你的CLASSPATH环境变量,如果你设置了该变量又没有包含.(代表当前目录)的?br> 睿?br> 你就会遇到这个问题。请在你的CLASSPATH环境变量中加入一项 。另外参见15。

11 .我在java xxx的时候显示"Exception in thread "main" java.lang.NoSuchMethodError: main"。
答:首先,在你的程序中每个java文件有且只能有一个public类,这个类的类名必须和文件名的大小写完全一样。其次,在你要运行的类中有且只能有一个public static void main(String[] args)方法,这个方法就是你的主程序。

12 .package是什么意思?怎么用?
答:为了唯一标识每个类并分组,java使用了package的概念。
每个类都有一个全名,例如String的全名是java.lang.String,其中java.lang是包名,String是短名。
这 样,如果你也定义了String,你可以把它放在mypackage中,通过使用全名mypackage.String和 java.lang.String来区分这两个类。同时,将逻辑上相关的类放在同一个包中,可以使程序结构更为清楚。你要做的就是在java文件开头加一 行"package mypackage;"。
注意包没有嵌套或包含关系,A包和A.B包对java命令来说是并列的两个包。

13 我没有声明任何package会怎么样?
答:你的类被认为放在默认包中。这时全名和短名是一致的。

14 在一个类中怎么使用其他类?
答:如果你使用java.lang包中的类,不用做任何事。
如果你使用其他包中的类,使用import package1.class1; 或 import package2.*;这里.*表示引入这个包中的所有类。然后在程序中你可以使用其他类的短名。如果短名有冲突,使用全名来区分。

15 我用了package的时候显示"NoClassDefFoundError",但是我把所有package去掉的时候能正常运行。
答:将你的java文件按包名存放。
比如你的工作目录是/work,你的类是package1.class1,那么将它存放为/work/package1/class1.java。如果没有声明包,那么直接放在/work下。
在/work下执行javac package1/class1.java,再执行java package1.class1,你会发现一切正常。另外,你可以考虑开始使用IDE。

16 我想把java编译成exe文件,该怎么做?
答:JDK只能将java源文件编译为class文件。
class 文件是一种跨平台的字节码,必须依赖平台相关的JRE来运行。Java以此来实现跨平台.有些开发工具可以将java文件编译为exe文件。作者反对这种 做法,因为这样就取消了跨平台性。如果你确信你的软件只在Windows平台上运行,你可以考虑使用C++/C#来编程。

17 我在编译的时候遇到什么"deprecated API",是什么意思?
 答:所谓deprecated是指已经?时,但是为了向前兼容起见仍然保留的方法??br> 这些方法可能会在以后取消支持。你应当改用较新的方法。一般在API里面会说明你应当用什么方法来代替之。

三、I/O篇
18 我怎么给java程序加启动参数,就像dir /p/w那样?
答: 还记得public static void main(String[] args)吗?这里的args就是你的启动参数。在运行时你输入java package1.class1 -arg1 -arg2,args中就会有两个String,一个是arg1,另一个是arg2。

19 我怎么从键盘输入一个int/double/字符串?
答: java的I/O操作比C++要复杂一点。如果要从键盘输入,样例代码如下:BufferedReader cin = new BufferedReader( new InputStreamReader( System.in ) );String s = cin.readLine();
这样你就获得了一个字符串,如果你需要数字的话再加上:int n = Integer.parseInt( s ); 或者 double d = Double.parseDouble( s );

20 我怎么输出一个int/double/字符串?
答:在程序开始写:
PrintWriter cout = new PrintWriter( System.out );
需要时写:
cout.print(n); 或者cout.println("hello")等等。

21 我发现有些书上直接用System.in和System.out输入输出,比你要简单得多。
答:java使用unicode,是双字节。而System.in和System.out是单字节的stream。
如果你要输入输出双字节文字比如中文,请使用作者的做法。

22 我怎么从文件输入一个int/double/字符串?
答:类似于从键盘输入,只不过换成BufferedReader fin = new BufferedReader( new FileReader(" myFileName " ) );
PrintWriter fout = new PrintWriter( new FileWriter(" myFileName " ) );
另外如果你还没下载API,请开始下载并阅读java.io包中的内容。

23 我想读写文件的指定位置,该怎么办?
答:你肯定没有认真看API。java.io.RandomAccessFile可以满足你的需要。

24 怎么判断要读的文件已经到了尽头?
答:你肯定没有认真看API。在Reaer的read方法中明确说明返回-1表示流的结尾。

四、 关键字篇
25 java里面怎么定义宏?
答:java不支持宏,因为宏代换不能保证类型安全。
如果你需要定义常量,可以将它定义为某个类的static final成员。参见26和30。

26 java里面没法用const。
答:你可以用final关键字。例如 final int m = 9。被声明为final的变量不能被再次赋值.final也可以用于声明方法或类,被声明为final的方法或类不能被继承。注意const是java的保留字以备扩充。

27 java里面也不能用goto。
 答:甚至在面向过程的语言中你也可以完全不用goto。请检查你的程序流程是否合理。
如果你需要从多层循环中迅速跳出,java增强了(和C++相比)break和continue的功能。
例如:
outer :
while( ... )
{
 inner :
 for( ... )
 {
 ... break inner; ...
 ... continue outer; ...
 }
 }
 和const一样,goto也是java的保留字以备扩充。

28 java里面能不能重载操作符?
 答:不能。String的+号是唯一一个内置的重载操作符。你可以通过定义接口和方法来实现类似功能。

29 我new了一个对象,但是没法delete掉它。
答:java有自动内存回收机制,即所谓Garbarge Collector。你再也不用担心指针错误了.

30 我想知道为什么main方法必须被声明为public static?
答:声明为public是为了这个方法可以被外部调用,详情见面向对象篇37。
static是为了将某个成员变量/方法关联到类(class)而非实例(instance)。
你不需要创建一个对象就可以直接使用这个类的static成员,在A类中调用B类的static成员可以使用B.staticMember的写法。
注意一个类的static成员变量是唯一的,被所有该类对象所共享的
 
转自【 WJIANV的专栏】
AI之KE:Knowledge Engineering知识工程的简介、发展、应用案例之详细攻略 AI之KE:Knowledge Engineering知识工程的简介、发展、应用案例之详细攻略 目录 Knowledge Engineering知识工程的简介 0.1、What 0.2、How 0.3、Why 1、知识工程过程的5个活动 2、知识图谱的应用 Knowledge Engineering知识工程的发展 1、前知识工程时期——1950-1970时期:图... 阅读详情

相关推荐

计算机考研复试面试常问问题 数据结构篇(下)

计算机考研复试面试常问问题 数据结构篇(下) 使用前需知(拒绝白嫖,如果对你有帮助,你只需点个赞就行): 注意:有人在闲鱼上盗卖我的资料,而且还有很多同学买了,请各位擦亮双眼,我是整理出来免费分享给大家的! 大家请多点赞和评论,这样后面的同学更容易百度到,不至于被人盗卖,我就不加水印影响大家使用了! 第一次整理,度不好控制,有不好的地方希望大家理解,后面可能会改进,造福今年之后的同学们! ...

程序员宝藏的博客 1万+

Java新手入门必看的30个问题

1 什么是Java、Java2、JDK?JDK后面的1.3、1.4.2版本号又是怎么回事? 答:Java是一种通用的,并发的,强类型的,面向对象的编程语言(摘自Java规范第二版) JDK是Sun公司分发的免费Java开发工具,正式名称为J2SDK(Java2 Software Develop Kit)。 2 什么是JRE/J2RE? 答:J2RE是Java2 Runtime Environmen

sky_best的专栏 832

arcgis导出自身相交数据

今天接到一个客户需求,一份面文件,里面有好多元素是两两相交甚至是三个相交的,现在要把这些重叠部分提取出来,并且把相交部分的原始要素的名称也保留在字段中,也就是说名称这个会有好多个名称字段,如果两个要素相交那就是前两个名称字段有值,后面的为空,如果是三个要素相交,那么输出的这个要素就是前三个名称字段有值,后面的为空,嗯,这里也不太确定会出现多少个名称字段,这个需要依照数据来定。 这是原始数据,...

miaowumi92的博客 6790

Java同步Synchronized-XXOO

一、Synchronized是什么? synchronized可以保证方法或者代码块在运行时,同一时刻只有一个方法可以进入到临界区,同时它还可以保证共享变量的内存可见性。 二、代码实现 1.实现方式 Java中每一个对象都可以作为锁,这是synchronized实现同步的基础: 1.普通同步方法,锁是当前实例对象 2.静态同步方法,锁是当前类的class对象 3.同步方法块,锁是括号里面的对象 public synchronized void synchronizedStart1(

JueDream的博客 1377

CoppeliaSim(原V-REP)新手上路

CoppeliaSim(原V-REP)是一个机器人仿真平台,里面有很多来自别的公司的机器人模型以及完备的物理引擎,我们可以通过python,c++,matlab等语言控制里面的机器人。,您也可以在官网中Downloads里找您需要的版本,一般只需要下载EDU版本就可以了,我下载的是v4.1.0 windows EDU版本。在版本V4之前,CoppeliaSim叫V-REP,在官网可以下载到之前的V-REP版本。

qq_37051669的博客 4万+

TBtools的序列提取步骤

本教程详细介绍了如何使用TBtools软件从原来的FASTA序列中提取特定的DNA序列。

weixin_47509995的博客 1万+

zz[java基础]jdk1.5新特性

“jdk1.5”的一个重要主题就是通过新增一些特性来简化开发,这些特性包括泛型,for-each   循环,自动装包/拆包,枚举,可变参数,   静态导入   。使用这些特性有助于我们编写更加清晰,精悍,安全的代码。         下面我们简单介绍一下这些新特性。     1.泛型(generic)     c++通过模板技术可以指定集合的元素类型,而java在1.5之前一直没有相对应

Rookie@Java 8103

《Unity DOTS之ECS从入门到不香》(1)基本概念

文章目录一、什么是DOTS?二、什么是ECS?三、Hello World 一、什么是DOTS? Data Oriented Tech Stack(DOTS)是unity推出的多线程面向数据的技术堆栈 。它是一套高性能解决方案,包含三个部分: 1.ECS:ECS是一种有别于面向对象的编程模式,是面向CPU Cache友好的编程模式。要求代码都要按照 实体+组件+系统 的框架构建。官方链接 2.JobSystem:JobSystem是unity推出的一套先进的多线程任务管理系统,结合ECS可以获得最佳性能。当然

Cxihu田树东的游戏开发博客 2732

zz[Java基础]class.forName().newInstance

有的jdbc连接数据库的写法里是Class.forName(xxx.xx.xx);而有一些:Class.forName(xxx.xx.xx).newInstance(),为什么会有这两种写法呢?Class.forName(xxx.xx.xx) 返回的是一个类,.newInstance() 后才创建一个对象Class.forName(xxx.xx.xx);的作用是要求JVM查

Rookie@Java 1万+

11、气动外形优化中的连续伴随方法

本文探讨了连续伴随方法在气动外形优化中的理论背景、实现和验证过程。通过使用DLR的FLOWer求解器,将伴随方法应用于Euler和Navier-Stokes方程,以高效计算成本函数梯度,从而显著减少优化过程中的计算成本。文章还介绍了该方法在RAE2822翼型和ONERA M6机翼等案例中的应用,并展示了其准确性和效率。未来展望包括扩展到复杂流动模拟和多学科优化。

desk3的博客 168

PostgreSQL性能优化:如何搭建监控体系?

本文系统讲解如何构建企业级PostgreSQL监控体系,覆盖四大核心维度:基础设施层、数据库实例层、会话与查询层、对象与存储层。通过Prometheus+Grafana+ELK等工具链实现指标采集、可视化与告警闭环管理,详细解析关键监控指标、部署方法及告警策略设计,帮助DBA快速定位慢查询、连接泄漏、存储膨胀等典型故障,构建"看得见、管得住、防得早"的数据库运维能力。

数据知道的博客 2234

java web系统架构设计需要解决的几个问题

下面列出了java web系统整体设计时需要解决的几个问题,肯定不够全面和深入,欢迎大家补充和交流,呵呵。   1.整体架构的选择,是选择重量级架构还是POJO轻量级架构。   2.系统建模,是选择过程式设计还是面向对象的设计。 过程式设计指的是业务逻辑层只提供一个service的接口和实现; 面向对象设计指的是采用domain model模式,对整个系统进行整体的对象建模和设计。 ...

xiangxingchina 248

PCL Trimmed ICP实现点云精配准【2025最新版】

博客长期更新,本文最新更新时间为:2025年6月25日。抄袭狗记得来抄最新代码哦,抄都抄成错的,不够丢人钱。

点云侠的博客 37万+

zz Java新手入门必看的30个问题

 1 什么是Java、Java2、JDK?JDK后面的1.3、1.4.2版本号又是怎么回事? 答:Java是一种通用的,并发的,强类型的,面向对象的编程语言(摘自Java规范第二版) JDK是Sun公司分发的免费Java开发工具,正式名称为J2SDK(Java2 Software Develop Kit)。 2 什么是JRE/J2RE? 答:J2RE是Java2 Runtime Environme

feng2112的专栏 1万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

java新手入门必看的30个问题

1 什么是Java、Java2、JDK?JDK后面的1.3、1.4.2版本号又是怎么回事? 答:Java是一种通用的,并发的,强类型的,面向对象的编程语言(摘自Java规范第二版) JDK是Sun公司分发的免费Java开发工具,正式名称为J2SDK(Java2 Software Develop Kit)。 2 什么是JRE/J2RE? 答:J2RE是Java2 Runtime Environmen

张磊的专栏 747

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

JAVA新手入门必看的30个问题!!

1 什么是Java、Java2、JDK?JDK后面的1.3、1.4.2版本号又是怎么回事? 答:Java是一种通用的,并发的,强类型的,面向对象的编程语言(摘自Java规范第二版) JDK是Sun公司分发的免费Java开发工具,正式名称为J2SDK(Java2 Software Develop Kit)。 2 什么是JRE/J2RE? 答:J2RE是Java2 Runtime Environmen

WJIANV的专栏 819

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

java 新手入门必看的30题

一、基础篇 1 什么是Java、Java2、JDK?JDK后面的1.3、1.4.2版本号又是怎么回事? 答:Java是一种通用的,并发的,强类型的,面向对象的编程语言(摘自Java规范第二版) JDK是Sun公司分发的免费Java开发工具,正式名称为J2SDK(Java2 Software Develop Kit)。 2 什么是JRE/J2RE? 答:J2RE是Java2 Runtime

mkkm1314的博客 2668

新手入门必看的30个问题

chin_yong的专栏 940

java 新手入门必看的30个题

一、基础篇 1 什么是Java、Java2、JDK?JDK后面的1.3、1.4.2版本号又是怎么回事? 答:Java是一种通用的,并发的,强类型的,面向对象的编程语言(摘自Java规范第二版) JDK是Sun公司分发的免费Java开发工具,正式名称为J2SDK(Java2 Software Develop Kit)。 众学简快 http://www.jkkaoyan.com/ 2 什么是JRE...

jkkaoyan666的博客 439

Java新手入门必看的30个题。

一、基础篇 1 什么是Java、Java2、JDK?JDK后面的1.3、1.4.2版本号又是怎么回事? 答:Java是一种通用的,并发的,强类型的,面向对象的编程语言(摘自Java规范第二版) JDK是Sun公司分发的免费Java开发工具,正式名称为J2SDK(Java2 Software Develop Kit)。 2 什么是JRE/J2RE? 答:J2RE是Java2 Runtime Environment,即Java运行环境,有时简称JRE。 如果你只需要运行Java程序或Applet,下载并安装它即

weixin_49216824的博客 390

java入门必看的30个问题

以下信息来源自网络--------------------------------------------------- 新手入门必看的30个问题      1 什么是Java、Java2、JDK?JDK后面的1.3、1.4.2版本号又是怎么回事?  答:Java是一种通用的,并发的,强类型的,面向对象的编程语言(摘自Java规范第二版) JDK是Sun公司分发的免费Java开发工具,正式名称为J

问题总结保存 555

理解Java里面的必检异常和非必检异常

问题:理解Java里面的必检异常和非必检异常 Joshua Bloch在"Effective Java"里面说过 在可恢复的条件下和编程错误导致的运行时错误时,使用必检异常(第二版的第52页) 让我们来看一下我对这个的正确理解吧 下面是我对必检异常的理解 try{ String userInput = //read in user input Long id = Long.parseLong(userInput); }catch(NumberFormatException e){ i

weixin_44560620的博客 2956

JAVA 新手入门

JAVA 新手入门前言基础语法Java的语言特性面向对象的思想接口泛型 前言 对于JDK的安装和环境配置,网上已经有很多资料,比如:这个是我随便搜的。 至于编辑器的话,我个人使用的是IDEA,因为刚好有教育邮箱,可以免费使用(这一点对于没有收入来源的学生来讲真的很赞) 另外,我是学习过C++的一名普通学生,所以之后的很多内容,我都会相较于C++来比较学习,这样也便于快速理解,或许对于没有C++或类似基础的同胞们不太友好,请谅解。 基础语法 进入正题,对于任何一门语言,相信绕不过的第一个程序,自然就是Hell

weixin_52796272的博客 7205

新手入门必看的30个问题!!!!!!

1 什么是Java、Java2、JDK?JDK后面的1.3、1.4.2版本号又是怎么回事? 答:Java是一种通用的,并发的,强类型的,面向对象的编程语言(摘自Java规范第二版) JDK是Sun公司分发的免费Java开发工具,正式名称为J2SDK(Java2 Software Develop Kit)。 2 什么是JRE/J2RE? 答:J2RE是Java2 Runtime Environm

专注移动互联网 722
上一篇: 使用Struts之ActionForm
下一篇: 有效下单策略可规避市价订单风险
系统信息
系统信息 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄23年 2404粉丝 565原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值