一.基础只是(二进制)
十进制:逢十进一,0~9
二进制:逢二进一,0,1
八进制:逢八进一,0~7
十六进制:逢十六进一,0~9,A,B,C,D,E,F
二进制->十进制
0 -> 0
0 -> 1
101 -> 5
1000-> 8
二进制抓换成十进制
算法:将原始数据的每一位乘以2的位置次方并求和,位置:从最低位到最高位分别是0~长度-1.
十进制转换成二进制
算法:辗转相除法,将原始数据和商不停除2求得余数,当商为0时,将余数从后往前写成十进制
二.Java介绍
2.1 概念
SUN公司在1995年开发编程语言,2009年被Oracle甲骨文公司收购。
Java 7
Java 8
2.2 Java能做什么
做软件,后台的开发
软件 = 数据 + 算法(业务逻辑)
三. 环境搭建
环境:软件运行时需要依赖的条件
JDK:Java Developemnt Kit,Java开发工具包
JRE:Java Runtime Enviroment,Java运行环境
JDK包含JRE
3.1 安装
安装在一个纯英文没有空格的路径下
3.2 测试JDK的安装
步骤:
1、打开命令提示符cmd
2、输入java或者java -version
3.3 制作运行Java程序的流程
步骤:
1、编码:写代码,文件后缀是.java
2、编译:将java文件转换成二进制字节码文件.class
3、运行:执行编译后的.class文件
具体操作:
1、创建Test.txt文件
2、编码
public class Test{
public static void main(String[] args){
System.out.println("hello world");
}
}
3、将后缀名改成.java
4、编译,使用javac指令,写法:javac Test.java,生成Test.class文件
5、运行:使用java指令,写法:java Test,完成运行
3.4 配置环境变量
目的:
原因是javac在bin目录下,默认情况javac只能在它所在的目录下运行,
而实际开发,我们需要编译指令(javac)能在计算机的任意位置都能执行。
配置步骤:
- 右键计算机,点击“属性”,选择“高级系统设置”
- 在“高级”标签页下,选择“环境变量”
- 在“系统变量”中,点击“新建”
- 在“变量名”中,输入“JAVA_HOME”,在“变量值”中,贴上jdk的安装根目录
- 在“系统变量”中,找到path,在path的“变量值”中,在开头,写上:%JAVA_HOME%\bin;
- 点击“确定”
3.5 Java语言的特性
1、安全性
2、健壮性
3、扩展性
4、跨平台性:
一次编写,到处运行
平台:操作系统
JVM:Java Virtual Machine,Java虚拟机
JDK:JRE + 开发工具
JRE:JVM + 核心类库
JDK包含JRE,JRE包含JVM
四. 第一个Java中可能发生的问题
1、类名必须与文件名一致(大小写完全相同)
2、格式问题:括号、分号、中文符号
3、主函数的书写问题,
主函数必须定义成:public static void main(String[] args)
五. 基础语法
5.1 注释
概念:对代码进行解释说明的文本内容
特点:不参与运算
目的:增强代码的可读性
格式:
1、单行注释:// 注释内容
2、多行注释:/* 注释内容 /
3、文档注释:/* 注释内容 */
5.2 关键字
概念:Java语言已经预先定义好的一些具有特殊功能的单词
例如:public、class、static、void、if、else、int、float、for、
switch、return、extends、implements、synchronized
5.3 标识符
概念:类、方法、变量、对象的名字
规则:由不以数字开头,字母,数字,下划线,美元符所组成
注:
1、见名知意
2、不能与关键字重名
3、Java语言严格区分大小写
4、标识符不宜过长
5、规范:
a.变量、方法:全部小写,多个单词组成时,从第二个单词起每个单词的首字母大写。(小驼峰)
例如:int age; toDegree();
b.类、接口:首字母大写,多个单词组成时,每个单词的首字母大写。(大驼峰)
例如:Test、Math、RuntimeException
c.常量:全部大写,多个单词组成时,单词之间用下划线连接
例如:PI
六. 常量
常量的分类:
1、整型常量:所有整数
2、浮点型常量:所有小数
3、字符常量:用一对单引号括起来的单个字符,必须要有一个字符,字符不能为空
4、字符串常量:用一对双引号括起来的一串字符,可以有内容为空的字符串,表示一段空串
5、布尔常量:只有两个值,true、false
6、空常量:只有一个值,null,表示该数据没有分配存储空间
一. 转义字符
概念:将一个字符的原始含义进行转换,使用“\”
常见:
1、 \t,一个制表符
2、 \n,一个换行符
二. 数据类型
分类:
1、基本数据类型
2、引用数据类型
2.1 基本数据类型(基本类型)
四类八型,这八型都是关键字
2.1.1 整数类型(整型)
byte:字节,占用1个字节,表示范围-128~127
short:占用2个字节,表示范围-32768~32767
int:默认整型,占用4个字节,表示范围-21亿多~21亿多
long:占用8个字节
2.1.2 浮点类型(浮点型)
float:单精度浮点类型,占用4个字节,表示小数需要在后面加上“f”或者“F”
double:默认浮点型,双精度浮点类型,占用8个字节
2.1.3 字符类型(字符型)
char:表示单个字符,占用2个字节,一个汉字占用2个字节,所以char类型可以接收一个汉字,不能有空的字符
2.1.4 布尔类型(布尔型)
boolean:只有两个值,true、false
注:
1、String字符串不是基本数据类型
2、byte->short->int->long->float->double
3、浮点型数据表示的是一个近似值
4、float类型接收小数必须写上“f”或者“F”
5、long类型的数据,如果值超过了int的范围,必须加上“l”或者“L”
三. 变量
概念:在合理范围内能够不断变化的数据
3.1 定义格式
1、定义的同时赋值
数据类型 变量名 = 值;
变化:数据类型 变量名1 = 值1,变量名2 = 值2,…;
2、先定义,后赋值
数据类型 变量名;
变量名 = 值
注:
1、同一个代码段中,不能重复定义变量
2、变量不赋值不能使用~
四. 运算符
4.1 算术运算
+、-、*、/、%、++、–
除法:整数之间的除法可能存在精度流失
取模:整除的结果是0
记过的正负号取决于被模数的正负
加法:1、求和
2、字符串的拼接,字符串数据与任何数据类型用”+“连接,都是执行拼接操作,并且结果仍然是一个字符串
3、字符类型与整数的相加,会将字符类型优先转换成对应的十进制整数,再与整数相加。
遵循ASCII码表:
“0”~“9”: 48——57
“a”~“z”: 97——122
“A”~“Z”: 65——90
Unicode表:前128为与ASCII码表相同,并且收录了各个国家地区文字的码表。
++、–:在自身基础上实现自增1、自减1。
例如:
i++,等价于 i = i + 1;
–i, 等价于i = i - 1;
注:
1、++、–对自身进行单独操作时,符号的前置和后置没有任何区别
2、++、–在进行复合操作时,
前置:先执行自增(减),再执行其他动作。
后置:先执行其他功能,再执行自增(减)。
4.2 赋值运算
=、+=、-=、*=、/=、%=
=: 赋值,将等号右边的表达式运算完毕,赋值给等号左边的变量
+=:例如,i=+3 等价于 i= i+3
略~
注:常量不能被赋值 ,所以++、–也不可以
4.3 比较运算
比较运算的结果是布尔值
、<、>=、<=、==、!=、
==:判断两数是否相等
!=:判断两数是否不等
4.4 逻辑运算
^逻辑运算的结果是布尔值
&: 与,表达式两边只要有false,整个表达式的结果就是false
|: 或,表达式两边只要有true,整个表达式的结果就是true
!:非,取反
^: 异或,相异为真
&&:短路与,表达式左边是false,整个表达式就是false,表达式右边不再执行
||: 短路或,表达式左边是true,整个表达式就是true,表达式右边不再执行
4.5 三元运算
格式:表达式1?表达式2:表达式3;
注:三元运算表达式的结果必须能够得到一个确切的值?
逻辑:判断表达式1的结果,如果结果为true,执行表达式2;反之,执行表达式3.
4.6 位运算
概念:根据二进制数的每一位进行逻辑运算,得到的结果
运算逻辑:
1、将十进制数转换成对应的为二进制数
2、将两数数据按最低为对其
3、将1视为true,将0视为false
4、根据逻辑运算&、|、^、按位进行运算
左移:a<< b: a*2^b
总结一下
依旧是Java基础,但是学习到了“位运算”,这是我之前不知道的。末了问:将a,b中的数互换,你能有几种方法,一开始还蛮不在乎,后来仔细一想,发现自己似乎只能想到借助第三个变量,老师说有四种,后来百度了一下,还可以通过加减法,这没什么,最主要的是还有一种通过位运算的来得到的方法。也算是有收获吧。`
int a = 1;
int b = 2;
//借助变量c
int c = a;
a = b;
b = c;
System.out.println(a+","+b);
//使用加减法
a = a + b;
b = a - b;
a = a - b;
System.out.println(a+","+b);
//使用异或运算
a = a ^ b;
b = b ^ a;
a = a ^ b;
System.out.println(a+","+b);
//第四种?
a = a + b - (b = a);
System.out.println(a+","+b);