Java笔记Day_02

计算机存储的原理

1.CPU: 运算的[GPU:显卡中]

2.内存: 临时存储数据的[程序是在内存中执行的]

3.硬盘: 永久存储数据的//移动硬盘[1T]-->种类:固态[ssd],机械

计算机中一切皆字节-->数据都是以字节的形式存储在计算机中

文字存储在硬盘中以字节的形式存储-->编码(编写二进制码)

双击打开字符文件能看到文件内的文字-->解码(解析二进制码)

计算机中最小的存储单元: 字节, byte, B

计算机中最小的信息单元: 位, 比特位, bit, b[二进制数据 01010101010]

文本文档-->字节形式存储在硬盘上-->CPU取文件内容时[把字节-->二进制] 

字节和比特之间是有换算单位的:

        1B= 8b; (一个字节占8位)

        1KB= 1024B

        1MB= 1024KB

        1GB= 1024MB

        1TB= 1024GB

        1PB= 1024TB

                ......

数据类型

数据类型: 数据的类型

Java的数据类型的分类:

        基本数据类型

        引用数据类型[对象]

引用数据类型的基本分类:

        类[class], 接口[interface], 数组[Array], 枚举[enum], 注解[@interface], 记录[record]

        //Java中具体的引用数据类型是 无限个!

基本数据类型

Java中基本数据类型的种类:四类八种

变量定义格式: 数据类型 变量名= 初始化值;

        基本数据类型变量:int a= 100;

        引用数据类型变量:String name= "比丢";//对象: name

                                      Student stu= new Student();//对象: stu

[补]char数据类型

char类型占2个字节,所以足以存储以储存系统所用的基本字符集的编码

//如果用单引号表示char类型的变量,输出即为单引号的单个字符内容

//如果直接用数字表示char类型的变量,输出即为SCAII编码表对应的字符

//97在ASCII编码中对应字母为a,故输出a
char result = 97;
system.out.println(result);
//当数字9被当做字符用单引号输出时,就相当于String字符串直接输出一样
char result = '9';
system.out.println(result);

命名规范

命名规范 能让代码写得漂亮!

命名规范要有意识地去遵守!(君子协议)

命名规范大前提:见名知意

常见需要明明的东西:

        1.类名: 大驼峰式命名法则(每个单词的首字母大小写

                    [HelloWorld, Demo])

        2.变量名/方法名: 小驼峰式命名法则

                单个单词: 全部小写[age, name,student]

                多个单词: 第一个单词首字母小写,从第二个单词开始每个单词的首字母大写

                                [maxAge, findAllStudent]

变量

变量使用的注意事项

1.使用变量其实就是拿变量的变量名去使用

2.定义整数变量优先使用int类型,定义浮点变量优先使用double类型

3.在定义long类型变量时,需要再数值的后方加L[当long类型变量的数值还没有超过int的取值范围时,不需要在数值的后方加L]

4.变量未赋值不能直接使用

        变量新的定义格式 : 先定义后赋值 //后 : 必须在使用之前

5.可以在一句代码内定义多个同类型的变量

        数据类型 变量名1=初始化值1,变量名2=初始值2...;

         //先定义

        数据类型 变量名1,变量名2,....;

        //后赋值

        变量名1=初始化值1;

        变量名2=初始化值2;

6.在一个大括号内不可能出现同名变量

7.变量的作用域: 只在其定义的大括号内有效

变量的特性

基本数据类型变量的类型转换特性:

        1.自动提升 : 小类型的数值或者变量可以直接被大类型的变量接受

           例如 : a. long num = 1000;

                           b. int num = 10;

                                double d = num;//左边的变量数据类型>右边数值/变量的数据类型

                                                (注意 : 输出d变量的值, 看到的结果是10.0)

        2.强制转换 : 小类型的变量强制接受大类型的数值或者变量

                强制手段的格式 : 小类型 变量名 = (小类型)(大类型的数值/变量)

                例如 : a. double d = 13.14;

                               int num = d;//直接写:报错

                               int num = (int)d;//代码不会报错,但是结果是13-->精度缺失

                           b. byte b = 200;//报错

                               byte b = (byte)200;//不报错 -56-->精度缺失

                强制转换有缺陷 : 导致数据的精度缺失,所以能不强转就不强转,保持数据的原始类型

进制

进制:进位的制度[规则]

二进制 : 逢2进1 --> 0 , 1 //在二进制中10代表十进制中的2

八进制 : 逢8进1 --> 0,1,2,3,4,5,6,7 //在八进制中10代表十进制的8

十进制 : 逢10进1 -->0,1,2,3,4,5,6,7,8,9

十六进制 : 逢16进1 -->0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F//在十六进制中10代表16

进制之间的转换 : 计算器

原码 , 反码 , 补码 : 

        //此运算只针对负数

        原码 : 数值直接转换成二进制的数(10是数值2的原码)//展示结果的

        反码 : 在原码的基础上 , 符号位不变 , 1变0 , 0变1

                //符号位 : 一个二进制数最左侧的那个数字就代表符号位 -->0 : 整数 1 : 负数

                10000000 00000000 00000000 00000010 --->-2

        补码 : 在反码的基础上,对反码进行+1 //用来计算的

        整数的原反补码是一样的;

强制类型转换的本质

运算符

运算符 : 用来运算的符号

        1.算数运算符

        2.赋值运算符

        3..关系运算符

        4.逻辑运算符

        5.三元运算符

算数运算符

算数运算符 : + , - , * , / , %[取余,取模]

注意事项 :

        1.% : 求2个数相除的余数 // 5 % 3 = 2

        

        2.整数做除法结果还是整数, 想要得到小数结果, 必须有浮点数参与运算 // 1 / 2 = 0

        3.不同类型的数据做运算, 结果一定是大类型的 //规律

        4.byte , short , char 类型的变量在做运算时会自动提升至int类型 //规则

           

         short + short会自动提升为int类型,而int类型被强制转换为short,就会发生报错

         

        只要有变量参与就会有风险,故前三个都报错

        result2 = 3 + 4就相当于初始化赋值,其中3和4都是常量

char类型数据做算术运算

char类型数据做算数运算 : 在编码表中找到字符所对应的数字, 再拿数字做运算

最基础的编码表是: ASCII编码表

char类型数据因为是转换成数字之后再运算,所以加减乘除这些算数运算都可以做!!

String类型数据做加法运算

//String类型数据做加法运算
		System.out.println("Hello" + "World");//字符串相加HelloWorld
		System.out.println("Hello" + 100);//字符串加数字Hello100
		System.out.println("Hello" + 100 + 200);//按顺序字符串加数字还是字符串Hello100200
		System.out.println(100 + 200 + "World");//两个数字相加为整型,再加字符串时字符300World

自增//自减运算符

所以a = ++a;中++已经自增值赋值给了等号后面的a,在一句代码中只能对变量进行一次赋值操作,所以再次赋值给a无效

a = a++;中先将a赋值给a没什么用,后面的++其实无效

赋值运算符

关系运算符        

逻辑运算符

        //短路效果
		int b = 10;
		System.out.println(false && b++ > 10); 
		System.out.println("b : " + b);//10
		
		System.out.println(true || b++ > 10); 
		System.out.println("b : " + b);//10

双与&&双或||就比较聪明,当括号内左侧条件已经决定结果时,便不会再执行右侧条件.如代码中的两次输出b的值,均为10,没有执行++操作

二进制的逻辑运算

  • 36
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值