1. 一个Java类文件中可以有几个公有类

在eclipse中测试代码时会出现上图所示的错误,此处只允许用final或abstract来修饰类,也就是一个类文件中只能有一个public修饰的类,此下对于这个问题作出一点分析。

package包主要就是用来存放类的,可以有无数个public类,对此没有个数限制,但是一个Java源文件中只能有一个public类。

java程序是从一个public类的main函数开始执行的,就像当初学习C语言时一个工程中只能有一个main函数。 只能有一个public类是为了给类装载器提供方便。如果一个类被声明为public,则它本身所在的源文件名也必须与类名相同,并且严格区分大小写。

每个编译单元都只能有一个public 类。因为每个编译单元都只能有一个公共接口,用public类来表现。该接口可以按照要求包含众多的支持包访问权限的类。如果有一个以上的public   类,编译器就会报错。 当然一个编译单元内也可以没有public类。
在一个源文件.JAVA文件中可以有很多类,只有一个public类。因为在public类中找程序的入口, 若有很多public类,计算机就找不到入口,那么程序就无法执行了。

2.Java变量遵循“同名变量的屏蔽原则”

通过两图对比可以看出,当注释掉main函数中的int number=1;时显示结果为0。

因为在此程序中,第一个number为全局变量,第二个number为局部变量。在java中局部变量可以覆盖全局变量的值,当在局部使用某个变量的时候JVM会优先找和当前使用位置近的变量定义。

3.Java中的类型转换

①byte(字节):8bits,数值范围为-128-127

②short(短整型):16bits,数值范围为-32768-32768

③int(整型):32bits,数值范围为-2147483648-2147483648

④long(长整型):64bits,数值范围为-9233372036854477808-9233372036854477808

⑤float(浮点型):32bits,数值范围为-3.40292347E+38-3.40292347E+38

⑥double(双精度):64bits,数值范围为-1.7976931486231570E+308-1.7976931486231570E+308

⑦char(字符型):16bits,数值范围为‘\u0000-u\ffff’

⑧boolean(布尔型):1bits,数值范围为true/false

上图中int指向double的箭头应为实线,而且应还有一条从long指向float的虚线箭头,此为该图中的一点错误。

Java 语言中的数据类型转换有两种:①自动类型转换:编译器自动完成类型转换,不需要在程序中编写代码。②强制类型转换:强制编译器进行类型转换,必须在程序中编写代码。

自动类型转换的转换规则为从存储范围小的类型到存储范围大的类型,不会发生精度的损失。而强制类型转换的转换规则为从存储范围大的类型到存储范围小的类型,此种转换会发生精度的损失。

4. 为什么double类型的数值进行运算得不到“数学上精确”的结果?

float 和double类型主要是为科学计算和工程计算而设计的,他们执行二进制浮点运算,这两种类型在计算机中的储存分为三部分:符号位、指数为、尾数部分。数据以二进制存储在计算机时,会出现无线循环系列,在数据转化中会出现错误。十进制不能准确的表示1/3,同样二进制不能精确的表示1/10。

double类型的数值占用64bit,即64个二进制数,除去最高位表示正负符号的位,还有63位,而我们给出的数值,在大多数情况下需要比64bit更多的位数才能准确表示出来(甚至是需要无穷多位),而double类型的数值只有64bit,后面舍去的位数一定会带来误差,无法得到“数学上精确”的结果。

5.动手动脑

语句一输出中“+”连接X和Y,计算结果是将X和Y将两数据连接。

语句二输出中“+”是运算符,对X和Y求和。

 

