Java学习笔记(韩顺平教育 b站有课程)

Java学习地址

视频地址

真的很推荐大家去听老韩的课(非常细谁听谁知道):【零基础 快速学Java】韩顺平 零基础30天学会Java_哔哩哔哩_bilibili

使用心得

说一下我使用的心得:

  1. 学过C和C++,作为软件工程的学生大一下学期的 Java 属实是混过去的(60飘过),当我真正想开始好好学专业课时才发现,面向对象的思想和语言真的很重要,而且几乎贯穿了你整个大学生涯,而Java 又作为典型的面向对象语言,毫不夸张的讲,不会 Java你会寸步难行,十分难受。

  2. 由于算是有一点基础,但是听老韩的课也没有想象中的啰嗦,大可以二倍速听前面的基础内容,如果你一点基础没有,一定要正常速度跟着老韩敲代码,如果你认为前面循环选择分支和数组你都没有什么问题,也可以从面向对象的思想直接开始,很基础很入门,同样也很实用。

编译器

可以使用老韩上课讲的命令行,但是由于我已经习惯了idea 所以直接用了idea进行编程,之后会出一篇简单使用 idea 的博客。

笔记软件

以前用的 有道云笔记 ,因为有学姐推荐,然后一直在用,但是开始记Java的时候用的 语雀 _,_给大家看一下界面,比较讨喜,同步也还不错。

Java学习笔记(韩顺平教育  b站有课程)

Java重要特点

  1. 面向对象(oop)
  2. 健壮性:强类型机制,异常处理,垃圾的自动收集
  3. 跨平台性的 (一个编译好的.class可以在多个系统下运行)

TEST.java -> TEST.class (java虚拟机机制) 在windows上和在Linux都可以运行

  1. java语言是 解释型的语言 : js php java 解释型语言(代码不能在编译器直接运行,需要用到解释器) c/c++ 编译型语言 (二进制代码,可以直接在编译器里面运行)

Java开发快速入门

执行流程分析

.java文件 编译后 .class文件 运行后 结果

(源文件) Javac (字节码文件) java

编译:通过编译器将其编译成JVM可以识别的字节码文件 通过javac编译工具对其.java文件进行编译 如果程序没有错误 酒鬼生成字节码文件,即为可以执行的Java程序

运行:本质就是将 .class文件装载到 jvm机执行

注意:对修改后的Java文件需要重新编译后,再生成新的.class文件后才能正常运行

Java开发注意事项

Java学习笔记(韩顺平教育  b站有课程)
  1. 由 class 组成
  2. main 方法由固定的书写格式
  3. 一个源文件最多只有一个 public 类 但其他类的个数不限制
  4. 每一个类编译以后,都对应一个.class文件 (,class 文件可以为空类)
  5. 文件中如果有public类,文件必须与public类同名
  6. 可以将main方法写在非public类中,然后指定运行当前类,这样入口就是非public类的main方法

Java学习笔记(韩顺平教育  b站有课程)

Java转义字符

//注释,也代表转义字符的演示

//    \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里的错误)

  1. 找不到文件
  2. 主类名和文件名不一致
  3. 缺少分号
  4. 英文与中文字符混在一起(非法字符)
  5. 拼写错误?环境错误?(业务错误)

注释(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代码规范

  1. 类、方法的注释要以Javadoc的方式来写;
  2. 非Javadoc注释是为了给代码的维护者来(阅读者)看;
  3. tab将选中代码整体右移,shift+tab将选中代码整体左移;
  4. 运算符和等号两边习惯加上两个空格;
int n;
    int a = 10;
    int b = a + n;
  1. 源文件要用 _UTF-8_存储;
  2. Java代码每一行的行宽尽量不要超过80个字符;
  3. 代码编写的 次行风格_和 行尾风格_。
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){
            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)
        {
            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);
}

变量的基本原理

Java学习笔记(韩顺平教育  b站有课程)

变量的使用基本步骤

  1. 声明变量
  2. 赋值 (把 60赋给a)
  3. 使用
  4. 输出 (没有输出的程序是没有意义的)

面向对象编程

用单独的变量来解决问题不利于解决数据的管理

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)
}

理解类与对象

  • 类是抽象的,概念的,比如人,猫。
  • 对象是实例的,具体的,代表一个具体事物。
  • 类是对象的模板,对象是类的实例。

对象在内存中的存在形式

数据一定有它对应地址

Java学习笔记(韩顺平教育  b站有课程)

属性的注意事项

  1. 属性的定义语法词变量:访问修饰符、属性类型、属性名
class Person{
    int age;
    String name;
    double str;
    boolean isPass;
}

public static void main(String [] args){
    //  创建person对象
    // p1是对象名(对象引用)
    // new Persom() 创建的对象空间(数据)才是真正的对象
    Person p1 = new Person();

}

