JavaSE(二)

无IDE(集成开发工具)写Java的一些Tip

  1. 用notpadd++或者其他非电脑自带记事本学习java时碰到这种情况在这里插入图片描述原因:windows默认的编码是GBK,记事本中选择的是UTF-8,编码方式不一样自然识别不出来
    解决:1 更换系统的默认编码,2 更换记事本的首选编码为ANSI(与系统保持一致)
  2. 大小写的问题:
    (1) 源文件名. java的大小写问题
    源文件名不区分大小写,但是我们强烈建议大家还是注意大小写
    (2) 字节码文件名(类名)
    严格区分大小写的
    (3) 代码中大小写问题
    严格区分大小写
  3. 源文件名与类名的关系
    (1) 源文件与类名一致时
    doc下键入javac 源文件名.java,出现字节码继续 java 字节码文件
    源文件名和字节码文件名是一样的(字节码和类无论何时都是保持一致的)
    (2) 源文件与类名不一致时
    javac 源文件名. java
    java 类名(字节码文件名)
    (3)同一源文件下多个类(不规范的写法)
    一次编译生成多个字节码文件,分别运行
    注意:只有类名与原文件名一致,才能修饰public

变量

  1. 三要素:数据类型,变量名,值
  2. 八大基本数据类型:
    byte,short,char,int,long,float,double,boolean
  3. 数据范围:
    (1) 整型系列
    byte:字节类型 范围: -128~127
    1个字节
    short:短整型 范围: -32768~32767
    2个字节
    int:整型 范围:-2的32次方到2的31次方
    4个字节
    long:长整型 范围太大了不说了自己慢慢算
    8个字节
    说明:对于long类型的常量,需要加L或小写1
    (2)浮点型数据类型
    float :单精度浮点型,4个字节,
    大概的精度范围是,把小数用科学记数法表示后,小数点后6~7位
    double: 双精度浮点型,8个字节
    大概的精度范围是,把小数用科学记数法表示后,小数点后15~1位
    (3)字符类型
    char: 单字符类型,2个字节(与C语言不一样),可以表示汉字
    在Java中是使用Unicode编码表表示。( 兼容ASCII码)
    每一个字符都有一个唯一的Unicode编 码值。
    例如:
    1、 ‘一个字符’,例如: '女, ‘A’
    2、 ‘转义字符’,例如: ‘\n’ (换行) , ‘\t’ (制表位Tab键),
'\\' (斜杠) , '\" (双引号) , '\'' (单引号) ,
 '\b' (删除键Backspace) , '\r' (回车键)

3、’\u字符的Unicode编码值的十六进制形式’

浮点数的存储

在未学习计算机组成原理的时候,理解这一块是有点困难的,主要就是模型难以想象,不知道原来数字转化为二进制后可以按照位数存进存储单元里

存储单元

计算机表示数据用二进制表示,即0和1,那么一位0或1,我们用bit (位),最小单位
计算机中最基本的单位用的byte字节(重点常识)
1字节= 8位
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
扩展(生活小常识):

  1. 硬件厂商存储单位用1000进位,不是1024.所以大伙买回来的电脑都会感觉内存少了
  2. 带宽100Mb,b = bit,网速你以为百兆就是百兆???这里的b是bit不是Byte所以先除以8才是这条线的带宽,其次多个用户共享这个带宽,所以没你想象的那么快奥。

整型变量的存储原理

byte是1个字节,1个字节是8位
计算机中是使用"补码”的形式来存储数据的,为了理解/换算“补码”,我们在引入“原码、反码”。
规定:
正数的原码、反码、补码三码合- - ;
负数的原码、反码、补码是不同的。
因为计算机中把最高位( 最左边的二进制位)定为符号位,0表示正数,1表示负数。
25:
原码: 0001 1001
反码:00011001
补码:00011001
-25:
原码:1001 1001
反码:1001 10011 符号位不变,其余位取反(0变1, 1变0)
补码:0001 1001在反码上加一
0:0000 0000
所以正数的范围:
0000 0001====》0111 1111也就是1到127
负数:补码
1000 0001:补码(1000 0001) -》反码(1000 0000) --》原码(1111 1111) -127

11111111:补码(1111 1111) -》反码(1111 1110) --》 原码(1000 0001) -1
负0: 1000 0000如果用它表示负0,就浪费了,所以用它来表示其他的数
-127的二进制的补码: 1000 0001
1的二进制的补码: 0000 0001
-127一1=(补码:10000001)-(补码:00000001)=补码(1000 0000)= -128
这就是byte的取值范围由来,简化底层设计

浮点型变量的存储原理

浮点型与整型类似,不同的是小数点,小数点不占据内存单元的
小数涉及: (1) 整数部分(2) 小数部分(3)这个小数点(4)正负号
化繁为简:
1、小数–>二进制:
(1)整数部分:除2倒取余
(2)小数部分:乘2取整数部分
3.14==》 11.00100…
2、把这个二进制用科学记数法表示.
1.1 00100… ★n的1次方
用科学计数法表示后,对于二进制的科学计数法,整数部分永远是1,那这样的话,整数部分就不用存了,小数点也不存了
只要存三个内容: (1) 正负号(2)挪完后的几次方(3)二进制的小数部分(称为尾数)

  1. float: 4个字节,就被分为三个部分,最高位还是符号位,接下来的8位用来存指数部分,然后剩下的存尾数,额如果存不下的尾数,就舍去了
    在这里插入图片描述
  2. double: 8个字节,就被分为三个部分,最高位还是符号位,接下来的11位用来存指数部分,然后剩下的存尾数,额如果存不下的尾数,就舍去了
    在这里插入图片描述

数据类型的转换(基本数据类型)

  1. 自动类型转换
    ①把存储范围小的类型的值赋值给存储范围大的类型的变量,自动可以完成升级
    byte->short->int->long->float->double
    char->int…
    ②boolean不参与
    ③byte, short, char如果进行算术运算都会自动升级为int(简单的面试考题
  2. 强制类型转换
    ①把存储范围大的类型的值,赋值给存储范围小的类型变量时,需要强制类型转换
    double->float->1ong->int->short->byte
    int->char
    强制类型转换是有风险的:可能会溢出或损失精度
    ②boolean不参与
    ③当需要把某个存储范围小的变量强制提升为存储范围大的类型时,也可以使用强制类型转换
  3. 数据类型转换的特例:字符串类型
    所有类型与字符串“+”拼接,结果都是字符串

算术运算符(基础且难点)

1、算术运算符
加:+
减:-
乘:*
除: /(特殊:整数/整数,结果只保留整数部分)
取模(取余) :%(特殊:只看被模数的正负号)被模数%模数
正号: +
负号: -
自增: ++
对于自增变量本身来说,都会+1.
但是++在前还是在后,对于整个表达式的计算来说是不一样的。
++在前,先自增,然后取自增后变量的值,
++在后,先取变量的值,然后变量自增。
但是不管怎么样,自增变量的取值与自增操作- -前一后一定是一起完成的。

int
P=1;
int q = p++;//先取出p的值,先放到一个“操作数栈区”,再让P自增,然后把操作数栈的值赋值给q
System.out.println("p ="+p);
System.out.println("q="+q);
int i=1;
System. out.println(i++ + ++i) ;//4
System. out. println(i) ;//3


自减: --类似于自增

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值