Java语言基础问题的更多相关文章

  1. Java学习总结(二)----Java语言基础

    1.     Java语言基础 2.1 关键字 定义:被java语言赋予特殊含义的单词 特点:关键字中的字母都为小写 用于定义数据类型的关键字 class,interface,byte,short,i ...

  2. java语言基础02

    一.Java语言基础(常量的概述和使用)(掌握) 1:什么是常量 就是在程序的执行过程中其值不发生改变的量. 2:Java中常量的分类 (1):字面值常量 (2):自定义常量(面向对象部分讲解) 3: ...

  3. Java之--Java语言基础组成—数组

    Java语言基础组成-数组 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的数组,数组 ...

  4. Java之--Java语言基础组成—函数

    Java语言基础组成-函数 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的函数,函数 ...

  5. Java之--Java语言基础组成(关键字、标识符、注释、常量和变量、运算符)

    Java语言基础组成-关键字.标识符.注释.常量和变量.运算符 Java语言由8个模块构成,分别为:1.关键字:2.标识符(包名.类名.接口名.常量名.变量名等):3.注释:4.常量和变量:5.运算符 ...

  6. Java语言基础(二) Java关键字

    Java语言基础(二) Java关键字 Java关键字比较多,我就不列举出来了,只记录一些常用的小知识点: ①Java的关键字只有小写. ②then.sizeof都不是Java的关键字,熟悉C++的程 ...

  7. Java语言基础(九)

    Java语言基础(九) 一.自增运算(++) 自减运算(--) i++ 就是将i+1再赋给 i i-- 是将i-1再赋给 i 对变量i,j来说,i++ 或++i 这里没什么区别,都是将i的值加1后,再 ...

  8. Java语言基础(八)

    Java语言基础(八) 一.数学运算  + - * /  % (1)凡是byte  short  char类型都按int类型的计算   看看上面的代码,为什么出错! 我已经将100转成byte类型,( ...

  9. Java语言基础(七)

    Java语言基础(七) 今天在公司多呆了会,回来晚了 一.自动类型转换 在Java中,数据是可以转换的  例如可以将byte类型的赋给int类型的 这里希望你了解内存的变化,例如 在这里,我想你应该知 ...

  10. Java语言基础(六)

    Java语言基础(六) 前一章提到的, BigDecimal, DecimalFormat等具体用法,这里就不在说了,网上有许多 一.下面让我们看一个例子(自由落体运动位移) 说明: (1).公式是 ...

随机推荐

  1. Linux上强制踢出其他正在登录的用户

    一.查看当前在线用户有几个 w命令 [root@pa1 nginx]#w 13:36:00 up 79 days, 23:50, 3 users, load average: 0.10, 0.07, ...

  2. el表达式用==和eq的注意事项

    eq和==一般是一样的,但是注意el表达式中使用==判断的时候不允许有空格,例如: ${job.jobName==requestScope.user.job.jobName?"selecte ...

  3. PL-SLAM

    双目 1.PL-SLAM: a Stereo SLAM System through the Combination of Points and Line Segments ubuntu14.04配置 ...

  4. AD 16 下绘图的几个技巧

    1.绘制封装如果引脚过多怎么办,使用阵列粘贴功能 首先建立一个焊盘,然后选中,使用 ctrl + c 复制,注意复制确认的时候,鼠标一定要点击到焊盘中间. 选择阵列粘贴 条款就是你要复制多少个,增量就 ...

  5. 微信token验证失败的几种情况

    最近在研究用PHP做微信开发的时候,“修改配置时”,总是遇到token验证失败的提示.历经一番查找,种种输出日志和echo,发现,如果不echo调试信息,也不写日志,就不需要ob_clean(),如果 ...

  6. sql join 语句的小总结

    CREATE TABLE Persons ( id INT PRIMARY KEY, LastName CHAR() NOT NULL, FirstName VARCHAR (), address V ...

  7. Java进阶面试题大集合-offer不再是问题

    Java基础 1.List 和 Set 的区别 2.HashSet 是如何保证不重复的 3.HashMap 是线程安全的吗,为什么不是线程安全的(最好画图说明多线程环境下不安全)? 4.HashMap ...

  8. JSP+Servlet+JavaBean实现数据库的增删改查

    基本思想:JSP文件显示页面,使用form或href超链接传值到Servlet中方法,在Servlet方法中调用Dao层的类对象,实现对数据库里的数据的增删改查,之后重新返回到JSP输出操作完的结果. ...

  9. In abstract algebra, a congruence relation (or simply congruence) is an equivalence relation on an algebraic structure (such as a group, ring, or vector space) that is compatible with the structure in

    https://en.wikipedia.org/wiki/Congruence_relation In abstract algebra, a congruence relation (or sim ...

  10. C-Free 5 安装 [Error] G__~1.EXE: (x86)\C-FREE~1\mingw\mingw32\bin\: No such file or directory

    解决[Error] g++.exe: 5\mingw\include: No such file or directory - 陆总的博客 - CSDN博客 https://blog.csdn.net ...