java疑难31问,入门必备

Java 8 Update 31 (8u31)是Java SE 8的第31次更新,内部版本号是1.8.0_31 Java SE是Java语言的标准版,它包含构成Java语言的核心的类,如数据库连接、接口定义、数据结构、输入/输出、网络编程等,适用于桌面应用程序、服务器应用程序和嵌入式设备。Java ME是针对移动设备、嵌入式设备等资源受限设备的版本,它包含了Java SE的核心功能和优秀的网络、安全和用户界面技术,同时还支持短信、彩信、蓝牙等特有功能,其特点是轻量级、安全、可移植性强,一般不包括Java SE的全部功能。该版本主要包含了安全漏洞的修复和一些改进,如更好的JAR文件验证和加强的服务器端支持。 阅读详情

一、如何实现控制台输入

首先,你要清楚一点,Java的I/O是依赖于流的。你用read()方法得到的是一个字符流,也就是说你输入“10回车”,得到的是‘1’、‘0’和‘/n’这三个字符,而不是一个int型的数10。  
  Java
没有提供一种输入方法来从键盘读入一个字符串,然后自动转换为相应的数据类型。要做到这个,要使用类型包装器(type   wrapper):Double、Float、Long……。具体到你的问题,要用Integer。代码如下:  

1.        导入所需包:

a)        import java.lang.*;

b)        import java.io.*;

2.        以InputStreamReader类对象为参数创建BufferdReader类对象

InputStreamReader isr=new   InputStreamReader(System.in);

3.        创建BufferedReader类对象

BufferedReader br=new BufferedReader(isr);

4.        使用BufferedReader类对象的readLine方法读取数据并转化为所需数据类型 

       String str="";

           try{

           str=br.readLine();

           }

           catch(IOException ex)

           {

                  System.out.println(ex.getMessage());

           }

          

           int i=Integer.parseInt(str);

           System.out.println("i="+i);  类似的,要想得到double型,就用Double.parseDouble(str);  

二、j2sdk环境的配置

1、步骤如下:

1.我的电脑-->属性-->高级-->环境变量.

2.配置用户变量:

        a.新建 JAVA_HOME

             C:/Program Files/Java/j2sdk1.5.0 (JDK的安装路径)

        b.新建 PATH

             %JAVA_HOME%/bin;%JAVA_HOME%/jre/bin

        c.新建 CLASSPATH

            .;%JAVA_HOME%/lib;%JAVA_HOME%/lib/tools.jar

3.测试环境变量配置是否成功:

   开始-->运行--〉CMD

   键盘敲入: JAVAC   JAVA

        出现相应的命令,而不是出错信息,即表示配置成功!

 

2、环境变量配置的理解:

  1. JAVA_HOME环境变量。它指向jdk的安装目录,Eclipse/NetBeans/Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk。

  2. PATH环境变量。作用是指定命令搜索路径,在i命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好PATH变量后,就可以在任何目录下执行javac/java等工具了。

  3. CLASSPATH环境变量。作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPTH来寻找类的。我们需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也必须加入到该变量中。

三、java注释

1.         单行注释://

2.         多行注释:/*与*/之间

3.         文档注释:/**开头,*/结束

四、System.out.println()长引用能缩短吗?

不能,System不是包,而是System.out整个构造的是一个输出流。

五、访问修饰符

Ø         默认(即省略权限修饰符)情况下,权限为包内可以访问,相当于C#的internal

Ø         类和接口的访问修饰符不能为protected或者private,即只允许为省略,或者public

六、final与static的正确位置

如public static final int i=5;

七、接口

Ø         接口内不能定义变量,可申明常量和方法。

Ø         接口内的方法的访问修饰符只能是public或默认

Ø         接口内的方法不能有方法体,连{}都不允许

Ø         接口的实现类可以不实现所有的接口成员,但此时必须定义为抽象类

八、JDK版本导致程序不能正确编译

向下兼容,不兼容时只需将所有源代码按引用顺序在新环境下重编译一次即可。

九、抽象方法

Ø         抽象方法必须定义在抽象类中

Ø         抽象方法不能同时定义为静态方法

Ø         构造函数不能为抽象方法

Ø         子类中不能有与父类中名字相同的抽象方法

Ø         覆盖抽象方法时,派生类中的同名方法不能为静态方法

十、抽象类的作用

泛化问题,利于实现多态性。保证子类在扩展功能的同时,拥有单一的被调用形式。

十一、调用父类方法

1、  调用父类构造函数

使用“super (参数列表)”

2、调用父类被重写(或隐藏)的方法

使用“super.方法名(参数列表)”

十二、主函数命令行参数String args[]

Ø         存储内容:在DOS窗口下接受命令时,java命令后跟的参数,参数间以空格隔开

如:java CommandPara hello this is my world!

