Java学习笔记(韩顺平教育 b站有课程)
Java重要特点
- 面向对象(oop)
- 健壮性:强类型机制,异常处理,垃圾的自动收集
- 跨平台性的 (一个编译好的.class可以在多个系统下运行)
TEST.java -> TEST.class (java虚拟机机制) 在windows上和在Linux都可以运行
- java语言是解释型的语言 : js php java 解释型语言(代码不能在编译器直接运行,需要用到解释器) c/c++ 编译型语言 (二进制代码,可以直接在编译器里面运行)
Java开发快速入门
执行流程分析
.java文件 编译后 .class文件 运行后 结果
(源文件) Javac (字节码文件) java
编译:通过编译器将其编译成JVM可以识别的字节码文件 通过javac编译工具对其.java文件进行编译 如果程序没有错误 酒鬼生成字节码文件,即为可以执行的Java程序
运行:本质就是将 .class文件装载到 jvm机执行
注意:对修改后的Java文件需要重新编译后,再生成新的.class文件后才能正常运行
Java开发注意事项

- 由 class 组成
- main 方法由固定的书写格式
- 一个源文件最多只有一个 public 类 但其他类的个数不限制
- 每一个类编译以后,都对应一个.class文件 (,class 文件可以为空类)
- 文件中如果有public类,文件必须与public类同名
- 可以将main方法写在非public类中,然后指定运行当前类,这样入口就是非public类的main方法

