java从零开始系统性学习完整超全资源+笔记(还在更新中)
前言
资源来自:王汉远java基础,
B站视频: https://www.bilibili.com/video/BV1b4411g7bj/?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click&vd_source=33eb2731cb742522d03acd26e5b17ba3
网盘链接(含源代码和笔记资料PPT):1,java基础学习:
链接:https://pan.baidu.com/s/1lxrpAW6yAxzSouYQz-GaKg
提取码:anr4
课件:
链接:https://pan.baidu.com/s/1zV-4jtSKHzkmS4c6wp7Qag
提取码:cgw6
下半部分
链接:https://pan.baidu.com/s/15xOnqGo-CQelWyk4naVsJQ
提取码:sk57
之前学的java忘记差不多了,最近得好好再学一遍,计划三周学完,特写此笔记便于后期做毕设项目和工作使用。
学习开始日期:2022.11.2
学习截止日期:进行中
**注意:**视频是基于eclipse进行编写的,最好还是用IDEA,eclipse老旧了,但是基本知识点还是不变的,等下学完这些视频,和IEDA里面有不同的地方再进行对比补充笔记。
文章目录
- java从零开始系统性学习完整超全资源+笔记(还在更新中)
- 前言
- 一、变量与数据类型
- Java语言概述
- 常用DOS命令
- HelloWorld案例
- 注释
- 关键字
- 常量
- 变量
- 数据类型
- 标示符
- 二、Eclipse基本使用与配置
- **1:基本使用**
- **2:基本配置**
- 3:删除和导入项目
- 4.快捷键汇总
- 三、运算符和表达式
- 键盘录入
一、变量与数据类型
Java语言概述
1. java语言的跨平台原理
- 平台:指的是操作系统(Windows,Linux, Mac)
- 跨平台: Java程序可以在任意操作系统上运行,一次编写到处运行
- 原理:实现跨平台需要依赖Java的虚拟机JVM ( Java Virtual Machine)
2.JRE和JDK
JRE:java的运行环境
JDK:java的开发工具包
联系:使用JDK开发完成java程序,交给JRE去运行。
常用DOS命令
1. 打开控制台
win+ R,然后cmd回车;或者开始-搜索-输入cmd-回车。
常见DOS命令
-
d:回车盘符切换
-
dir(directory):列出当 前目录下的文件以及文件夹
-
cd (change directory)改变指定目录(进入指定目录)
-
进入cd目录; cd 目录名称,或者目录路径
同上图 -
回退cd…; cd
-
cls: (clear screen)清屏- exit:退出dos命令行
HelloWorld案例
1.Notepad++的使用
下载安装之后新建文件,点击上方的设置按钮——选择首选项——新建——格式:windows——语言:java——编码:ANSI。
2.HelloWorld案例编写
- 首先定义一个类
public class 类名 - 在类定义后加上一对大括号{}
- 在大括号中间添加一个主(main)方法/函数
public static void main(String [] args){ } - 在主方法的大括号中间添加一行输出语句
System.out.println(“HelloWorld”);
完整代码:
public class HelloWorld {
public static void main(String [] args) {
System.out.println(“HelloWorld”);
}
}
单词拼写注意问题:
注释
●注释概述
-用于解释说明程序的文字
●Java中注释分类
-单行注释
●格式: //注释文字
-多行注释
●格式:/注释文字/
-文档注释
●格式: /*注释文字/
●注释的作用
-解释说明程序,提高程序的阅读性
关键字
- 关键字概述
被Java语言赋予特定含义的单词 - 关键字特点
-组成关键字的字母全部小写
-常用的代码编辑器,针对关键字有特殊的颜色标记,非常直观,所以我们不需要去死记硬背,在今后的学习中重要的关键字也会不断的出来。
常量
常量概述:
在程序执行的过程中,其值不可以发生改变的量
常量分类
-字符串常量
用双引号括起来的内容(“HelloWorld”)
-整数常量
所有整数(12,-23)
-小数常量
所有小数(12.34)
-字符常量.
用单引号括起来的内容(a,‘A’,‘0’)
-布尔常量.
较为特有,只有true和false
空常量
null(数组部分讲解)
public class HelloWorld{
public final static String CONSTANT = "HelloWorld";
public final static float PI = 3.14f;
/*主方法*/
public static void main(String[] args){
System.out.println(CONSTANT);
}
变量
-
变量概述
- 在程序执行的过程中,在某个范围内其值可以发生改变的量
- 从本质上讲,变量其实是内存中的一小块区域
-
变量定义格式
- 数据类型 变量名=初始化值;
- 注意:格式是固定的,记住格式,以不变应万变
-
计算机存储单元
变量是内存中的小容器,用来存储数据。那么计算机内存是怎么存储数据的呢?无论是内存还是硬盘,计算机存储设备的最小信息单元叫“位(bit)”,我们又称之为“比特位”,通常用小写的字母b表示。而计算机最小的存储单元叫“字节(byte)”,通常用大写字母B表示,字节是由连续的8个位组成。
除了字节外还有一些常用的存储单位,大家可能比较熟悉,我们一起来看看:
1B(字节) = 8bit
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
数据类型
Java语言是强类型语言,对于每一种数据都给出了明确的数据类型,不同的数据类型也分配了不同的内存空间,所以它们表示的数据大小也是不一样的。
基本数据类型(4类8种)
标示符
-
作用
给包,类,方法,变量等起名字 -
组成规则
由字符,下划线_,美元符$组成 -
这里的字符采用的是unicode字符集,所以包括英文大小写字母,中文字符,数字字符等。
-
注意事项
- 不能以数字开头
- 不能是Java中的关键字
-
命名规则
- 基本要求
见名知意
- 基本要求
-
常见命名的规则
- 包 (其实就是文件夹,用于对类进行管理)
全部小写,多级包用点隔开。
com,cn,com.demo
- 包 (其实就是文件夹,用于对类进行管理)
-
类
- 一个单词首字母大写 Student,Car
- 多个单词,每个单词首字母大写 HelloWorld
-
变量或者方法
- 一个单词首字母小写。 age,show()
- 多个单词,从第二个单词开始每个单词首字母大写 maxAge,getAge()
编写案例演示每种不同数据类型的变量定义
变量的定义和使用
- 变量定义的注意事项
- 变量未赋值,不能直接使用
- 引出变量的第二种使用格式
- 变量只在它所属的范围内有效。
- 变量在哪对大括号内,变量就属于哪对大括号
- 一行上可以定义多个变量,但是不建议
类型转换
- +是一个运算符, 我们应该能够看懂,做数据的加法。
boolean类型不能转换为其他的数据类型 - 默认转换
byte,short,char—int—long—float—double
byte,short,char相互之间不转换,他们参与运算首先转换为int类型 - 强制转换
目标类型 变量名=(目标类型)(被转换的数据);
二、Eclipse基本使用与配置
1:基本使用
A:创建Java项目:
点击File或者在最左侧空白处,选择Java项目,在界面中写一个项目名称,然后Finish即可。
B:创建包:展开项目,在源包src下建立一个包com.itheima
C:创建类:在com.ithiema包下建立一个类HelloWorld
在界面中写一个类名:HelloWorld,然后finish即可。
D:编写代码
在HelloWorld类写main方法,在main方法中写一条输出语句:我是程序员,我骄傲,我自豪。
E:编译
自动编译,在保存的那一刻帮你做好了
F:运行
选择要运行的文件或者在要运行的文件内容中
右键 -- Run as - Java Application即可
2:基本配置
A:行号的显示和隐藏
显示:在代码区域的最左边的空白区域,右键 -- Show Line Numbers即可。
隐藏:把上面的动作再做一次。
B:字体大小及颜色
a:Java代码区域的字体大小和颜色:
window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java -- Java Edit Text Font
b:控制台
window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font
c:其他文件
window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font
C:窗体给弄乱了,怎么办?
window -- Perspective -- Reset Perspective
D:控制台找不到了,怎么办?
Window--Show View—Console
3:删除和导入项目
A:删除项目
选中项目 – 右键 – 删除
从项目区域中删除
从硬盘上删除
B:导入项目
在项目区域右键找到import
找到General,展开,并找到
Existing Projects into Workspace
点击next,然后选择你要导入的项目
注意:这里选择的是项目名称
创建eclipse程序如图
4.快捷键汇总
- 自己常用的
注释:Ctrl+/ | Ctrl+Shift+/ 前者将当前行注释掉(行首加上//) ,后者将当前选中的内容注释掉(两端打上/* … */)
内容辅助:Alt + / 自动写代码,类似代码提示。
方法定位:按住Ctr1+鼠标左键,可以快速定位到对应的变量、方法或者其他的类等。
格式化:ctrl+shift+F
或者设置保存(ctrl+S)的时候格式化
导包: CTRL + SHIFT + O
注释多行代码:ctrl+shift+/
有用的快键键整理
来自:Eclipse快捷键大全
-
编辑
Ctrl+1 快速修复(最经典的快捷键,就不用多说了,可以解决很多问题,比如import类、try catch包围等)
Ctrl+Shift+F 格式化当前代码
Ctrl+Shift+M 添加类的import导入
Ctrl+Shift+O 组织类的import导入(既有Ctrl+Shift+M的作用,又可以帮你去除没用的导入,很有用)
Ctrl+Y 重做(与撤销Ctrl+Z相反)
==Alt+/ 内容辅助(帮你省了多少次键盘敲打,太常用了) ==
Ctrl+D 删除当前行或者多行
==Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了) ==
Alt+↑ 当前行和上面一行交互位置(同上)
Ctrl+Alt+↓ 复制当前行到下一行(复制增加)
Ctrl+Alt+↑ 复制当前行到上一行(复制增加)
Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)
Ctrl+/ 注释当前行,再按则取消注释 -
选择
Alt+Shift+↑ 选择封装元素
Alt+Shift+← 选择上一个元素
Alt+Shift+→ 选择下一个元素
Shift+← 从光标处开始往左选择字符
Shift+→ 从光标处开始往右选择字符
Ctrl+Shift+← 选中光标左边的单词
Ctrl+Shift+→ 选中光标又边的单词 -
移动
Ctrl+← 光标移到左边单词的开头,相当于vim的b
Ctrl+→ 光标移到右边单词的末尾,相当于vim的e -
搜索
Ctrl+K 参照选中的Word快速定位到下一个(如果没有选中word,则搜索上一次使用搜索的word)
Ctrl+Shift+K 参照选中的Word快速定位到上一个
Ctrl+J 正向增量查找(按下Ctrl+J后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在状态栏中显示没有找到了,查一个单词时,特别实用,要退出这个模式,按escape建)
Ctrl+Shift+J 反向增量查找(和上条相同,只不过是从后往前查)
Ctrl+Shift+U 列出所有包含字符串的行
Ctrl+H 打开搜索对话框
Ctrl+G 工作区中的声明
Ctrl+Shift+G 工作区中的引用 -
导航
Ctrl+Shift+T 搜索类(包括工程和关联的第三jar包)
Ctrl+Shift+R 搜索工程中的文件
Ctrl+E 快速显示当前Editer的下拉列表(如果当前页面没有显示的用黑体表示)
F4 打开类型层次结构
F3 跳转到声明处
Alt+← 前一个编辑的页面
Alt+→ 下一个编辑的页面(当然是针对上面那条来说了)
Ctrl+PageUp/PageDown 在编辑器中,切换已经打开的文件 -
调试
F5 单步跳入
F6 单步跳过
F7 单步返回
F8 继续
Ctrl+Shift+D 显示变量的值
Ctrl+Shift+B 在当前行设置或者去掉断点
Ctrl+R 运行至行(超好用,可以节省好多的断点) -
重构
(一般重构的快捷键都是Alt+Shift开头的了)
Alt+Shift+R 重命名方法名、属性或者变量名 (是我自己最爱用的一个了,尤其是变量和类的Rename,比手工方法能节省很多劳动力)
Alt+Shift+M 把一段函数内的代码抽取成方法 (这是重构里面最常用的方法之一了,尤其是对一大堆泥团代码有用)
Alt+Shift+C 修改函数结构(比较实用,有N个函数调用了这个方法,修改一次搞定)
Alt+Shift+L 抽取本地变量( 可以直接把一些魔法数字和字符串抽取成一个变量,尤其是多处调用的时候)
Alt+Shift+F 把Class中的local变量变为field变量 (比较实用的功能)
Alt+Shift+I 合并变量(可能这样说有点不妥Inline)
Alt+Shift+V 移动函数和变量(不怎么常用)
Alt+Shift+Z 重构的后悔药(Undo) -
其他
Alt+Enter 显示当前选择资源的属性,windows下的查看文件的属性就是这个快捷键,通常用来查看文件在windows中的实际路径
Ctrl+↑ 文本编辑器 上滚行
Ctrl+↓ 文本编辑器 下滚行
Ctrl+M 最大化当前的Edit或View (再按则反之)
Ctrl+O 快速显示 OutLine(不开Outline窗口的同学,这个快捷键是必不可少的)
Ctrl+T 快速显示当前类的继承结构
Ctrl+W 关闭当前Editer(windows下关闭打开的对话框也是这个,还有qq、旺旺、浏览器等都是)
Ctrl+L 文本编辑器 转至行
F2 显示工具提示描述 -
idea与eclipse快捷键对比
参考文章:IDEA和Eclipse的比较
三、运算符和表达式
- 运算符
代码
package com.yunSuanFu;
public class YunSuanFu {
/**
* Alt + / 自动写代码,类似代码提示
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//加法
int c = add(1,2);
System.out.println(c);
//减法
float d = substract(3, 2);
System.out.println(d);
//乘法
YunSuanFu yunsuanfu = new YunSuanFu(); //不能将静态的方法写在非静态的方法中
// 非静态的变量(动态的类)就要新建一个对象
int e = yunsuanfu.multiply(5, 6);
System.out.println(e);
//除法
float f = yunsuanfu.divide(33.3f, 3.0f);
System.out.println(f);
int h = yunsuanfu.divide(10, 5);
System.out.println("整数的除法" + h);
//取余
long g = yunsuanfu.mod(10, 3);
System.out.println(g);
}
/** 文档注释
* 两个整数相加
* @param a
* @param b
* return */
public static int add(int a,int b) {
int c = a + b;
return c;
}
/** 减法*/
public static float substract(float a,float b) {
float c = a - b;
return c;
}
/** 乘法*/
public int multiply(int a,int b) {
int c = a * b;
return c;
}
/** 除法*/
public float divide(float a,float b) {
return a/b;
}
public int divide(int a,int b) {
return a/b;
}
/** 取余*/
public long mod(long a,long b) {
return a % b;
}
}
运算符
- 对常量和变量进行操作的符号称为运算符
表达式 - 用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。不同运算符连接的式子体现的是不同类型的表达式。
定义两个int类型的变量a,b,做加法(a+ b) - 常用运算符
算术运算符
赋值运算符
关系运算符
逻辑运算符
三元运算符
算术运算符
• +,-,*,/的基本使用
%的使用
– %和/的区别
• ++,–
自增自减
- 字符和字符串参与+运算
int i = 10;
int j = 5;
System.out.println(++i); //++放在前面的时候先加1再做其他运算
System.out.println(j++); //++放在后面的时候先调用它的值再加1
System.out.println(j);
输出结果:
11
5
6
• 字符参与运算
– 其实是拿该字符对应的数值来操作
– ‘a’ 97
– ‘A’ 65
– ‘0’ 48
• 字符串参与运算
– 这里其实做的不是加法运算,而是字符串拼接。
– 字符串和其他类型的数据做拼接,结果是字符串类型的。
- 赋值运算符
• 基本的赋值运算符: =
• 扩展的赋值运算符:+=,-=,*=,/=,…
关系运算符
• ==,!=,>,>=,<,<=
• 关系运算符的结果都是boolean型,也就是要么是true,要么是false。
• 注意事项
– 关系运算符“ ==”不能误写成“=” 。
-逻辑运算符
• 逻辑运算符用于连接布尔型表达式,在Java中不
可以写成3<x<6,应该写成x>3 && x<6 。
• &,|,^,!
• &&,||
– “&”和“&&”的区别:
• 单&时,左边无论真假,右边都进行运算;
• 双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
• “|”和“||”的区别同理,双或时,左边为真,右边不参与运算。第一个左边为假判断右边第二个。
- 三元运算符
• 格式
– (关系表达式)?表达式1:表达式2;
– 如果条件为true,运算后的结果是表达式1;
– 如果条件为false,运算后的结果是表达式2;
• 示例:
– 获取两个数中大数。
– int x=3,y=4,z;
– z = (x>y)?x:y;//z变量存储的就是两个数的大数。
键盘录入
键盘录入数据概述
我们目前在写程序的时候,数据值都是固定的,但是实际开发中,数据值肯定是变化的,所以,把数据改进为键盘录入,提高程序的灵活性。
如何实现键盘录入数据呢?(目前先记住使用)
导包(位置放到class定义的上面)
import java.util.Scanner;
创建对象
Scanner sc = new Scanner(System.in);
接收数据
int x = sc.nextInt();
核心步骤:
//0.导入包
import java.util.Scanner;
// 1.创建键盘录入的对象
Scanner sc = new Scanner(System.in);
// 2.接收数据
System.out.println("请输入第一个数据:");
int a = sc.nextInt();
System.out.println("请输入第二个数据:");
int b = sc.nextInt();
练习:
键盘录入两个数据,并对这两个数据求和,输出其结果
键盘录入两个数据,获取这两个数据中的最大值
键盘录入两个数据,比较这两个数据是否相等
键盘录入三个数据,获取这三个数据中的最大值
代码:
package com.demo;
import java.util.Scanner;
/**
* 引入包 CTRL + SHIFT + O
*/
public class ScannerDemo {
public static void main(String[] args) {
// 1.创建键盘录入的对象
Scanner sc = new Scanner(System.in);
// 2.接收数据
System.out.println("请输入第一个数据:");
int a = sc.nextInt();
System.out.println("请输入第二个数据:");
int b = sc.nextInt();
// 对数据进行求和
int sum = a + b;
System.out.println("sum = " + sum);
// 三元组运算符判断两个数是否相等
boolean flag = ((a == b) ? true : false);
System.out.println("flag:" + flag);
System.out.println("请输入第三个数据:");
int c = sc.nextInt();
int temp = ((a > b) ? a : b);
int max = ((temp > c) ? temp : c);
System.out.println("max: " + max);
}
}