此时,args数组元素共有5个,分别存放“hello”、“this”、“is”、“my”、“world!”

十三、一个java文件中可以写多个类吗?

可以,但其中任何一个类的访问修饰符均不能是public;而且,有可能会导致编译错误,报告找不到主函数。

十四、Java中异常处理注意事项

Ø         输出异常信息时,可以直接使用ExceptionObject.printStackTrace()方法。没必要再用System.out.println(ExceptionObject.toString())或者System.err.println(ExceptionObject.toString())输出错误信息。因为后者少,并且还重复。

Ø         当要抛出异常时,必须在方法的“()”之后“{}”之前,用throws语句声明将要抛出的异常类。否则会出现编译错误。

Ø         当try或者catch块中有return语句时,并不影响finally块中语句的执行;当最后有语句没有放在finally块中时,这些语句前若有return语句,将得不到执行。相反,依然能够执行,跟是否发生异常无关。

十五、明明有,但却始终找不到main函数

把含main函数的类独立为一个同名文件编译即可。

十六、普通java文件操作的当前目录是什么

类文件.class所在的目录

十七、什么是抽象路径

不同的硬件平台和软件系统平台的文件系统不同。比如路径组织形式和目录分隔符。为了在不同的硬件和软件系统上无缝移植,java文件操作命令中的路径会由JVM自动转换为抽象路径。在安装运行时会根据安装平台和安装位置生成对应的物理路径。

十八、什么是轻量级和重量级组件

Ø         轻量级和重量级是相对概念。主要是对应用程序框架使用方便性和所提供服务的完善性方面来说的。轻量级框架只需要普通的java对象,提供足够中小应用的功能;重量级框架对编写的代码有限制,提供分布式开发等复杂的功能。

Ø         AWT的控件基于操作系统,因此同一个的AWT控件,在不同的操作系统下的表现也不一定相同,其底层的消息实现也是跟操作系统相关的,操作和控制起来不是得心应手,受系统的制约,因此称为重量级。SWING的组件基本都是在画布上由java自己绘制而成,其表现的外观比较容易进行一致的控制,其控件的消息机制和事件相应也完全由java控制,因此称为轻量级的组件。

十九、JBuilder2005操作

1、如何删除文件、包和目录

在project和file面板中,删除package和目录,在你想要删除的类名上点右键,点clean,然后点delete

2、文件操作的当前目录是什么

是工程文件.jpx所在的目录

3、如何设置代码字体

Tools->Preference->Fonts->Editor…

4、如何设置JBuilder2005的默认路径等信息

Ø         关闭所有项目

Ø         Tools->Preference->Path…

5、显示不出控件名等属性

代码有语法错误。排除后即可正常显示。

6、对齐多个控件

先选中这些控件,右击后选取需要的对齐方式

7、设置文本框从右向左显示

设置HorizontalAlignment属性为right

8、向comboBox中添加项目

使用代码,调用addItem(String item)方法

9、如何判断一个单选按钮是否处于选中状态

调用方法,判断其返回值:JRadioButton.isSelected()

10、获取comboBox的选中项

objComboBox.getSelectedItem();

11、将图像显示到Lable上

url = getClass().getResource("/images/china.gif");

setIconImage(new ImageIcon(url).getImage());

lblFlag.setIcon(new ImageIcon(url));

12、调整窗体的大小

A.        在“Content”面板的左下角切换至“Disign”视图

B.        在“Structure”面板中,选中代表JFrame的“this”

C.        在“Content”面板中拖动调整窗体大小

13、控件大小和位置无法控制

更改布局管理器

A.        作用:自动调整组件的相对位置,以适应不同系统平台的组件大小设置

B.        操作步骤:

a)         在“Structure”面板中,选中“this”下的“ContentPane”

在属性窗口中修改“Layout”属性值为“XYLayout”或者“null” 
【JAVA高级篇教学】第一篇:Springboot对接通义千问大模型 博主今天打算讲解下Java如何对接阿里云的通义千问大模型,可以自己玩玩ai问答之类的! 阅读详情

相关推荐

哈希算法之 hashCode 为什么选择数字31作为优质乘子?