Java转义字符
Jav
//注释,也代表转义字符的演示 // \n 换行符
// \t 对齐符
public static void main(String[] args){
System.out.println(" ");
}
// \ 输出一个斜杠 写法: \\win11
// 第一个用作转义符 第二个才是真正输出的\
// 如果要输出两个 \ 写法: \\\win11 // 想要输出双引号 “” 写法: "老韩说:\"要好好学习\"" // \r 一个回车
public static void main(String[] args){
System.out.println("韩老师教育\r北京");
}
// 输出结果为:北京师教育 如果改为: public static void main(String[] args){
System.out.println("韩老师教育\r\n北京");
}
// 输出结果为:韩老师教育
// 北京
易犯错误(用cmd里的错误)
- 找不到文件
- 主类名和文件名不一致
- 缺少分号
- 英文与中文字符混在一起(非法字符)
- 拼写错误?环境错误?(业务错误)
注释(comment)
- 提高代码可读性(思想通过注释表达出来)
- 帮助其他阅读你代码的人理解代码
- 对你自己的程序负责任
代码演示
// 单行注释 /*
多行注释 */ 细节: 注释掉的代码块是不会被程序 (解释机) 执行 多行注释中不允许再嵌套多行注释 有两个或多个结尾字符!!!! javadoc 文档注释 基本格式: javadoc标签 Javadoc -d 文件夹名 -xx -yy 文件.java (-xx和-yy就是标签) /**
* @author 王帅
* @version 1.0
*/ public static void main(String[] args){
System.out.println(" ");
}
Javadoc标签汇总:
|
标签 |
描述 |
示例 |
|
@author |
标识一个类的作者 |
@author description |
|
@deprecated |
指名一个过期的类或成员 |
@deprecated description |
|
{@docRoot} |
指明当前文档根目录的路径 |
Directory Path |
|
@exception |
标志一个类抛出的异常 |
@exception exception-name explanation |
|
{@inheritDoc} |
从直接父类继承的注释 |
Inherits a comment from the immediate surperclass. |
|
{@link} |
插入一个到另一个主题的链接 |
{@link name text} |
|
{@linkplain} |
插入一个到另一个主题的链接,但是该链接显示纯文本字体 |
Inserts an in-line link to another topic. |
|
@param |
说明一个方法的参数 |
@param parameter-name explanation |
|
@return |
说明返回值类型 |
@return explanation |
|
@see |
指定一个到另一个主题的链接 |
@see anchor |
|
@serial |
说明一个序列化属性 |
@serial description |
|
@serialData |
说明通过writeObject( ) 和 writeExternal( )方法写的数据 |
@serialData description |
|
@serialField |
说明一个ObjectStreamField组件 |
@serialField name type description |
|
@since |
标记当引入一个特定的变化时 |
@since release |
|
@throws |
和 @exception标签一样. |
The @throws tag has the same meaning as the @exception tag. |
|
{@value} |
显示常量的值,该常量必须是static属性。 |
Displays the value of a constant, which must be a static field. |
|
@version |
指定类的版本 |
@version info |
文档注释范例
import java.io.*; /**
* 这个类演示了文档注释
* @author Ayan Amhed
* @version 1.2
*/
public class SquareNum {
/**
* This method returns the square of num.
* This is a multiline description. You can use
* as many lines as you like.
* @param num The value to be squared.
* @return num squared.
*/
public double square(double num) {
return num * num;
}
/**
* This method inputs a number from the user.
* @return The value input as a double.
* @exception IOException On input error.
* @see IOException
*/
public double getNumber() throws IOException {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader inData = new BufferedReader(isr);
String str;
str = inData.readLine();
return (new Double(str)).doubleValue();
}
/**
* This method demonstrates square().
* @param args Unused.
* @return Nothing.
* @exception IOException On input error.
* @see IOException
*/
public static void main(String args[]) throws IOException
{
SquareNum ob = new SquareNum();
double val;
System.out.println("Enter value to be squared: ");
val = ob.getNumber();
val = ob.square(val);
System.out.println("Squared value is " + val);
}
}
Java代码规范
- 类、方法的注释要以Javadoc的方式来写;
- 非Javadoc注释是为了给代码的维护者来(阅读者)看;
- tab将选中代码整体右移,shift+tab将选中代码整体左移;
- 运算符和等号两边习惯加上两个空格;
int n;
int a = 10;
int b = a + n;
- 源文件要用 UTF-8 存储;
- Java代码每一行的行宽尽量不要超过80个字符;
- 代码编写的 次行风格 和 行尾风格 。
import java.awt.*;
import javax.swing.*; public class Circle99Frame extends JFrame {
public static void main(String args[]){
JFrame frame=new Circle99Frame();
frame.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
frame.setSize(600,600);
frame.setVisible(true);
}
public void paint( Graphics g){
g.drawString("circle 99",20,20);
int x0=getSize().width/2;
int y0=getSize().height/2;
for(int r=0;r<getSize().height/2;r+=10){
g.setColor(getRandomColor());
g.drawOval(x0-r,y0-r,r*2,r*2);
}
}
Color getRandomColor(){
return new Color(
(int)(Math.random()*255),//random本身只产生(0~1)之间的小数,
(int)(Math.random()*255),
(int)(Math.random()*255)
);
}
}
import java.awt.*;
import javax.swing.*; public class Circle99Frame extends JFrame
{
public static void main(String args[])
{
JFrame frame=new Circle99Frame();
frame.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
frame.setSize(600,600);
frame.setVisible(true);
}
public void paint( Graphics g)
{
g.drawString("circle 99",20,20);
int x0=getSize().width/2;
int y0=getSize().height/2;
for(int r=0;r<getSize().height/2;r+=10)
{
g.setColor(getRandomColor());
g.drawOval(x0-r,y0-r,r*2,r*2);
}
}
Color getRandomColor()
{
return new Color(
(int)(Math.random()*255),//random本身只产生(0~1)之间的小数,
(int)(Math.random()*255),
(int)(Math.random()*255)
);
}
}
变量
变量是程序的基本组成单位。
不论是用通过哪种高级语言编写程序,变量都是基本单位。
变量基本要素
类型,名称,数值
public static void main(String [] args){
int a=1;
int b=3;
b=89;
System.out.println(a);
System.out.println(b);
}
变量的基本原理

变量的使用基本步骤
- 声明变量
- 赋值 (把 60赋给a)
- 使用
- 输出 (没有输出的程序是没有意义的)
面向对象编程
用单独的变量来解决问题不利于解决数据的管理
Java的设计者引入类与对象就是基于现有的问题新开发的一种手段和技术
class Cat{
// 属性(成员变量)field
String name;
int age;
String color;
}
//实例化一个猫类
public static void main(String [] args){
Cat cat1 = new Cat(); //用 cat1 来接受new的cat
cat1.name = "小白";
cat1.age = 3;
cat1.color = "白色";
Cat cat2 = new Cat();
cat2.name = "小黑";
cat2.age = 6;
cat2.color = "黑色";
//访问对象属性
System.out.println("第一只猫的信息"+cat1.name+" "+cat1.age+" "+cat1.color)
}
理解类与对象
- 类是抽象的,概念的,比如人,猫。
- 对象是实例的,具体的,代表一个具体事物。
- 类是对象的模板,对象是类的实例。
对象在内存中的存在形式
数据一定有它对应地址