Original: https://www.cnblogs.com/WScoconut/p/16099934.html
Author: 王回甘
Title: Java学习笔记(韩顺平教育 b站有课程)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/571268/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • java动态编译

    Java动态编译:http://pfmiles.github.io/blog/dynamic-java/ 动态编译代码:https://github.com/giraffe/Dyn…

    Java 2023年5月29日
    087
  • 可恶,又是个线上问题

    这几天,在搞 ShardingSphere,这不又来了一个问题嘛,启动的时候报了一个NPE出来。 好在,这个问题不影响使用,只是启动会报点错,接下来,又是辛苦的排查过程。 直接定位…

    Java 2023年6月13日
    077
  • Redis 安装与使用

    Redis 介绍 Redis 是由 Salvatore Sanfilippo 写的 key-value 存储系统,是一个跨平台的非关系型数据库(NoSQL)。 Redis 是用C语…

    Java 2023年6月16日
    081
  • 【异常处理】Assistive Technology not found: com.sun.java.accessibility.AccessBridge

    十一回来之后,工作电脑上的抓包工具Charles突然启动不起来了,双击图标后,一闪而过,就没动静了。 不知道是不是因为之前安装了什么工具、软件引起的。 打开CMD命令行,跳转到目录…

    Java 2023年6月5日
    079
  • 2-基本语法

    一、变量 1.按数据类型分类 详细说明: 整型:byte(1字节=8bit) \ short(2字节) \ int(4字节) \ long(8字节) byte范围:-128 ~ 1…

    Java 2023年6月7日
    072
  • 高端程序员上班摸鱼指南

    原创:微信公众号 码农参上,欢迎分享,转载请保留出处。 哈喽大家好啊,我是Hydra。虽然说…

    Java 2023年6月5日
    0199
  • if elseif else 怎么用?

    问题:求三个数中的最大值 上代码– 第一种 两两比较 每次取较大值 和第三个值比较 最终得到最大值 private static void maxIf2() { int…

    Java 2023年6月8日
    074
  • 为什么程序猿DD热衷于内容输出与分享?

    一、热衷于内容输出与分享 我是程序猿DD,大家知道我热衷于内容输出与分享。比如我一直有在产出博客或维护开源项目,是因为平时不沉迷游戏或追剧,空下来就喜欢整理整理最近碰到的问题,那么…

    Java 2023年6月13日
    065
  • 如何等待ajax完成再执行相应操作

    ajax广泛应用于异步请求,对于大多数业务来说,这是十分方便的,但对于一些特殊的业务,ajax的异步性会起到相反的作用。 例如在ajax请求成功后,后续的操作需要依赖ajax执行成…

    Java 2023年6月6日
    083
  • Jenkins中HTML报告无法正常显示问题解决

    自动化结果生成了HTML报告,但是在Jenkins中打开报告却显示空白,打开控制台,可以看到该报错 参考https://www.jenkins.io/doc/book/securi…

    Java 2023年6月13日
    097
  • 二分查找法

    使用二分查找的条件: 有序数组 需求 在数组{1,2,3,4,5,6,7,8,9,10}中,查找某个元素的位置 实现步骤 定义两个变量,表示要查找的范围。默认min = 0 ,ma…

    Java 2023年6月14日
    062
  • Android学习探索之Java 8 在Android 开发中的应用

    前言: Java 8推出已经将近2年多了,引入很多革命性变化,加入了函数式编程的特征,使基于行为的编程成为可能,同时减化了各种设计模式的实现方式,是Java有史以来最重要的更新。但…

    Java 2023年5月29日
    078
  • Redis分布式锁实现

    Redis分布式锁实现 在分布式环境下,利用Redis实现锁机制,避免资源竞争的做法非常常见。这里探讨一下Redis分布式锁的实现方式、可能存在的问题以及适用场景。 setnx 最…

    Java 2023年6月13日
    099
  • Javaweb学习-HTML

    重新开始HTML,之前学的都忘了 posted @2022-03-24 21:27 HelloHui 阅读(7 ) 评论() 编辑 Original: https://www.cn…

    Java 2023年6月9日
    091
  • JavaSE_多线程入门 线程安全 死锁 状态 通讯 线程池

    对JavaSE_多线程入门 线程安全 死锁 状态 通讯 线程池进行简要总结 1 多线程入门 1.1 多线程相关的概念 并发与并行 并行:在同一时刻,有多个任务在多个CPU上同时执行…

    Java 2023年6月9日
    085
  • Lambda表达式使用场景

    java;gutter:true; // list集合 ArrayList list = new ArrayList<>(); list.add(new Person(…

    Java 2023年6月15日
    079
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球