知识屋:更实用的电脑技术知识网站
所在位置:首页 > 教育

JAVA 基础知识(二)

发表时间:2022-03-24来源:网络

JAVA 基础知识(二)

文章目录

JAVA 基础知识(二)一、进制二、进制转换法三、原码,反码,补码四、变量五、隐形转换六、强制转换七、常用的ASCII码八、字符九、运算符9.1 算数运算符9.2 赋值运算符9.3 关系运算符

一、进制

进制:就是一种进位制

就是进位制,是人们规定的一种进位方法。 对于任何一种进制–X进制,就表示某一位置上的数运算时是逢X进一位。
二进制就是逢二进一,八进制是逢八进一,十进制是逢十进一,十六进制是逢十六进一。

二进制数据:由0 1组成 以0b开头

八进制数据:由0-7组成 以0开头

十进制数据:由0-9组成 整数默认是十进制的

十六进制数据:0-9 A-F组成 0x100 以0x开头

二、进制转换法

位权展开法

8421码是最常用的BCD码

三、原码,反码,补码

计算机底层运算时,他用的是补码来运算的,我们看到的是原码一个数据的二进制表现形式,但是会有符号位最高位作为符号位:0表示正数,1表示负数;其余作为数值位正数的原码反码补码,都是一样的负数的反码:在其原码基础上,符号位不变,其余位取反,1变0,0变1.负数的补码:在其反码的基础上,末位+1

四、变量

变量:在程序执行过程中,其值可以发生变化的量;

变量,其实就是在内存中开辟一小块空间。

Java中变量的定义方式:数据类型 变量名=值

生活中的例子:苹果的价格 price=3.5/kg price=2.5/kg

