欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java基础第一天

程序员文章站 2022-07-10 20:58:29
一:java不同进制数据的表现形式 二进制表示形式前面加0b(b可以大写也可以小写) 八进制表示形式前面加0 十六进制表示形式前面加0x 任意进制到十进制的转换图解 十进制到十进制的转换 12345 = 10000 + 2000 +300 + 40 + 5 =1 *10^4 + 2 *10^3 + ......

一:java不同进制数据的表现形式

二进制表示形式前面加0b(b可以大写也可以小写)

八进制表示形式前面加0

十六进制表示形式前面加0x

任意进制到十进制的转换图解

十进制到十进制的转换

12345  = 10000 + 2000 +300 + 40 + 5

      =1 *10^4 + 2 *10^3 + 3 *10^2 +4 *10^1 + 5 *10^0

原理:

*系数:就是每一位上的数据。

*基数:X进制,就是X基数。

*权:在右边,从0开始编号,对应位上的编号即为垓位的权。

*结果:把系数*基数的权次幂相加即可

举例:二进制转十进制 0b100

0b为标识代表是二进制  系数为1,0,0  基数看标识为二进制所以基数为2  权就是2,1,0

结果:1* 2^2 + 0* 2^1 + 0* 2^0 = 4

八进制转十进制 0100

0为标识代表是八进制  系数为1,0,0  基数看标识为八进制所以基数为8  权就是2,1,0

结果:1* 8^2 + 0* 8^1 + 0* 8^0 = 64

十六进制转十进制 0x100

0x为标识代表是十六进制  系数为1,0,0  基数为16  权是2,1,0

结果:1* 16^2 + 0* 16^1 + 0* 16^0 = 256

 

十进制转换为任意进制

原理:除(任意进制的)积倒取余数

 

原码补码反码

*原码 

就是二进制定点表示法,既最高位为符号位,“0”表示正,“1”表示负数,其余表示数值的大小

*反码

正数的反码与其原码相同;负数的反码就是对其原码逐位取反,符号位不变

*补码

正数的补码与其原码相同;负数的补码是在其反码的末位加1

 

二:变量的概述及格式

A:什么是变量

*Java语言是强类型语言,对每一种数据都定义了明确的数据类型,在内存总分配了不同大小的内存空间

B:Java中数据类型的分类

*基本数据类型

*引用数据类型

C:基本数据类型分类(4类8种)

*整数型:

byte 占一个字节 -128到127

short 占两个字节 -2^15到2^15-1

int 占四个字节 -2^31到2^31-1

long 占八个字节 -2^63到2^63-1

*浮点型

float 占四个字节 -3.403E38到3.40eE38  单精度

double 占八个字节 -1.798E308到-1.798E308  双精度

*字符型

char 占两个字节 0到65535

*布尔型

boolean理论上是占八分之一个字节,因为一个开关就可以决定是True和False,但是Java中boolean类型没有明确的指定他的大小

 1 //DateTyoe数据类型
 2 public class DateType {
 3     public static void main(String[] args) {
 4         //整数类型
 5         byte b = 10;    //占一个字节,-128~127
 6         short s = 20;    //占两个字节
 7         int i = 30;        //占四个字节
 8         long x = 88888888888888L;    //占八个字节 如果long类型后面加L进行标识最好加大写L,因为小写l太像一了
 9         System.out.println(b);
10         System.out.println(s);
11         System.out.println(i);
12         System.out.println(x);
13         
14         
15         //浮点类型
16         float f = 12.3F;        //占四个字节
17         double d = 33.4;    //占八个字节    小数默认的数据类型是double
18         System.out.println(f);
19         System.out.println(d);
20         
21         //字符类型
22         char c = 'a';    //占两个字节
23         System.out.println(c);
24         
25         //布尔类型
26          boolean b1 = true;
27          boolean b2 = false;
28          System.out.println(b1);
29          System.out.println(b2);
30     }
31 }

使用变量的主要事项:

*作用域问题

同一个区域不能使用相同的变量命

*初始化值问题

局部变量在使用之前必须赋值

*一条语句可以定义几个变量

int a,b,c...;

数据类型之隐式转换和强势转换:

隐式转换案列:

A:int + int