属性的注意事项
- 属性的定义语法词变量:访问修饰符、属性类型、属性名
class Person{
int age;
String name;
double str;
boolean isPass;
}
public static void main(String [] args){
// 创建person对象
// p1是对象名(对象引用)
// new Persom() 创建的对象空间(数据)才是真正的对象
Person p1 = new Person();
}
Java学习笔记(韩顺平教育 b站有课程)的更多相关文章
- 20145316许心远《Java学习笔记(第8版)》课程总结
20145316许心远<Java学习笔记(第8版)>课程总结 每周读书笔记链接汇总 ▪ 第一周读书笔记 ▪ 第二周读书笔记 ▪ 第三周读书笔记 ▪ 第四周读书笔记 ▪ 第五周读书笔记 ▪ ...
- Linux学习笔记-韩顺平
这是我学习哔哩哔哩UP主韩顺平的2021韩顺平图解Linux课程的学习笔记. 课程地址:2021韩顺平图解Linux课程 Linux基础篇-Linux目录结构 基本介绍 linux 的文件系统是采用级 ...
- Java学习笔记4
Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...
- 【Java学习笔记之二十六】深入理解Java匿名内部类
在[Java学习笔记之二十五]初步认知Java内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客.在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意 ...
- java学习笔记15--多线程编程基础2
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note15.html,转载请注明源地址. 线程的生命周期 1.线程的生命周期 线程从产生到消亡 ...
- 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...
- 0035 Java学习笔记-注解
什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...
- Java学习笔记(04)
Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...
- 0032 Java学习笔记-类加载机制-初步
JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...
随机推荐
- Thinkphp3.2数据库字段自动转小写,字段大小写自动转换,以及thinkphp3一些bug
公司在使用thinkphp框架,版本也有些老,被一些bug坑了,记录一下 自动转小写解决办法,最简单的就是在配置文件加上 'DB_PARAMS' => [\PDO::ATTR_CASE => ...
- tensorflow源码解析之framework-shape_inference
目录 什么是形状推断 InferenceContext 关系图 涉及的文件 迭代记录 1. 什么是形状推断 前面我们讲到op的时候,提到了操作的注册器OpRegistry,并且提到,其中注册的数据是一 ...
- Excel用Power Query把文件夹下所有文件合并为一个与合并多个表格
Excel用Power Query把文件夹下所有文件合并为一个与合并多个表格 在 Excel Power Query 未出来之前,把文件夹下所有文件合并为一个与合并同一工作表中的多个工作表,需要用 V ...
- JDK ThreadLocal解析
Java ThreadLocal解析 ThreadLocal 线程本地变量, 线程私有, 在 Thread 类中用 ThreadLocal.ThreadLocalMap threadLocals 以数 ...
- django主要文件介绍及django请求生命流程图
-mysite文件夹 --mysite文件夹 --setting.py 配置文件 --urls.py 路由和视图函数对应关系(路由层) --wsgi.py wsgiref模块 --manage.py ...
- 【自动化基础】allure描述用例详细讲解及实战
前言 allure可以输出非常精美的测试报告,也可以和pytest进行完美结合,不仅可以渲染页面,还可以控制用例的执行.下面就对allure的使用进行一个详细的介绍和总结. 需要准备的环境: pyth ...
- linux下查看文件编码及修改编码介绍
1.在Vim中可以直接查看文件编码:set fileencoding即可显示文件编码格式.如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在~/.vimrc 文件中添 ...
- 有关电控制图软件EPLAN的安装,下面有破解版本2.7
前段时间刚刚接触这一块,就安装个软件老是出问题,所以我通过自己的努力学会啦,来给正要学习EPLAN的同学发福利啦 15:07:48 安装包发放在百度网盘来自取呀 建议安装我勾选的这个哦 链接:htt ...
- loj6077. 「2017 山东一轮集训 Day7」逆序对
题目描述: loj 题解: 容斥+生成函数. 考虑加入的第$i$个元素对结果的贡献是$[0,i-1]$,我们可以列出生成函数. 长这样:$(1)*(1+x)*(1+x+x^2)*--*(1+x+x^2 ...
- Zookeeper 有哪几种几种部署模式?
部署模式:单机模式.伪集群模式.集群模式.