Java基础全程学习笔记(第一,二章)

Java基础学习笔记
第01章:Java语言概述#
1. Java基础学习的章节划分#
第1阶段:Java基本语法
Java语言概述、Java的变量与进制、运算符、流程控制语句(条件判断、循环结构)、break\continue、
IDEA开发工具的使用、数组
 
第2阶段:面向对象编程(基础、进阶、高级)
 
第3阶段:Java高级应用
异常处理、多线程、集合框架、File类与IO流、网络编程、日期相关的API与比较器、反射、Java8-17新特征
语言 = 语法 + 逻辑

2. 计算机的构成#
硬件:CPU、内存、硬盘、输入设备、输出设备、调制解调器
软件
3. 软件#
软件:即一系列按照特定顺序组织的计算机数据和指令的集合。
有系统软件和应用软件之分。
系统软件:windows、mac os、android、ios、linux
应用软件:qq、微信、音乐播放器等
4. 人机交互方式#
图形化界面的方式

命令行的方式交互

DOS命令(掌握)

cd cd.. cd/ md rd del exit cls等
5. 语言#
计算机语言的分代

第1代:机器语言:0和1
第2代:汇编语言:出现了助记符
第3代:高级语言:
面向过程阶段:C
面向对象阶段:C++,Java,C#,Python,JS等
没有“最好”的语言,只有在特定场景下相对来说,最适合的语言而已。

6. Java概述#
Java简史

1995诞生
1996:jdk1.0版本
2004:Java5.0(jdk1.5)--->里程碑式的版本;J2SE->JavaSE、J2EE->JavaEE、J2ME->JavaME
2014:Java8.0--->里程碑式的版本;目前,市场占有率仍然很高。(lambda表达式、StreamAPI)
后续:Java11、Java17都属于LTS(长期支持版本)
SUN、Oracle、Google等

Java之父:詹姆斯·高斯林

Java的应用场景:

JavaSE:开发桌面级应用 (不靠谱)
JavaEE:开发企业级后台应用
JavaME:开发小型设备的应用(不靠谱)
​ ----> JavaEE、Android应用、大数据开发

7. JDK的下载、安装及环境变量的配置(重点)#
jdk下载:官网下载
安装:jdk8.0和jdk17.0 (傻瓜式安装)
path环境变量的配置(重点)
8. 第1个Java程序#
新建java文件:PersonInfo.java

class PersonalInfo{
    public static void main(String[] args){
        System.out.println("姓名:家琪琪\n");
        //System.out.println();//换行操作
        System.out.println("性别:女"); 
        System.out.println("住址:成都青创园"); 
    }
    
}
针对于第1个程序的小结及常见问题的分析

 
1. HelloWorld程序如下:编写在HelloWorld.java文件中
class HelloJava{
    public static void main(String[] args){
        System.out.println("HelloWorld!!");
        System.out.println("HelloWorld!!");
        System.out.println("你好,世界!");
    }
 
}
 
 
2. Java程序要想执行成功,需要如下的三个步骤:
第1步:编写:将java源代码编写在.java结尾的源文件中。
第2步:编译:针对于编写好的源文件进行编译操作。格式:javac 源文件名.java
             编译以后,会生成一个或多个.class结尾的字节码文件。字节码文件的名称即为源文件中对应的类名
第3步:运行:针对于编译好的字节码文件,进行解释运行操作。格式: java 字节码文件名  或  java 类名
 
 
 
3. 针对于编写过程来说:
3.1 class:是一个关键字,小写,后面跟着一个类名。
3.2 编写的类或方法必须使用一对{}。
3.3 
> main()作为程序的入口出现!格式如下:
    public static void main(String[] args)
> main()的格式是固定的!大家刚开始学习,可以"死记硬背"一下。
> 但是,可以考虑修改为如下的格式:
  方式1:public static void main(String args[])
  方式2:public static void main(String[] a)   args:是arguments的缩写
 
3.4 输出语句的编写:
> System.out.println(123);  表示:输出123之后换行
 
> System.out.print(123);    表示:输出123之后不需换行
 
 
3.5 编译过程中的小结:
> 编译源文件。此时要求在源文件所在的路径下执行"javac 源文件名.java"的操作
 