哈希算法之 hashCode 为什么选择数字31作为优质乘子? 详细说明 String hashCode 方法选择数字31的作为乘子的原因之前,我们先来看看 String hashCode 方法实现: public int hashCode() { int h = hash; if (h == 0 && value.length > 0) { char val[]...

Aaron的blog 1万+

java常见疑难问题

1、关于"=="与equals中的误区 经常听到不少人说,在基础面试中,会被问及“关于'=='与equals中的区别” 而不少人都是回答:"关于‘==’是只负责基本数据类型比较,和引用对象地址比较,而equals则是比较两个对象间的内容是否一样"。甚至否写面试题目的答案中也是以此作为答案。 这答案当然不是全部错误,但是有相当一部分是误区, 每个类都是使用Object作为超类的,所有...

web开发自学 332

【Java】String hashCode 这个数字 31

1. 背景 原文:String hashCode 这个数字,很多人不知道! 生动有趣的文章:哈希表哪家强?几大编程语言吵起来了! 好文章:面试28k职位,老乡面试官从HashCode到HashMap给我讲了一下午!「回家赶忙整理出1.6万字的面试材料」 建议直接看这个 某天,我在写代码的时候,无意中点开了 String hashCode 方法。然后大致看了一下 hashCode 的实现,发现并不是很复杂。但是我从源码中发现了一个奇怪的数字,也就是本文的主角31。 这个数字居然不是用常量声明的,所以没法从.

九师兄 947

【Java总结】详细探讨HashCode算法为什么采用31作为乘数

前两天写了几篇关于Hash函数和HashMap集合的文章,其中有个问题说的有点含糊 就是关于hashCode的计算为什么采用31这个数作为乘数的问题。 当时强硬的理解为31 这个数值原因为: 首先hash函数必须要选用质数(质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数又称为素数),这个是被科学家论证过的hash函数减少冲突的一个理论。 如果设置为偶数的话会存在溢出的情况,导...

zhujohnle的专栏 1万+

Java小白入门200例31之检查数组是否包含某个元素

作者简介 作者名:编程界明世隐 简介:优快云博客专家,从事软件开发多年,精通Java、JavaScript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注,期待与您一起学习、成长、起飞! 引言 很多Java初学者问我,新手明明很用心、很努力学习的Java知识,转头又忘记了,很让人犯愁,小白如何能够快速成长、成为大牛呢? 其实要成为大神的技巧只有一个:“多学多练”,于是明哥就整理了比较典型的练习实例,通过练习能够快速提升编码技巧和熟练度,让你在成为大

编程界明世隐的博客 381

SwiffChartPro31:Java图表分析工具的轻松上手与集成

SwiffChartPro31是一款先进的图表分析工具,专为数据可视化和统计分析设计。它以高效、易用和功能强大而受到业界的广泛赞誉。本章将带领读者入门SwiffChartPro31,介绍它的核心功能及如何在数据可视化项目中发挥作用。在设计用户界面时,我们遵循几个核心原则:简洁性、直观性和一致性。简洁性意味着界面应该简洁明了,避免不必要的元素造成用户干扰。直观性要求用户可以通过直觉进行操作,而不必花费大量时间学习如何使用应用。一致性保证了用户在不同部分的操作逻辑是一致的,从而降低用户的认知负担。

weixin_42513209的博客 817

Java hash 31

In aprevious posti pointed out how questions posted in reward based discussions sites likestackoverflow.comnever gets answered satisfactorily. This post is a look atone such feeble answerand makes an effort to explain in more detail a basic question...

xiaoliu_1的博客 309

Why does Java‘s hashCode() in String use 31 as a multiplier?

Why does Java's hashCode() in String use 31 as a multiplier?

小李的便利店 805

为什么Java String哈希乘数为31?

发表文章之后,发现很多图片显示不了,请阅读我的公众号文章,以获得本文最佳体验: 为什么Java String哈希乘数为31?   前面简单介绍了[ 经典的Times 33 哈希算法 ],这篇我们通过分析Java 1.8 String类的哈希算法,继续聊聊对乘数的选择。 String类的hashCode()源码 /** Cache the hash code for the strin...

二进制之路 2609

【Unity】Unity 跨平台及编译过程

早期的Unity跨平台是基于MONO运行时的,又通过CLS实现了跨语言。其基本思路是将各个版本的语言统一编译成CIL语言,在不同平台运行时使用CLR进行解释。有点类似于Java的jdk和jvm。 CLS(Common Language System)通用语言规范:CLS是一种规范,类似于schema,当文件被指定遵守CLS规范后,在某语言中写出不符合通用规范的代码后将被警告或报错。 MONO是一个开源工程,其中包含C#编译器,CLR运行时,以及一组类库。该工程常见了一系列符合ECMA标准的.NET工具,MO

一个普普通通的游戏开发者 7239

保姆级教程:用BIGEMAP和Global Mapper搞定5米精度DEM高程数据下载与处理

本文提供了一份详细的5米精度DEM高程数据处理教程,涵盖从BIGEMAP下载到Global Mapper处理的完整流程。通过实战案例和避坑指南,帮助用户掌握高效下载DEM数据、优化等高线生成及坐标系转换的关键技巧,适用于GIS新手和专业人士。

weixin_34169322的博客 391

java String的 hashcode为啥用31为乘子

1. 背景 某天,我在写代码的时候,无意中点开了 String hashCode 方法。然后大致看了一下 hashCode 的实现,发现并不是很复杂。但是我从源码中发现了一个奇怪的数字,也就是本文的主角31。这个数字居然不是用常量声明的,所以没法从字面意思上推断这个数字的用途。后来带着疑问和好奇心,到网上去找资料查询一下。在看完资料后,默默的感叹了一句,原来是这样啊。那么到底是哪样呢?在接下来章节里,请大家带着好奇心和我揭开数字31的用途之谜。 2. 选择数字31的原因 在详细说明 String hashC

weixin_43700510的博客 529

STM32控制舵机SG-5010转动,HAL库

首先设置时钟为72Mhz,预分频系数为72-1,自动重装载计数器的值为5000-1,这样的话就可以得到一个5ms的脉冲宽度,5000的计数值可以让舵机的旋转角度变得更加易控且相对精准,计算旋转角度的时候也可以更加精确。所以我们5ms脉宽,period是5000脉宽-------------角度----------pulse0.5ms-------------0度----------500;1.0ms------------45度---------1000;

qq_73783264的博客 1293

面试官问:为什么 String 的 hashCode 选择 31 作为乘子?

点击上方Java后端,选择设为星标优质文章,及时送达作者 | 田小波链接 |http://www.tianxiaobo.com某天,我在写代码的时候,无意中点开了 String h...

公众号:Java后端 270

Keysight ADS新手必看:3分钟搞定TDR模拟的保姆级教程(附差分信号设置技巧)

本文为Keysight ADS新手提供TDR模拟的保姆级教程,详细介绍了从基础环境准备到差分信号设置的全流程。通过内置模板调用、待测器件连接和仿真结果解读,帮助用户快速掌握TDR模拟技术,特别包含差分信号配置技巧,提升信号完整性分析效率。

weixin_30872157的博客 197

PNP NPN线性接近开关接线嵌入式:详细指南与示例代码

在嵌入式系统中,PNP和NPN线性接近开关是常用的传感器类型,用于检测物体的接近或离开。在嵌入式系统中,PNP和NPN线制接近开关是常用的传感器类型,用于检测物体的接近或离开。本文提供了有关PNP和NPN线性接近开关接线的详细指南,并提供了一个简单的示例代码,以帮助您在嵌入式系统中正确使用这些传感器PNP NPN 线制接近开关接线 嵌入式:详细指南与示例代码。与PNP开关不同的是,NPN线性接近开关的正极连接至系统的正极电源。与PNP开关不同的是,NPN线制接近开关的正极连接至系统的正极电源。

CyberSphinx的博客 1272

面试官问:为什么 String 的 hashCode 选择 31 作为乘子?

Java面试笔试面经、Java技术每天学习一点Java面试关注不迷路作者:田小波来源:https://www.cnblogs.com/nullllun/p/8350178.html某天...

java面试笔试 195

(代码可运行)半导体器件和工艺模拟 使用Silvaco设计构建NMOS并提取各项工艺及器件参数

win10。

qq_20388971的博客 110

Java面试31问

第一部分 个人情况 1.请介绍一下你自己。 企业目的:考察简历真实性、求职者语言表达能力、逻辑思维性 回答提示:不要只说姓名、年龄、爱好、工作经验 。其实,企业最希望知道的是求职者能 否胜任工作。在回答每个问题之后都说一句“谢谢”,时间1-3分钟为宜。 回答样本:我叫张三、今年大学本科计算机专业毕业、出于对java开发的热爱,在达内集团进行了为期4个月的封闭式...

a1661992817的博客 354

一步步教你使用 NVIDIA 推出的全新GPU加速求解器 cuOpt:解锁超高效率的求解体验

未完成

Linshaodan520的博客 869

基于综合阻抗特征的配电架空线路单相断线故障区段定位研究

本文提出了一种基于综合阻抗特征的配电架空线路单相断线故障区段定位方法。通过分析故障后正序、负序阻抗变化,构造综合阻抗判据实现精准定位。仿真结果表明:该方法能有效识别故障区段,差异度判据显著(故障区段达0.508,非故障区段<0.016);对过渡电阻(1-200Ω)和负荷变化具有强鲁棒性,定位准确率不受影响。相比传统方法,综合阻抗法放大了断线故障特征,解决了弱故障信号检测难题,为配电网安全运行提供了可靠的技术手段。

AI的内部世界的博客 81

面试官问:为什么String的hashCode选择 31 作为乘子?

点击上方好好学java,选择星标公众号重磅资讯、干货,第一时间送达 今日推荐:2020年7月程序员工资统计,平均14357元,又跌了,扎心个人原创100W+访问量博客:点击前...

好好学java 303

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

上一篇: SQL Server 2000常用操作疑难21问,入门必备
MiracleWorker
博客等级 码龄19年 3粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值