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。如果单独使用前++/--或后++/--,它们使没有区别的。

&和&&在逻辑运算符中都表示逻辑与的意思,相当于“并且”,只有运算符两边的结果都为真,最终的结果才为真,如果其中有一个表达式的结果为假,那么整个表达式的结果就为假。使用&会计算两侧表达式的值,而使用&&时,如果左侧表达式的值已经可以决定整个表达式的值时(左侧表达式的结果为假时,那整个表达式的值就一定为假),就不会计算第二个表达式的值。

原文地址:https://www.cnblogs.com/itxdl/p/11261968.html

时间: 2024-11-08 09:50:53

IT兄弟连 Java语法教程 Java语法基础 经典面试题的相关文章

IT兄弟连 Java语法教程 Java语言背景

驱使计算机语言革新的因素有两个:程序设计技术的改进和计算环境的改变.Java也不例外.在大量继承C和C++的基础之上,Java还增加了反应当前程序设计技术状态的功能与精华.针对在线环境的蓬勃发展(Internet),Java为高度的分布式体系结构提供了流水线程序设计的功能. Java是1991年由Sun Microsystems(曾经2000亿美元全球市值第一,google市值第二但是只有300多亿美元,而同期的苹果公司市值只有不到100亿美元.当今苹果公司万亿市值也是全球第一唯一万亿市值的上市

java学习之路--简单基础的面试题

1.面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: 1)抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么. 2)继承:继承是从已有类得到继承信息创建新类的过程.提供继承信息的类被称为父类(超类.基类):得到继承信息的类被称为子类(派生类). 3)封装:通常认为封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面.面向对象的本质就是将现实世界描绘成一系列完全自治.封闭的对象.

Java高级教程 Java微服务架构(Spring Boot + Spring Cloud)

下载链接:https://www.yinxiangit.com/531.html 原文地址:https://www.cnblogs.com/bingerger/p/11629011.html

Java集合框架梳理(含经典面试题)

Java Collections Framework是Java提供的对集合进行定义,操作,和管理的包含一组接口,类的体系结构. 1. 整体框架 Java容器类库一共有两种主要类型:Collection和Map.层次结构如下: 蓝色椭圆框为接口类(不可实例化),黑色矩形框为实现类或子类. java.util.Collection [I] +--java.util.List [I] +--java.util.ArrayList [C] +--java.util.LinkedList [C] +--j

Java 简明教程

本文为 Java 的快速简明教程,主要用于快速了解.学习和复习java的语法特点. // 单行注释 /* 多行注释 */ /** JavaDoc(Java文档)注释是这样的.可以用来描述类和类的属性. */ // 导入 java.util中的 ArrayList 类 import java.util.ArrayList; // 导入 java.security 包中的所有类 import java.security.*; // 每个 .java 文件都包含一个public类,这个类的名字必须和这

千锋《Java高级教程+分布式+springcloud+微信支付》

课程目录:├─千锋Java高级教程-cas单点登录(完结-8集)│      01单点登录介绍│      02cas介绍│      03tomcat搭建https│      04cas server搭建│      05Cas 配置 jdbc 连接数据库│      06Cas 密码 MD5值│      07 Cas 整合shiro1│      07 Cas 整合shiro2│      ├─千锋Java高级教程-dubbo+zookeeper分布式系统架构基础(11集)│      

Java Reflection 教程

转载自 并发编程网 – ifeve.com Java反射机制可以让我们在编译期(Compile Time)之外的运行期(Runtime)检查类,接口,变量以及方法的信息.反射还可以让我们在运行期实例化对象,调用方法,通过调用get/set方法获取变量的值. Java反射机制功能强大而且非常实用.举个例子,你可以用反射机制把Java对象映射到数据库表,就像Butterfly Persistence(译者注:原作者所编写的框架)所做的那样,或者把脚本中的一段语句在运行期映射到相应的对象调用方法上,就

IT兄弟连 Java语法教程 流程控制语句 分支结构语句1

不论哪一种编程语言,都会提供两种基本的流程控制结构:分支结构和循环结构.其中分支结构用于实现根据条件来选择性地执行某段代码,循环结构则用于实现根据循环条件重复执行某段代码.Java同样提供了这两种流程控制结构的语法,Java提供了if和switch两种分支语句,并提供了while.do-while和for三种循环语句.除此之外,JDK5还提供了一种新的循环:foreach循环,能以更简单的方式来遍历集合.数组的元素.Java还提供了break和continue来控制程序的循环结构. 分支结构语句

IT兄弟连 Java语法教程 编写Java源代码

现在我们来一步一步的编写第一个Java程序,鼎鼎大名的“HelloWorld”. 编写Java源代码 编写Java源代码可以使用任何无格式的文本编辑器,在Windows操作系统上可以使用记事本.Edit Plus等程序. 编写Java程序不要使用写字板,更不可使用Word等文档编辑器,因为写字板.Word等工具是有格式的编辑器,当使用它们编辑一份文档时,这个文档中会包含一些隐藏的格式化字符,这些隐藏的字符会导致程序无法正常编译和运行. 在C盘中新建java文件夹,在java文件夹中使用鼠标右键新