可能编译时报错的情况:
情况1:如果源文件名写错(不包括大小写不同的情况)或者不是在源文件所在的路径下执行javac操作则会报错。
情况2:编写的程序中有非法的语法或非法的字符。
    > 缺少必要的大括号、大小写的问题(Java是严格区分大小写的)、出现的标点符号必须是英文格式下的
 
3.6 解释运行过程的小结:
> 针对于字节码文件对应的类,执行java.exe命令。格式:java 类名。
> 此操作需要在字节码文件所属的路径下执行。
 
可能运行时报错的情况:
情况1:执行字节码文件所在的路径不对或字节码文件的名写错了(注意,java严格区分大小写,如果大小写出错了,仍然认为文件名写错了)。
情况2:可以出现运行时异常(放到第9章中讲解)
 
 
3.7 说明
1. Java是严格区分大小写的
2. 每一行执行语句必须以;结尾
3. 程序在编写过程中,为了可读性更强,增加必要的缩进,使用tab键即可。
4. 一个源文件中可以声明一个或多个类。
   一个源文件中最多只能有一个类声明为public。
   声明为public的类的类名必须与源文件名相同。
 

9. 注释#
掌握:单行注释、多行注释
作用1:对程序中的代码进行解释说明
作用2:有助于调试程序
熟悉:文档注释 (可以被javadoc解析)
10. API文档#
API:(Application Programming Interface,应用程序编程接口)是 Java 提供的基本编程接口。
像String、System都属于API
API文档:用于解释说明API如何使用的一个文档。
第02章:变量与进制#
1. 关键字(keyword)#
关键字:被Java语言赋予特殊含义的字符串。
注意点:关键字都是小写的!
Java规范了50个关键字(包含了goto、const两个保留字)
额外的三个字面量true、false、null虽然不是关键字,但是我们也把他们看做是关键字。
2. 标识符#
凡是可以自己命名的地方,都是标识符。
标识符都有哪些位置?类名、变量名、包名、方法名、接口名、常量名等
标识符的命名规则
(如果不遵守,编译不通过。要求大家遵守)

由26个英文字母大小写,0-9 ,_或 $ 组成
数字不可以开头。
不可以使用关键字和保留字,但能包含关键字和保留字。
Java中严格区分大小写,长度无限制。
标识符不能包含空格。

标识符的命名规范
(如果不遵守规范,不影响程序的编译和运行。建议大家遵守,否则容易被鄙视)

包名:多单词组成时所有字母都小写:xxxyyyzzz。
例如:java.lang、com.atguigu.bean

类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
例如:HelloWorld,String,System等

变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
例如:age,name,bookName,main,binarySearch,getName

常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
例如:MAX_VALUE,PI,DEFAULT_CAPACITY

标识符在声明时,要见名知意!
3. 变量的基本使用#
内存中的一个存储区域,该区域的数据可以在同一类型范围内不断变化
变量的构成包含三个要素:数据类型 变量名 变量值
Java中变量声明的格式:数据类型 变量名 = 变量值;
Java是一门强类型的语言。即每一个变量都规定了具体的类型。
使用变量注意:
Java中每个变量必须先声明,后使用。
使用变量名来访问这块区域的数据。
变量的作用域:其定义所在的一对{ }内。
变量只有在其作用域内才有效。出了作用域,变量不可以再被调用。
同一个作用域内,不能定义重名的变量。
4. 基本数据类型的变量#
变量按照数据类型来分:

基本数据类型:整型(byte \ short \ int \ long ) 、浮点型(float \ double ) 、字符型char 、布尔型boolean
 
引用数据类型:类(class)、接口(interface)、数组(array); 注解(annotation)、枚举(enum)、记录(record)
整型变量
//1. 整型的使用:
//byte(1个字节=8bit,-128~127) \ short(2字节) \ int(4字节) \ long(8字节)
 
byte b1 = 12;
 
b1 = 127;
//①声明变量以后,给变量赋的值必须在变量类型所允许的范围内变化。
//b1 = 128;//因为超出了byte的范围,所以报错
 
//② 给long类型变量赋值时,要求以"l"或"L"结尾
short s1 = 123;
int i1 = 1234;
long l1 = 12313123L;
System.out.println(l1);
 
//③ 实际开发中,如果没有特殊需求的话,推荐大家使用int类型来定义整型变量。
 
//④ 默认情况下,整型常量都是int类型
//int i2 = i1 + 2;
        