B:byte + int 结果分别用byte和int类型接受,看效果

*Java有默认的转换规则

强制转换案例:

A:强制转换问题

*int a =10;

*byte b = 20;

*b = a + b;

B:强制转换格式

*b = (byte)(a + b);

C:

变量和常量相加的坑

 1 public class DateType {
 2     public static void main(String[] args) {
 3     byte b1 = 3;
 4     byte b2 = 4;
 5     byte b3 = b1 + b2;
 6     
 7     System.out.println(b3);
 8     /*从两方面
 9      1、byte与byte(或short,char)进行运算的时候会提升为int类型,两个int类型相加结果是int类型
10      2、b1和b2是两个变量,变量储存的值是变化的,在编译的时候无法判断里面具体的值,相加有可能会超过byte的取值
11      */
12     byte b4 = 3 + 4;
13     System.out.println(b4);
14     //3和4都是常量,Java编译器有常量优化机制,就是在编译的时候直接把3和4的结果赋值给b4了
15     }
16 }

long与float的取值范围谁大谁小

*进行混合运算的时候,byte,short,char不会相互转化,都会自动类型提升为int类型,其他类型进行混合运算的时候是小的数据类型提升为大的

*byte,short,char -- int -- long -- float -- double

*long:8个字节

*float:4个字节

*IEEE754

*4个字节是42个二进制位

1位是符号位

8位是指数为

00000000 11111111

0到255

1到254

-126到127

23位是尾数为

每个指数为减去127

*A:他们底层存储结构不同。

*B:float表示的数据范围比long的范围要大

*long: 2*63-1

*float:3.4*10^38 > 2*10^38 >2*8^38 =2*2^3^38=2*2^114>2^63-1

字符和字符串参与运算

1 public class DateType {
2     public static void main(String[] args) {
3     System.out.println('a'+1); //98,因为有ASCII码表,a字符对应的是int类型的97
4     System.out.println((char)('a'+1));//相加后等于98,98在ASCII码表对应的是b
5     
6     System.out.println("hello"+'a'+1);  //任何数据类型用➕与字符串相连接都会产生新的字符串
7     System.out.println('a'+1+"hello");
8     }
9 }

char字符类型

A:char c = 97;  0到65535

B: java语言中的字符char可以存储一个中文汉字吗?为什么?

可以。因为Java语言采用的是Unicode编码。Unicode编码中的每个字符占用两个字节。中文也是占用两个字节

所以Java中的字符可以存储一个中文汉字

算术运算符的基本用法

A:什么是运算符

*就是对常量和变量进行操作的符号。

B:运算符的分类

*算术运算符,赋值运算符,比较(关系或条件)运算符,逻辑运算符,位运算符,三目(元)运算符

C:算术运算符的分类

* +,-,/,%,++,--

D:注意事项

a:+号在Java中有三种作用,代表正号,做加法运算,字符串的连接符

b:整数相除只能得到整数。如果想得到小数,必须把数据变化为浮点数类型

c:/获取的是除法操作的商,%获取的是除法操作的余数

%运算符

当左边的绝对值小于右边绝对值时,结果是左边

当左边的绝对值大于右边绝对值时,结果是余数

当左边的绝对值等于右边绝对值时,结果是0

%运算符结果的符号只和左边有关系,与右边无关

任何一个正整数%2结果不是0就是1可以用来当作切换条件

算术运算符++和--的用法

a:单独使用:

*放在操作数的前面和后面效果一样

举例: int a = 3; a++相当于a = a + 1 ,++a也相当于a = a + 1

b:参与运算使用:

*放在操作数的前面,先自增或者自减,然后再参与运算。

*放在操作数的后面,先参与运算,再自增或者减。

赋值运算符的基本用法

A:赋值运算符有哪些

*基本的赋值运算符:=

把=右边的数据赋值给左边。

b:扩展的赋值运算符啊:+=,-=,*=,/=,%=

+=把左边和右边做加法,任何赋值给左边

关系运算符的基本用法及其注意事项

A:关系运算符有哪些(比较运算符,条件运算符)

*==,!=,>,>=,<,<=

注意事项

*无论你的操作是简单还是赋值,结果是boolean类型

*“==”不能写成“=”