Java学习笔记
前言
这篇Java学习笔记是我在B站上看“狂神说Java”时,边学习边对做的笔记,其中包含了一些自己的理解,其结构与狂神说Java的视频结构大致想同,想要进行Java的基础学习的朋友可以拿去参考。
这里附上视频链接狂神说Java,大家也可以去B站关注“遇见狂神说“,其中有很多学习的视频
-
阅读该笔记需要有一定的代码基础,不需要了解太深,只要能够了解一些Java的语言风格,能够调试代码即可,若实在没有接触,可以看一下狂神说中其他基础部分,也可以在CSDN或其他地方寻找基础的教学
-
这是我第一次在CSDN上上传学习笔记,对于对他人的引用的具体规范可能存在一些问题,希望大家在看的时候能够指出使我有改正的机会,笔记中涉及的图片以及笔记均是通过自己敲出来(当然有些是狂神说的,觉得很有道理又容易懂就直接写上了)和截图的,除了狂神说的截图,还有少量在CSDN中的一些文章以及官方教程中文章的截图,在对应处都提供了链接,在此特别感谢这些作者
阅读后可能有的收获
- 这个笔记学完的话,大概会让你对编程有一些基础的了解,并且可以通过Java来编写一些简单的代码程序,为进一步学习打好基础,这一步是必不可少了,如不学习这个,后续再学习其他Java相关的学习可能事倍功半
- 只是看的话,如果你有一些Java的基础,可能能够对你一些很基础的细节方面的知识进行扩充
- 如果你看的同时自己敲敲代码,思考一下笔记中的代码是要证明什么,意义何在、体现了什么特性,相比对你的代码能力以及一些代码之外的阅读能力、理解能力、逻辑都有一定帮助
- 笔记的话,不像是教程,大多数只是记录,不会像老师一样给你解释到能理解的地步,如果你能看完就了解其中我的一些理解的话就最好,不行的话可以结合视频来看,应该对你是有收获的,像有基础的同学可能一个礼拜不到就能完成整个部分的学习
- 如果你真的打算边练边学就最好了,用到的软件在笔记中都有介绍,其中idea可能需要一些配置才能操作流畅,这些可以在CSDN中找到很多教程,改一下背景这些就可以了,不要多改,觉得不方便了自己再摸索,同时去学一下markdown,很简单的,快的大概半个小时不到应该就可以应用了
计算机基础
冯·诺依曼体系
常见DOS命令
- 通过win+r 输入cmd可以打开cmd窗口
- 在任意文件夹地址栏输入cmd可以打开cmd并默认为当前文件为地址
- shift+右键可以打开powershell
#常用DOS命令(cmd),注意一定要英文输入,加参数用 /,不能使用复制粘贴的快捷键
#切换盘符到D盘
D:
#查看当前文件夹下目录
dir
#切换目录
cd [dir]
cd /d [dir] #实现盘符间切换
cd .. #返回上级目录
#清理屏幕
cls
#退出终端
exit
#查看ip
ipconfig
#打开计算机
calc
#打开画图
mspaint
#打开记事本
notepad
#ping命令
ping www.baidu.com
#创建文件夹
md dictionary
#创建文件
cd>file.txt
#删除文件
del file.txt
#删除目录
rd dictionary
计算机语言发展
- 机器语言,二进制的方式
- 汇编语言,解决人类无法读懂机器语言的问题,应用与逆向工程、机器人、病毒等
- 高级语言
高级语言大体分为面向过程与面向对象两类,其中C语言(1972)时面向过程的语言,而C++(1982)、Java(1995 Applet)则是面向对象。
Java介绍
Java特性
- 简单性
- 面向对象
- 可移植性
- 高性能
- 分布式
- 动态性(通过反射特性)
- 多线程
- 安全性(异常机制)
- 健壮性
Java三大版本
- JavaSE:标准版(桌面程序,控制台开发…)
JavaME:嵌入式开发(手机,小家电)- JavaEE:企业级开发(web端,服务器开发…)
JDK、JRE、JVM
缩写 | 全称 |
---|---|
JDK | Java Development Kit |
JRE | Java Runtime Environment |
JVM | Java Virtual Machine |
Java程序运行机制
- 编译型(将一本书翻译成可以直接读的书)
- 解释型(请一个翻译帮忙看书)
java同时具有编译与解释,编译型和解释型各有好处
Java安装
Java安装
Step1 下载JDK(JDK8之后更新都是新特性,因此8版本就够了)
Oracle官网下载JDK
Step2 直接安装
- 注:记住安装路径
Step3 配置环境变量
- 我的电脑–>属性–>高级系统设置–>环境变量
- 新建系统变量name=JAVA_HOME,value=安装路径
- 在path中加入变量,%JAVA_HOME%\bin、%JAVA_HOME%\jre\bin
通过java -version(cmd)可以看到版本号即成功
卸载JDK
Step1 找到安装目录
从环境变量中找到
Step2 清除相关环境变量JAVA_HOME、path下的相关目录
Step3 使用java -version查看卸载是否成功
Java安装后文件目录
- bin:java、javac等
- include:一些必要的C语言文件
- jre:Java Runtime Environment
- lib:Java的类库文件
- src.zip:资源文件,基础类的源代码等
notepad++初试Java
-
新建文件helloworld.java
-
代码为
public class hello{
public static void main(String[] args){
System.out.print("hello,world");
}
}
- 打开cmd,执行javac /path/to/helloworld.java(编译)
- 执行java helloworld
- 如果出现错误可能是重复安装java导致java与javac版本不一致
Java开发工具IDE
集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。如微软的Visual Studio系列,Borland的C++ Builder、Delphi系列等。该程序可以独立运行,也可以和其它程序并用。IDE多被用于开发HTML应用软件。例如,许多人在设计网站时使用IDE(如HomeSite、DreamWeaver等),因为很多项任务会自动生成。百度百科
IDEA安装
- IDEA官网下载安装包,选择Ultimate
- 打开安装即可
- 可以对代码补全进行设置,具体优化过程可以百度或者到CSDN寻找,搜索对应版本即可,同时需要在安装目录对其占用内存设置进行修改,16G内存设置xms1024,xmx2024即可
Java基础
注释
- 单行注释,使用**//**
- 多行注释,使用 /* */
- Javadoc注释,使用 /** * */
关键字与标识符
Java所有的组成部分都需要名字,类名、变量名、以及方法名都被成为标识符。
数据类型
高级语言可以分为强类型语言与弱类型语言,强类型语言要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。
Java的数据类型可以分为两大类
- 基本类型
- 引用类型
Tips
- 位(bit)是计算机内部数据存储的最小单位,11001100是一个八位的二进制数
- 字节(byte)则是计算机中数据处理的基本单位,习惯上用大写的B表示
- 1B(byte)=8bit
- 字符是计算机中使用的字母、数字、字以及符合
- 1bit=1位,1B=8bit,1KB=1024B,1M=1024KB,1G=1024M
- Java中定义整数时,0b开头为2进制、0开头8进制、0x为十六进制
- Java中进行浮点数的对比,float和double类型只能表示一个大约数(接近但不等于),最好完全避免使用浮点数比较
- 所有的字符(char)本质还是数字,Unicode为例,占2字节,最多可以表示65536个字符(U0000-UFFFF),其中a=97,A=65
转义字符
- \t 制表符
- \n 换行
类型转换
由于Java是强类型语言,所以有些运算要进行类型转换
自动类型转换
高到低才需要强制类型转换
Tips:
- 不能对布尔值进行转换
- 不能把对象类型转换为其他不想干的类型
- 把高容量的转换为低容量,强制转换
- 转换的时候可能存在可能存在内存溢出或者精度问题
新特性
JDK7新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
变量
Java中变量都必须声明其类型
变量的要素
- 变量名
- 变量类型
- 作用域
作用域
- 类变量
- 实例变量
- 局部变量
//属性:变量
static double salary = 9999999;
//实例变量,从属于对象,如果不进行初始化,这个类型的默认值一般为0
//布尔值的默认值为false
//除了基本类型,其他默认都是null
int name;
//main方法
public static void main(String[] args){
//局部变量,必须声明与初始化
int i = 10;
Demo1 dm = new Demo1();
System.out.print(dm.name);
}
//其他方法
public void add(){
}
常量
//修饰符不存在先后顺序
static final double PI = 3.1415926;
final static double PI = 3.1415926;
命名规范
运算符
Tips
- ctrl+D复制当前行到下一行
- 运算时若有long则返回long,其余为int
- a=1; b=a++; c=++a; ==>a=3,b=1,c=3
逻辑运算
逻辑运算是短路运算,前一个已经可以得出结果则不会进行下面的判断
int a=1;
boolean b = (a>5)&&(a++>1);
console: a = 1 b = false
位运算
public static void main(String