数据类型:限定这个数据的范围,限定你是何种类型数据类型:基本数据类型 和 引用数据类型基本的数据类型:四类八种整数型 byte 占1个字节(8bit) 所代表的整数范围 -128(只有补码 10000000)----- 127 思考:为什么 byte范围是-128-----127 呢?short 占2个字节(16bit) -2^15~ 2^15 - 1int 占四个字节(32bit) -2^31 ~ 2^31 - 1long 占8个字节(64bit) -2^63 ~ 2^63 - 1浮点型 float 占4个字符(32bit) -3.40310^38 ~ 3.40310^38double 占8个字节(64bit) -1.79810^308 ~ 1.79810^308布尔型 boolean 占1个字节字符型 char 占2个字节 2(16bit) 使用单引号,引起来的单个字符。0 ~ 2^16 - 1 = 65535定义变量的注意事项 在同一作用域不能定义同名变量,所谓作用域,指的是,同一对大括号,用扩起来的范围。变量必须赋值才能使用定义float类型的变量练习1:class BianLiang{ public static void main(String[] args) { //变量名,符合我们之前的通用规则人,一般小写,studentName byte a=-128; byte b=127; short c=300; int d=20000; //定义long类型的变量,注意值的后面加上一个后缀L表示这是一个long类型的值 long num=200000L; //定义float类型的变量时,注意值的后面加上一个后缀F表示这是一个float类型的值 float f=3.14F; double price=5.2; //定义布尔类型的变量,值就俩个 true 和 false boolean flag=true; boolean falg2=false; //定义字符类型的变量,注意只是单引号引起来的单个字符 char ch='a'; char ch2='好'; //根据变量名,来输出不同的值 System.out.println(a); System.out.println(b); System.out.println(c); System.out.println(d); System.out.println(num); System.out.println(f); System.out.println(price); System.out.println(flag); System.out.println(falg2); System.out.println(ch); System.out.println(ch2); } } 练习2:class BianLiang2{ public static void main(String[] args) { //定义变量的注意事项 //1.在同一作用域里面,所扩充起来的范围。 //作用域:同一对大括号,所括起来的范围。 int a=100; //int a=100;报错 a=200;//重新赋值 int num; //2.变量必须赋值,才能使用 num=20; System.out.println(num); System.out.println(a); } }

五、隐形转换

class DataType{ public static void main(String[] args) { byte a=1; byte b=2; short c=3; long d=1L; float f=3.2F; //double g=1.2; //数据类型的隐形式转换(数据类型的自动提升) //当byte short char 类型的变量,在参与运算时,会自动提升为int类型, //如果还有 long float double 类型的变量参与运算则会相应的提升为 long float double 类型 //byte1个字节 //int 4个字节 //long8个字节float4个字节float所表示的范围要比long表示的范围要大 float sum=a+b+c+d+f; System.out.println(sum); } }

六、强制转换

class DataType2{ public static void main(String[] args) { byte a=125; byte b=118; //如果你一定要拿一个字节来接收结果,可以,你可以进行强制类型转换 //强制类型转换:丢弃掉多余字节,只保留目标字节,这样做,有可能会造成精度损失。一般不建议使用,除非你有特殊需求 byte sum=(byte)(a+b); //byte参与运算结果提升为int类型,是4个字节,那么你要强转成byte类型,那就会丢弃前三个字节,保留一个字节。 System.out.println(sum); double num=5.23528; int n=(int)(num); //把double类型,强转成int类型,就会丢弃掉小数部分。 System.out.println(n); } } 强制转换的格式 目标数据类型 变量名=(目标数据类型)(被转换的数据);class DataType3 { public static void main(String[] args) { //整数默认是int类型,小数默认是double类型 System.out.println(200); System.out.println(3.25); float f=3.25F; //加后缀 //或者这样写 float f2=(float)3.5888; System.out.println(f); System.out.println(f2); // byte b =130; 报错,超过了byte所代表的整数范围 byte b =(byte)130; System.out.println(b); // -126 } } class DataType4{ public static void main(String[] args) { byte b1 = 3; byte b2 = 4; //类型的隐式转换 //byte b3 = b1 + b2; 报错 //常量优化机制,当多个常量参与运算,他会把结果先算出来,看有么有在这个数据类型的范围内,如果在就不报错,不在就报错了 byte b4 = 3 + 4; System.out.println(b4); char ch='你'; //Unicode编码 GBK(ANSI) 一个汉字占两个字节,char类型也就是两个字节,所以就可以 System.out.println(ch); //数据类型的隐式转换(数据类型的自动提升) //当 byte short char 类型的变量,在参与运算时,会自动提升为int类型, //如果还有 long float double 类型的变量参与运算则会相应的提升为 long float double 类型 char ch1='a'; //97 英文字符在参与运算时,会对照ASCII码表中该字符的10进制值 //记住 'a' 97 'A' 65 '0' 48 int sum=ch1+1; System.out.println(sum); //98 } }

七、常用的ASCII码

‘0’ 48 ‘A’ 65 ‘a’ 97

为了便于查询,以下列出ASCII****码表:第128~255号为扩展字符(不常用)ASCII码键盘ASCII 码键盘ASCII 码键盘ASCII 码键盘27ESC32SPACE33!34"35#36$37%38&39’40(41)42*43+44’45-46.47/48049150251352453554655756857958:59;6063?64@65A66B67C68D69E70F71G72H73I74J75K76L77M78N79O80P81X89Y90Z91[92\93]94^95_96`97a98b99c100d101e102f103g104h105i106j107k108l109m110n111o112p113119w120x121y122z123{124|125}126~

八、字符

运算符、拼接符,傻傻分不清楚

+号的作用作用1:充当相加的作用,也就是个数学运算符作用2:起拼接符的作用,当+号运算俩端,只要任意一端是个字符串,就会起拼接作用,把俩端内容拼接起来 System.out.println("5+5="+5+5);//5+5=55 System.out.println(5+5+"=5+5");//10=5+5

九、运算符

运算符:对变量或常量进行运算的符号 算术运算符赋值运算符比较运算符逻辑运算符位运算符三元运算符

9.1 算数运算符

学到这,晚上睡觉都睡不着😭😭,各种++,–,一起先来看看概念吧

++,–运算符的作用:自加(++)自减(–)运算

++:自加。对原有的数据进行+1

–:自减。对原有的数据进行-1

–;++;单独使用时,放前后没有区别;

混合使用时:++放在后面,先使用,后运算,++放在前面,先运算后使用

好了,看着概念是不是很简单,让我们先来练练题

int a=1; int b=2; a++; ++b; System.out.println(a++);//a=2 System.out.println(++b);//b=4 最基础的,是不是很简单,俺们继续:int a=9; a++; ++a; System.out.println(++a+a++);//24 接着来了哦int a=2; a++; System.out.println(++a+a++);//7 System.out.println(a++);//5 System.out.println(a++);//6 int i=5; int a=++i+(i++)+(i++)+(i++)+(++1)+(++1); System.out.println(i);//49 naoguazi是不是嗡嗡的,让我们继续int x=10,y=10; System.out.println((x++)>10?(++y+(++x)):(--y+--x));//19

以上习题特别感谢@naoguaziteng提供, 在不了解三元运算符的时候,上面最后一题让我百思不得其解;

还有,我们接着继续;int a = 10; int b = 10; int c = 10; a = b++; c = --a; b = ++a; a = c--; //a=9 //b=10 //c=8 终极习题:int y=1; int r=1+(y++)+10-(++y)+2-(y--)+1+(--y)+5; System.out.println(r);//r=15 System.out.println(y);//y=1

练习就到这里了,搞了这么多题,想必现在脑瓜子嗡嗡的吧,别急,慢慢来,以后如果有遇见更有意思的题会跟大家分享

9.2 赋值运算符

赋值运算符都有哪些?=,+=,-=,*=,/=,%=基本的赋值运算符:=把=右边的数据赋值给左边。赋值运算符要求左边的数据必须是一个变量int y=10; y=y+5; //等价于 y+=5;

9.3 关系运算符

== ,!= , < , > , = , instanceof;无论你的操作是简单还是复杂,结果是boolean类型。class BJYSF { public static void main(String[] args) { //A:比较运算符有哪些 //== ,!= , < , > , = , instanceof(后面讲解) // == 和 = 的区别 //比较运算符的运算结果,是布尔类型 int x=20; int y=10; boolean b=510); System.out.println(x==y); } }


是复杂,结果是boolean类型。

class BJYSF { public static void main(String[] args) { //A:比较运算符有哪些 //== ,!= , < , > , = , instanceof(后面讲解) // == 和 = 的区别 //比较运算符的运算结果,是布尔类型 int x=20; int y=10; boolean b=510); System.out.println(x==y); } }

收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