浮点类型
//2. 浮点型的使用:
// float(4字节)  / double (8字节)
//① float虽然占用的空间比long小,但是表数范围比long大,进而float精度不高。
 
//② 给float类型变量赋值时,要求以"f"或"F"结尾。否则,编译不通过
double d1 = 123.456;
//d1 = 123.456456456456456456; //体会double的精度也有限
System.out.println(d1);
 
float f1 = 123.456f;
System.out.println(f1);
 
//③ 实际开发中,如果没有特殊需求的话,推荐大家使用double类型来定义浮点型变量。
 
//④ 默认情况下,浮点型常量都是double类型
double d2 = d1 + 12.34; //12.34是常量,是double类型

char类型(字符类型)
//3.字符类型的使用:char (2字节)
//① 一般情况下,我们使用一对''表示一个具体的字符。
//说明:char定义变量的话,''内有且只能有一个字符
char c1 = 'a';
 
//编译不通过
//char c2 = '';
//char c3 = 'ab';
 
//② char类型变量的定义方式
//方式1:最常见的方式
char c4 = '中';
char c5 = '1';
char c6 = 'す';
 
//方式2:直接使用Unicode值来表示字符型常量
char c7 = '\u0023';
System.out.println(c7);
 
//方式3:使用转义字符
char c8 = '\n';
char c9 = '\t';
System.out.println("hello" + c8 + "world");
System.out.println("hello" + c9 + "world");
 
//方式4:使用字符对应的ascii码值进行赋值
char c10 = 'a';
System.out.println(c10 + 1);
 
char c11 = 97;
System.out.println(c10 == c11);//true

布尔类型(boolean)
//① 不谈boolean占用内存空间的大小
//② boolean类型只能取两个值之一:true 、 false
boolean b1 = true;
boolean b2 = false;
 
//③ 开发中,我们常常在if-else结构、循环结构中使用boolean类型
boolean isMarried = false;
if(isMarried){
    System.out.println("很遗憾,不是单身了");
}else{
    System.out.println("不错,可以多谈几个女朋友了");
}
5. 基本数据类型变量间的运算规则#
5.1 自动类型提升规则#
byte、short、char ---> int ---> long ---> float ---> double
说明:
① 容量小的变量和容量大的变量做运算时,运算的结果是容量大的变量的数据类型。
(此时的容量小、容量大指的是存储数据的范围的大小,并非占用内存空间的大小。比如:float的容量要大于long的容量)
② byte、short、char 三者之间的变量做运算,结果是int类型。

③ 不管是自动类型提升规则,还是强制类型转换规则都只针对于基本数据类型中的7种进行操作(除了boolean类型)

5.2 强制类型转换规则#
说明:

①看做是自动类型提升规则的逆运算

② 如果需要将容量大类型的变量转换为容量小的类型的变量时,就需要使用强制类型转换
③ 强制类型转换需要使用一对()表示
④ 使用强转符转换时,可能造成精度的损失

6. String与8种基本数据类型变量间的运算#
String的理解
String,即为字符串类型。
声明String类型的变量,可以使用一对""表示。
一对""内可以声明0个、1个或多个字符

String与基本数据类型变量间的运算
String类型是可以与8种基本数据类型的变量做运算的。
String只能与8种基本数据类型的变量做连接运算:+
连接运算的结果只能是String类型。

7. 进制(了解)#
计算机中存储和运算的所有数据都要转为二进制。包括数字、字符、图片、声音、视频等。
7.1 常见的几种进制#
熟悉:

十进制(decimal)

数字组成:0-9
进位规则:满十进一
二进制(binary)

数字组成:0-1
进位规则:满二进一,以0b或0B开头
八进制(octal):很少使用

数字组成:0-7
进位规则:满八进一,以数字0开头表示
十六进制

数字组成:0-9,a-f
进位规则:满十六进一,以0x或0X开头表示。此处的 a-f 不区分大小写
7.2 二进制与十进制间的转换#
熟悉:二进制与十进制间的转换(见ppt)

表示二进制整数时,最高位为符号位。0:正数;1:负数。

二进制整数在存储时,涉及到原码、反码、补码。

正数:三码合一。

负数:负数的原码,除符号位外,各个位取反,得到负数的反码。

​ 负数的反码+1,得到负数的补码。

计算机底层都是以二进制补码的形式存储数据的。

7.3 二进制与其它进制间的转换#
了解:二进制与八进制、十六进制间的转换

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值