JAVA基础知识

xiaoxiao2021-02-28  77

一.关键字

关键字:被java 语言赋予特定含义的单词关键字的特点:组成关键字的单词全部小写常见关键字:

二.标识符

标识符:给类,接口,方法,变量等起名字时使用的字符序列标识符组成规则: 数字字符英文大小写字母$和_注意: 不能以数字开头不能是关键字区分大小写

三.注释

注释:用于解释说明的文字注释的格式: 单行注释://注释内容多行注释:/*注释内容*/文档注释:/**注释内容*/

四.常量,进制和进制转换

常量

常量:在程序执行的过程中其值不可以发生改变常量的分类: 字面值常量: 整数常量:整数或者负整数 例如:10,-1 小数常量:小数字符常量:使用单引号括起来的内容:只能包含单个字母或者数字 例如:’a’布尔型常量:只有true或者 false空常量:null 自定义常量

进制

进制:就是进位制,是人们规定的一种进位方法。 对于任何一种进制–X进制,就表示某一位置上的数运算时是逢X进一位。二进制就是逢二进一,八进制是逢八进一,十进制是逢十进一,十六进制是逢十六进一。java针对整数常量有四种进制: 二进制,八进制,十进制和十六进制不同进制组成规则: 二进制: 由0,1组成;以0b开头 八进制:由0~7组成;以0开头 十进制:由0~9组成;整数默认是十进制 十六进制:由0~9,a~f组成;以0x开头

进制转换

十进制到x进制的转换:十进制数除以x,求余数,直到商为0,最后将得到余数的顺序进行反转 例如:十进制52转换为二进制 所以52的二进制为:110100

任意进制到十进制的转换: 系数:就是每一位上的数据 基数:x进制,基数就是x 权:在右边,从0开始编号,对应位上的编号即为该位的权 结果:把系数*基数的权次幂相加即可 例如:二进制110100转换为十进制

**8421码快速转换法:**8421码是中国大陆的叫法,8421码是BCD代码中最常用的一种。在这种编码方式中每一位二进制中代码的1都是代表一个固定数值 用法:二进制—>十进制的快速转换

110100:32+16+4=52

  十进制—>二进制的快速转换

52=32+16+4

二进制转换到八进制,十六进制:

十进制作为桥梁二进制—>(8421码)十进制—>八进制/十六进制二进制—>八进制:三位为一组,求对应十进制,组合在一起得到其八进制二进制—>十六进制:四位为一组,求对应十进制,组合在一起得到其八进制

五.变量

变量:在程序执行的过程中,在某个范围内其值可以发生改变的量格式:数据类型 变量名 = 初始化值;定义变量的注意事项: 定义变量必须在某一个作用域内去定义 {里面去定义}变量名只能被定义一次,多次编译不通过同一行可以定义多个变量,但是不建议这样去做.书写不规范定义变量,并且没有初始化值,那么一定要在使用(输出这个变量)之前,给它进行赋值,否则报错!

六.数据类型和类型转换

数据类型: Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间 由于整数是默认int类型,超出int类型的范围用long类型去接收,所以必须数据的末尾加上L或者l(建议使用大写L) 浮点类型中的float,浮点类型默认是double,所以,一般情况建议在默认去写上大写F

double d = 12.345 ; float f = d ; 错误:必须强制类型转换才能不报错,因为浮点类型默认double,用小范围数据类型去接收大范围的数据类型是不可以的! float f1 = (float)12.345 ; float f2 = 12.345f; f1其实就是将一个double类型的数据强制转换为float类型 f2其实本身就定义的是一个float类型

类型转换: byte,short,char—>int—>long—>float—>double 前三者之间相互不转换,但是一旦参与运算,前三者首先会转换int类型

byte b1=3,b2=4,b; b=b1+b2; b=3+4; 哪句是编译失败的呢?为什么? b=b1+b2是错误的; byte,short,char相互不转换,但是一旦参与运算,前三者首先会转换 int类型 int是4个字节,bite是一个字节去接收肯定报错,应强制类型转换 b=(byte)(b1+b2) 变量相加:先看数据类型,看是否有默认转换,若有则必须强制类型转换 常量相加:先相加,然后得到结果看其是否在byte(-128-127之内),在的话 就不会报错

byte b = 130;有没有问题?若有问题,如何改正?改正后输出多少? byte类型范围为(-128~127)超出范围,有问题,应强制类型转换 byte b=(byte)130; 130:原码->00000000 00000000 00000000 10000010   反码->00000000 00000000 00000000 10000010   补码->00000000 00000000 00000000 10000010 130强制转化为byte类型,截取3个字节:10000010(补码) 10000010(最高位为1,为负) 符号位  数值位  1   0000010(补码)   1    0000001(反码)   1    1111110(原码)   -    126 因此,最后输出-126


七.运算符

A:算术运算符

正号:+3负号:-3加(+),减(-),乘(*),除(/)除:取整求余(%):3%4=3字符串拼接(+): public class Test {   public static void main(String[] args) {     System.out.println("hello"+2);   } } 输出结果:hello2自增(++): ++单独使用:无论前缀++(++7)还是后缀++(7++),都增1 ++参与运算:前缀++,先自增1,在运算       后缀++,先运算,在自增1             自减(–): --单独使用:无论前缀–(–7)还是后缀–(7–),都减1 --参与运算:前缀–,先自减1,在运算      后缀–,先运算,在自减1       

B.赋值运算符

基本赋值运算符(=):把等号右边的值赋值给等号左边的变量扩展的赋值运算符(+=,-=,*=,/=,%=):把符号的左边的值和右边的值相加,赋值给左边

short s = 1 ; s = s+ 1; short s = 1 ; s += 1 ; 上面两个代码有没有问题,如果有,哪里有问题. 第一个有问题:隐含了一个默认类型转换类型不匹配 第二个没有问题:扩展的赋值运算符隐藏了强制类型转换

C.比较运算符

比较运算符(>,>=,<,<=,!= ,==)无论表达式是否复杂的还是简单的,最终结果都是boolean类型 4<x<6:java语言中不能这样写(4<x && x>6)

D.逻辑运算符

逻辑运算符:可以连接某个值或者某一个表达式基本的逻辑运算符: 逻辑与(&):有false则false逻辑或(|):有true则true逻辑异或(^):相同false,不同true逻辑非(!):非false则true,非true则false

扩展的逻辑运算符:

逻辑双与(&&)

逻辑与和逻辑双与的区别? 共同点:两个表达的效果是一样的(有false则false) 短路效果: 逻辑双与具有短路效果:左边的表达式如果是false,则右边不执行

逻辑双或(||)

逻辑或和逻辑双或的区别? 共同点:两个表达的效果是一样的 短路效果 具有短路效果,左边如果是true,右边不执行.

E.位运算符

^:特点:一个数据被另一个数据位异或两次,其值本身不变

F.三目运算符

格式:(表达式) ? 表达式1 : 表达式2;执行流程:先判断表达式是否成立,如果成立,把表达式1作为结果;如果不成立,把表达式2作为结果
转载请注明原文地址: https://www.6miu.com/read-56286.html

最新回复(0)