近期感受:感觉自己很拖沓,想做到高质量的博客真的很难,本次内容涉及到了进制和位运算,我使用了excel进行演示(花费大量的时间绘图),应该能比较容易理解,之后是期末考试周,需要好好准备,下一次更新应该是在一个月之后左右(虽然之前直接立的flag是一周一更)我寒假尽量做到2-3天一更吧,重生之路——day3(20.12.20)更新。加油!!
复习
文档注释:
-
文档注释是java特有的
-
作用 :用来生成类的说明文档
-
生成文档的命令 :javadoc -d mydoc -author -version 源文件名.java
javadoc : 开发工具集 -d : 参数 mydoc : 生成的文档所在的目录名 -author -version : 文档注释中使用到的注解
一、java关键字的使用
定义:被java赋予了特殊含义的字符串(单词)
特点:所有字母都是小写
二、保留字 :java现版本暂未使用,但以后的版本可能作为关键字来使用
三 、标识符的使用
标识符:凡是需要自己命名的地方都叫标识符
四 、标识符的规则与规范
定义合法标识符规则:
1.由26个英文字母大小写,0-9 ,_或 $ 组成
2.数字不可以开头
3.不可以使用关键字和保留字,但能包含关键字和保留字。
4.Java中严格区分大小写,长度无限制。
5.标识符不能包含空格。
Java中的名称**命名规范**:
包名:多单词组成时所有字母都小写:xxxyyyzzz
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始
每个单词首字母大写:xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
注意 :起名字时一定要做到见名知意
一 、变量的分类
1.按照数据类型来分 :
基本数据类型:
整型 :byte(1字节 = 8bit 表数范围-128 ~ 127) ,short(2字节) , int(4字节),long(8字节)
浮点型 : float(4字节),double(8字节)
字符型 :char(2)字节
布尔类型 :boolean(只有两个值true和false一般忽略大小)
引用数据类型:类(String),接口,数组
2.按照位置分(面向对象的时候再说)
二、定义变量的格式:
格式: 变量的类型 变量名 = 变量值
1.声明和赋值同时进行 :
int number = 10;
2.先声明后赋值 :
int number;
number = 10;
3.同时声明多个变量
int a,b,c;
a = b = c = 10;(连等)
4.同时声明多个变量和赋值
int a = 10,b = 20,c = 30;
三、变量使用的注意点:
1.变量先声明后使用
2.在同一作用域内的变量名不能相同。
3.作用域 :声明那个变量所在的那对大括号内
4.同一个变量可以被多次赋值,后一次赋值覆盖前一次的值
四、 java常量的默认类型
1.java的整型常量默认为 : int
2.java 的浮点型常量默认为 : double
五 、变量类型的说明
1.long类型数值后面要加 : l或L
2.float类型的数值后面要加 : f或F
3.double类型后面可以加(一般不加因为默认的常量就是double类型) :d或D
一 、基本数据类型变量间的运算(不包括boolean)
1.自动类型提升:小容量和大容量的变量进行运算结果用大容量的变量来接收。 byte,short,char -> int -> long -> float -> double
注意:
①byte,short,char三者之间做运算会先将自身提升为int
②容量指的是表数范围
2.强制类型转换:自动类型提升的逆过程
格式 :(强转的类型)
注意:强制类型转换可能会损失精度。
代码:
int number = 128;
byte b = (byte)number;
System.out.println(b);
float f = 12.3f;
int num = (int)f;
System.out.println(num);
int num2 = 100;
long lon = (long)num2; //小容量赋值给大容量可以使用强制类型转换符但是没必要
System.out.println(lon);
//练习题
double d = 12.3;
double d2 = 12.2;
//int sum = (int)d + (int)d2;
int sum = (int)(d + d2);
二 、基本数据类型(8种)与String间的运算
1.字符串的声明和赋值
String s = “abc”;
String s2 = new String(“ccc”);
2.说明:
①String和基本数据类型只能做连接运算。
②String和基本数据类型运算的结果还为String。
两个错误:重复定义和类型转换不正确。
Day3
关于进制(了解)
-
所有数字在计算机底层都以二进制形式存在。
-
对于整数,有四种表示方式:
二进制(binary):0,1 ,满2进1.以0b或0B开头。 十进制(decimal):0-9 ,满10进1。 八进制(octal):0-7 ,满8进1. 以数字0开头表示。 十六进制(hex):0-9及A-F,满16进1. 以0x或0X开头表示。 此处的A-F不区分大小写。 如:0x21AF +1= 0X21B0
二进制
-
Java整数常量默认是int类型,当用二进制定义整数时,其第32位是符号位;当是long类型时,二进制默认占64位,第64位是符号位
-
二进制的整数有如下三种形式:
原码:直接将一个数值换成二进制数。最高位是符号位 负数的反码:是对原码按位取反,只是最高位(符号位)确定为1。 负数的补码:其反码加1。
/**
一、所有数字在计算机底层都以二进制形式存在
二、
八进制:以0开头
二进制:以0b或0B开头
十六进制:以0x或0X开头
三、二进制的整数有三种形式:原码,反码,补码
1.正数的三码合一
2.负数
原码:该数正数的二进制,最高位变1
反码:在原码的基础上除符号位外,0变1,1变0
补码:在反码的基础上加1
*/
public class BinaryTest{
public static void main(String[] args){
//八进制
int number = 016;//输出14 八进制
//十六进制
number = 0x10;//输出16 十六进制
//二进制
number = 0b1010;//输出10 二进制
System.out.println(number);
int num = 128;
byte b = (byte)num;
System.out.println(b);//输出-128
//int是32位 128的二进制为:
//0000 0000 0000 0000 0000 0000 1000 0000 符号位为第一位0,表示正数
//类型转化后为 1000 0000 符号位为第一位1,表示负数即-128
}
}
-
计算机以二进制补码的形式保存所有的整数。
正数的原码、反码、补码都相同 负数的补码是其反码+1
为什么要使用原码、反码、补码表示形式呢?
计算机辨别“符号位”显然会让计算机的基础电路设计变得十分复杂! 于是人们想出了将符号位也参与运算的方法. 我们知道, 根据运算法则减去一个正数等于加上一个负数, 即: 1-1 = 1 + (-1) = 0 , 所以机器可以只有加法而没有减法, 这样计算机运算的设计就更简单了。
十进制 → 二进制:除2取余的逆
进制间转化
-
进制的基本转换
十进制 二进制互转 · 二进制转成十进制 乘以2的幂数 · 十进制转成二进制 除以2取余数 二进制 八进制互转 二进制 十六进制互转
下图是我自己为加深印象,自己画的进制转化,个人认为比较简明,若有疑问欢迎与我交流。
运算符
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。
- 算术运算符
- 赋值运算符
- 比较运算符(关系运算符)
- 逻辑运算符
- 位运算符
- 三元运算符
算术运算符
算术运算符的注意问题:
- 如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。 但被模数是负数则不可忽略。此外,取模运算的结果不一定总是整数。
- 对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。 例如:int
x=3510;x=x/1000*1000; x的结果是? - “+”除字符串相加功能外,还能把非字符串转换成字符串.例如:System.out.println(“5+5=”+5+5);
//打印结果是? 5+5=55 ?
/**
算数运算符:+(正) -(负) +(加) -(减) * / %(取模、取余)
前++ 后++ 前-- 后-- +(连接符)
后++ :先赋值(运算)自身再加1
前++:先自身加1,再赋值(运算)
后-- :先赋值(运算)自身再减1
前--:先自身减1,再赋值(运算)
*/
public class ArthmeticTest{
public static void main(String[] args){
int a = +5;
System.out.println(a);
System.out.println(----------------------------);
int n = 10;
int n2 = 4;
int c = n / n2; //2
double n3 = 10 / 4; //2.0
//如何得到2.5?
n3 = (10+0.0) / 4;//2.5
n3 = 10 / (4 *