Java 是当今最流行的编程语言之一,自二十世纪九十年代诞生以来,一直保持着强劲的势头和优秀的口碑,长期占据着 TIOBE 等知名排行榜的头把交椅。国内外大多数互联网企业都以 Java 为主要开发语言,无论是国内的阿里巴巴、腾讯、百度,还是国外的 Facebook、Google 等知名企业,都对 Java 语言有着很大的依赖性,其中的很多产品也都是基于 Java 语言研发而成的。
2.开启Java之路------HelloWorld 2.1安装jdk学习Java首先要安装Java软件,Java由jdk,jre,jvm三部分组成,其中jdk = jre + 开发工具包, jre = jvm + 核心API,因此安装Java只需安装jdk即可。jdk可在官网上下载。
2.2 运行HelloWorldjdk安装之后,可以在专属文件夹中建立文档Study,在此文档中新建文件,扩展名后缀改为java,使用记事本(Editplus或者IDEA均可)打开文件,按照格式编辑源代码,该文件也被称为源文件
代码如下
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World!!!");
}
}
随后在文件上方位置栏中输入 cmd进入
在dos命令窗口中输入以下命令编译运行程序
编译程序:
javac 文件名.java
编译之后会有一个产出文件 文件名.class
运行程序:
java 文件名
程序运行 运行的是class文件 class文件成为字节码文件
java11的一个新特性:
编译运行一步进行:java 文件名.java
编写代码的注意事项:
1 文件的扩展名必须为.java
2 文件名必须和下图中的框选名称保持一致
3 在代码中所有的标点符号都必须是英文状态
4 代码需要有良好的格式:在java代码中 以大括号进行层级区分 在同一个大括号中的代码 应该具有相同的缩进层次 缩进一般一个层级缩进一个制表符(Tab)
5 在java代码中 每条语句结束必须以分号结尾
6 在java中 所有文件的存放路径或者软件的安装路径都必须是全英文的,路径中不能出现中文或空格 等特殊符号
7 当修改了java源程序之后 每次都需要重新编译运行
3.进制1.进制(理解)
1.1.二进制
二进制,是计算技术中广泛采用的一种数制,由德国数理哲学大师莱布尼茨于 1679 年发明。二进制数据是用 0 和 1 两个数码来表示的数。它的基数为 2,进位规则是“逢二进一”。数字计算机只能识别和处理由‘0’.‘1’符号串组成的代码。其运算模式正是二进制。
二进制对应两种状态,广泛应用于电子科学。比如:可以对应电子器件的开关状态、对应信号电压状态(+5V 等价于逻辑"1",0V 等价于逻辑"0")、对应卡带是否打孔状态、电磁存储(磁体状态:南为 0,北为 1)等等。
二进制广泛应用于我们生活的方方面面。比如,广泛使用的摩尔斯电码,它由两种基本信号组成:短促的点信号“·”,读“滴”;保持一定时间的长信号“—”,读“嗒”。然后,组成了 26 个字母,从而拼写出相应的单词。
1.2.十进制转二进制
十进制整数转换为二进制整数采用"除 2 取余,逆序排列"法
十进制数 29 转成二进制就是:11101
1.3.二进制转十进制
二进制转十进制采用“权相加法”。
八进制:
逢八进一 0-7
十进制转八进制 : 借助于二进制 先转换为二进制 在使用三位2进制表示一位八进制
十六进制: 逢十六进一 0–9 a–f
十进制转换为十六进制 : 借助于二进制 先转换为二进制 在使用四位2进制表示一位十六进制
4.注释注释就是对一行或者多行代码的功能或者作用进行简单描述或说明‘
三种注释:
// 单行注释
多行注释
文档注释
public class HelloWorld {
public static void main(String[] args){
// 这是一条输出语句 这是单行注释
System.out.println("Hello World");
}
}
多行注释
文档注释
5 关键字(理解)关键字:就是被Java语言赋予了特定含义的单词。
5.1 关键字特点
1 关键字的字母全部小写。
2 常用的代码编辑器,针对关键字有特殊的颜色标记,非常直观。比如现在我们能看到的public、class、static等。
在日常生活中,我们通常都用3.14代表圆周率去进行近似计算。只要用到圆周率的地方,我们使用的都是3.14,也就是说,
这个值是固定不变的,这样的值就是我们说的常量。
常量:在程序运行过程中,其值不可以发生改变的量。
常量通常指的是一个固定的值,例如:1、2、3、’a’、’b’、true、false、”helloWorld”等
在 Java 语言中,主要是利用关键字 final 来定义一个常量。 常量一旦被初始化后不能再更改其值。
声明格式为:final type varName = value;
为了更好的区分和表述,一般将 1、2、3、’a’、’b’、true、false、”helloWorld”
等称为字符常量,而使用 final 修饰的 PI 等称为符号常量。
7数据类型(记忆、应用)7.1 计算机存储单元
我们知道计算机是可以用来存储数据的,但是无论是内存还是硬盘,计算机存储设备的最小信息单元叫**“位(bit)”,我们又称之为“比特位”,通常用小写的字母”b”表示。而计算机中最小的存储单元叫“字节(byte)”,通常用大写字母”B”**表示,字节是由连续的8个位组成。
除了字节外还有一些常用的存储单位,大家比较熟悉,我们一起来看看:
1B(字节) = 8bit
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
7.2 数据类型
Java语言是强类型语言,对于每一种数据都给出了明确的数据类型,不同的数据类型也分配了不同的内存空间,所以它们表示的数据大小也是不一样的。
6.3 数据类型内存占用和取值范围
在java中整数默认是int类型,浮点数默认是double类型。
6.3.1.整数类型: byte、 short、 int、 long
- Java各整数类型有固定的表数范围和字段长度,不受具体OS的影响,以保证java程序的可移植性。
- java的整型常量默认为 int 型,声明long型常量须后加‘l’或‘L’
- java程序中变量通常声明为int型,除非不足以表示较大的数,才使用long
-
-
十进制数形式:如: 5.12 512.0f .512 (必须有小数点)
-
科学计数法形式:如: 5.12e2 512E2 100E-2
float 单精度 尾数可以精确到7位有效数字 4个字节
double 双精度 精度是float的两倍 这是浮点型的默认类型 8个字节
-
public static void main(String[] args){
float f = 3.14F; //浮点数默认的类型是double 当我们想要表示一个float类型的浮点数的时候 此时我们就需要在数值后边加上一个F或者f
double d = 3.14D;
float f1 = 0.1f;
double d1 = 1.0/10;
System.out.println(f1 == d1);//false
float f2 = 42323442F;
float f3 = f2 +1;
System.out.println(f2==f3);//true
}
以上代码 由于收到长度和精度的限制,无法精确地去表示一些浮点数 只是近似的等于 。因此在以后的开发中,当我们在遇到需要精确表示小数的时候 特别是金融方面的时候,千万不要直接使用float和double去表示。7.5.字符型char
char表示字符 占用两个字节
java中的所有的字符都使用的是Unicode编码 一个字符可以存储一个字母 可以存储一个汉字 还可以存储其他的字符
字符的表示形式:
public static void main(String[] args){
//字符的第一种表示形式 使用单引号引起来的
char c1 ='1';
char c2 = '中';
char c3 = 'a';
char c4 = '&';
//转义字符
char c5= 't';//制表符
char c6='r';//回车
char c7 = 'n';//换行
//常量表示 直接使用unicoide值进行表示
}
7.6 布尔类型:boolean
表示的是逻辑值 只有true和false 两个值
8.字符串字符串不属于基本类型 字符串属于引用类型
字符串是有双引号引起来的多个字符的组合序列
public static void main(String[] args){
// 字符串
String s1 = "abc";
int a = 100;
s1 = s1 + a;//此时完成的字符串拼接
System.out.println(s1);
}
9.常见的字符集(了解)
9.1. ASCII码
在计算机内部, 所有数据都使用二进制表示。 每一个二进制位(bit) 有 0 和 1 两种状态,因此 8 个二进制位就可以组合出 256 种状态, 这被称为一个字节(byte)。 一个字节一共可以用来表示 256 种不同的状态, 每一个状态对应一个符号, 就是 256 个符号, 从0000000 到 11111111。
ASCII码: 上个世纪60年代, 美国制定了一套字符编码, 对英语字符与二进制位之间的关系, 做了统一规定。 这被称为ASCII码。 ASCII码一共规定了128个字符的编码, 比如空格“SPACE”是32(二进制00100000), 大写的字母A是65(二进制01000001)。 这128个符号(包括32个不能打印出来的控制符号), 只占用了一个字节的后面7位, 最前面的1位统一规定为0。
缺点:
-
不能表示所有字符。
-
相同的编码表示的字符不一样:
比如, 130在法语编码中代表了é, 在希伯来语编码中却代表了字母Gimel (ג)
乱码:世界上存在着多种编码方式,同一个二进制数字可以被解释成不同的符号。因此,要想打开一个文本文件,就必须知道它的编码方式,否则用错误的编码方式解读,就会出现乱码。
Unicode: 一种编码,将世界上所有的符号都纳入其中。每一个符号都给予一个独一无二的编码,使用 Unicode 没有乱码的问题。
Unicode 的缺点: Unicode 只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储:无法区别 Unicode 和 ASCII:计算机无法区分三个字节表示一个符号还是分别表示三个符号。另外, 我们知道,英文字母只用一个字节表示就够了,如果unicode统一规定,每个符号用三个或四个字节表示,那么每个英文字母前都必然有二到三个字节是0,这对于存储空间来说是极大的浪费。
9.3 UTF-8UTF-8 是在互联网上使用最广的一种 Unicode 的实现方式。
UTF-8 是一种变长的编码方式。它可以使用 1-6 个字节表示一个符号,根据不同的符号而变化字节长度。
UTF-8的编码规则:
-
对于单字节的UTF-8编码,该字节的最高位为0,其余7位用来对字符进行编码(等同于ASCII码)。
-
对于多字节的UTF-8编码,如果编码包含 n 个字节,那么第一个字节的前 n 位为1,第一个字节的第 n+1 位为0,该字节的剩余各位用来对字符进行编码。在第一个字节之后的所有的字节,都是最高两位为"10",其余6位用来对字符进行编码。
- 10.变量
变量就是计算机内存中的一块存储单元
变量所占据的空间大小有数据类型来决定
定义变量:
数据类型 变量名 = 变量值;
int a = 100;
变量使用的注意事项:
1 在同一个大括号范围内 变量名称不允许重复
2 变量在第一次使用之前必须进行初始化(赋值)
public static void main(String[] args){
int a = 100;//声明的同时完成了变量的初始化
a = 200;
int b;//声明变量
b = 20;//初始化变量
b = b+1;//变量使用
System.out.println(b);//使用变量
}
3 对于我们的long和flot类型 在声明该类型的变量的时候 必须在其末尾添加标记
11 标识符标识符 凡是在java中能够由我们自己命名的地方都称为标识符
标识符:主要包括类名 方法名称 变量名 接口名 常量名 等
标识符的规则:
1 组成 : 只能由数字 字母 下划线(_) 美元符号($)
2 不能以数字开头
3 不能是关键字
4 标识符是大小写敏感的(严格区分大小写的)
int a = 3;
int _123=23;
int $22a=33;
int 变量a = 11;//java支持中文命名 但是不允许
int 111a = 1111;//不合法
int a# = 0;//不合法
int int = 20;//不合法
5 标识符的命名尽量做到见名知意 尽量采用有意义的英文单词(或者采用公认的单词的缩写) 如果实在想不到合适的单词 可以采用拼音
11.1 常见的命名约定驼峰命名法:
方法,变量
1 标识符是一个单词的时候 所有的字母都小写 name
2 标识符如果有多个单词组成 则从第二个单词开始 之后的每个单词的首字母要大写 firstName
类,接口:标识符无论是几个单词 每个单词的首字母都必须大写
12 数据类型转换(重点 理解)自动类型转换
强制类型转换
自动类型转换: 把一个表示数据范围小的数值 或者变量赋值给一个表示数据范围大的
//完成了数据类型的转换 将int类型转换为了double double d = 100;// 100 这个数值单独来说他是属于int类型 但是当我们完成赋值操作之后 此时保存在d这个变量中的数据就是double 自动类型转换 byte b = 100;// byte -128--127 int i= b;// 将byte转换为了int 有小范围到大范围 自动类型转换 i = 200; b = (byte)i;//强制转换 转换是存在一定的风险的 会造成数据的损失 System.out.println(b);
强制类型转换
把一个大范围的数值或者变量赋值给另一个表述数据范围小的变量
当把大范围的数据强制转换为小范围的数据的时候 保留低位 舍弃高位
数据类型 变量 = (目标类型) 变量/数据;
byte b1 = 10;
byte b2 =20;
byte b3 = (byte) (b1 + b2);// 在进行算术运算时 会默认自动将整数转换为int类型 在计算结果 结果就是一个int类型 此时如果要将b1 + b2的结果赋值给b3 则需要强制转换
boolean 不能与其他类型进行相互转换



