IT兄弟连 Java语法教程 Java语法基础 经典面试题
1.Java语言中有几种基本类型?分别是什么?请详细说明每种类型的范围以及所占的空间大小?
Java语言中有8中基本类型,分别是代表整形的byte、short、int和long,代表浮点型的float和double,代表字符的char已经代表布尔型的boolean。
byte: 8位二进制,−27~27−1。
short: 16位二进制,−215~215−1。
int: 32位二进制,−231~231−1。
long: 64位二进制,−263~263−1。
float: 32位二进制,−3.4*1038~3.4*1038。
double: 64位二进制,−1.7*10308~1.7*10308。
char: 16位二进制,0~65535。
boolean: boolean类型比较特殊,因为只表示true和false,所以理论上只需要1个字节使用0和1即可表示。
2.什么是变量?
当需要在程序中记录单个数据内容时,使用一个变量来记录即可,而变量的本质就是在内存中申请一块存储区域,并且该区域中的数据内容可以发生改变,因此得名为变量。由于存储的数据内容不同导致所需的内存空间大小不同,在Java语言中使用数据类型的概念加以描述,并指定该区域一个变量名的概念来记录地址信息。
3.标识符(变量名)的命名规则?
Java中标识符由字母、数字、下划线以及美元符号组成,其中的数字不能开头,因为Java中可以使用数字字面量,如果使用数字开头编译器会误以为这是数字字面量而不是标识符。
Java中标识符不能与Java中的关键字相同,JavaSE 8包含了50个关键字,关键字就是Java语言中用于表示特殊含义的单词。
Java中标识符严格区分大小写。
Java中标识符的长度没有限制,但是不推荐使用过长的标识符。
Java中标识符支持中文,但是强烈不推荐使用中文。
4.单个字节(8位二进制)表示的十进制整数范围?
在计算机中单个字节占用8个二进制位,最高为代表符号为,表示正负数。
正整数的单个字节表示的二进制范围是:0000 0000~0111 1111。
使用加权法,让二进制的每个数字乘以当前位的权重,再将所有乘机累加在一起得到十进制数。
0000 0000 => 0
0111 1111 => 0*27 + 1*26 + 1*25 + 1*24 + 1*23 + 1*22 + 1*21 + 1*20
=> 64 + 32 + 16 + 8 + 4 + 2 + 1
=> 127
负整数的单个字节表示的二进制范围是:1000 0000 ~ 1111 1111。
负二进制转十进制先将二进制数减1再按位取反,然后采用加权法合并为十进制整数,最后添加负号。
1000 0000 => 减1:0111 1111
=> 按位取反:1000 0000
=> 转换十进制:128
=> 添加负号:-128
1111 1111 => 减1:1111 1110
=> 按位取反:0000 0001
=> 转换十进制:1
=> 添加负号:−1
所以单个字节表示的十进制整数范围是:−128~127。
5.在Java语言中如何表示一个字符?在Java语言中如何表示一个中文字符?
在Java语言中,使用char类型表示一个字符,Java语言规范中,char占两个字节16个二进制位。char其实是一个无符号的整数类型,范围是0~65535,不过Java底层使用Unicode字符集支持世界上所有的字符,所以在Java中char类型被专门用来表示Unicode字符编码而不是整数。Unicode中包含了中文字符,所以在Java中也可以使用char表示一个中文字符。
6.什么是数据类型转换?数据类型转换有几种方式?
数据类型转换就是一种类型的数据转换成另一种类型的数据。在Java中数据类型之间的转换分为两类:
自动类型转换:自动类型转换是指数据从小范围到大范围之间的转换,不需要人为干涉便自动完成转换。
强制类型转换:强制类型转换是指数据从大范围到小范围之间的转换,需要在变量名前使用“(数据类型)”的方式进行强制类型转换。强制类型转换可能会造成数据的丢失。
7.前++/--和后++/--有什么区别?
+表示加法运算符,++表示自增运算符,++会让变量本身的值加1然后再赋值给该变量。++i/i++就等于i = i+1。
-表示减法运算符,--表示自减运算符,--会让变量本身的值减1然后再赋值给该变量。--i/i--就等于i = i-1。
前++/--或后++/--如果在表达式中出现,那么前++/--是先将变量值加1/减1然后再使用该变量,后++/--是先使用该变量,然后使该变量值加1/减1。如果单独使用前++/--或后++/--,它们使没有区别的。
&和&&在逻辑运算符中都表示逻辑与的意思,相当于“并且”,只有运算符两边的结果都为真,最终的结果才为真,如果其中有一个表达式的结果为假,那么整个表达式的结果就为假。使用&会计算两侧表达式的值,而使用&&时,如果左侧表达式的值已经可以决定整个表达式的值时(左侧表达式的结果为假时,那整个表达式的值就一定为假),就不会计算第二个表达式的值。
IT兄弟连 Java语法教程 Java语法基础 经典面试题的更多相关文章
- IT兄弟连 Java语法教程 Java开发环境 JVM、JRE、JDK
要想开发Java程序,就需要知道什么是JVM.JRE以及JDK.JVM是运行Java程序的核心,JRE是支持Java程序运行的环境,而JDK是Java开发的核心,下面我们分别具体介绍它们以及它们之间的 ...
- IT兄弟连 Java语法教程 Java平台的版本划分
自从Sun公司推出Java以来,就力图使之无所不能.Java发展至今,按应用范围划分为3个版本,即Java SE.Java EE和Java ME,也就是SunOne(Open Net Environm ...
- IT兄弟连 Java语法教程 Java语言入门 典面试题
1.请说明JVM.JRE和JDK是什么?它们有什么关系? JVM是Java虚拟机,Java Virtual Machine的缩写,是一个虚构出来的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实 ...
- IT兄弟连 Java语法教程 Java语言的其他特性
Java语言中除了非常重要的跨平台特性外,还有如下几个关键特性: ● 语法简单易学 Java语言的语法简单明了,容易掌握,而且是纯面向对象(OOP)的语言,Java语言的简单性主要体现在以下几个方面 ...
- IT兄弟连 Java语法教程 Java的发展历程
只有少数几种编程语言对程序设计带来过根本性的影响.其中,Java的影响由于迅速和广泛而格外突出.可以毫不夸张的说,1995年Sun公司发布的Java1.0给计算机程序设计领域带来了一场变革.这场变革迅 ...
- IT兄弟连 Java语法教程 Java语言背景
驱使计算机语言革新的因素有两个:程序设计技术的改进和计算环境的改变.Java也不例外.在大量继承C和C++的基础之上,Java还增加了反应当前程序设计技术状态的功能与精华.针对在线环境的蓬勃发展(In ...
- IT兄弟连 Java语法教程 Java开发环境 配置Java环境变量
在安装完JDK后,我们需要配置系统的环境变量,否则在控制台中使用JDK为我们提供的工具时将出现如图12所示的错误信息. 图12 未配置环境变量时执行java命令提示的错误信息 当出现这样的提示信息时 ...
- IT兄弟连 Java语法教程 Java开发环境 安装JDK
因为我们要开发Java程序,所以必须在我们的计算机中安装Sun(Oracle)公司提供给我们的JDK.目前最新版本的JDK是JDK 10,但是我们以学习JDK 8为主,所以我们要安装的版本是JDK 8 ...
- IT兄弟连 Java语法教程 Java语言的跨平台特性
什么是平台 Java是可以跨平台的编程语言,那么首先我们需要知道什么是平台,通常我们把CPU与操作系统的整体称为平台. CPU大家都知道,是计算机的大脑,它既负责思维运算,又负责计算机中各种零部件的命 ...
随机推荐
- 「漏洞预警」Apache Flink 任意 Jar 包上传导致远程代码执行漏洞复现
漏洞描述 Apache Flink是一个用于分布式流和批处理数据的开放源码平台.Flink的核心是一个流数据流引擎,它为数据流上的分布式计算提供数据分发.通信和容错功能.Flink在流引擎之上构建批处 ...
- 《软件安装》VMware 安装 centos8
上期问题回顾 搞技术的同学应该都听过docker,那么请问docker和虚拟机有什么区别呢? 传统的虚拟机架构是:物理机 -> 宿主机操作系统 -> Hypervisor支持 -> ...
- 数据结构导论 四 线性表的顺序存储VS链式存储
前几章已经介绍到了顺序存储.链式存储 顺序存储:初始化.插入.删除.定位 链式存储:初始化.插入.删除.定位 顺序存储:初始化 strudt student{ int ID://ID char nam ...
- 粗糙集理论(Rough Set Theory)
粗糙集理论(Rough Set Theory) 一种数据分析处理理论. <粗糙集—关于数据推理的理论>. 数据挖掘(Data Mining)和知识发现(KDD). 集合近似定义的基本思想及 ...
- 2019阿里天猫团队Java高级工程师面试题之第一面
2019阿里天猫团队Java高级工程师面试题之第二面 2019阿里天猫团队Java高级工程师面试题之第三面 1.五分钟自我介绍,说说自己的擅长及拿手的技术 自我介绍是为了考察面试者的语言表达和总结概括 ...
- 基于python的yaml配置文件使用方法
一.介绍 YAML是一种简洁的非标记语言 YAML以数据为中心,使用空白.缩进.分行组织数据,从而使表达更加简洁易懂 二.基本规则 大小写敏感 使用缩进表示层级关系 禁止使用Tab缩进,只能使用空格键 ...
- Python time.time()方法
描述 Python time time()返回当前时间的时间戳. 时间戳:时间戳是指格林威治时间1970年01月01日00时00分00秒(背景时间1970年01月01日08时00分00秒)起至现在的总 ...
- go语言之if语句和switch语句和循环语句
1.if语句 package main import ( "fmt" "io/ioutil" ) func main() { //流程控制 //使用常量定义一个 ...
- Set a Many-to-Many Relationship设置多对多关系 (EF)
In this lesson, you will learn how to set relationships between business objects. For this purpose, ...
- C#中 EF 性能优化
https://www.cnblogs.com/chenwolong/p/7531955.html EF使用AsNoTracking(),无跟踪查询技术(查询出来的数据不可以修改,如果你做了修改,你会 ...