码迷,mamicode.com
首页 > 编程语言 > 详细

IT兄弟连 Java语法教程 Java语法基础 经典面试题

时间:2019-07-29 10:21:15      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:long   按位取反   运算   java语言   权重   字符编码   i++   完成   不同   

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语法基础 经典面试题

标签:long   按位取反   运算   java语言   权重   字符编码   i++   完成   不同   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!