黑马程序员Java基础学习(一)

传智播客.黑马程序员《Java 基础入门》课后习题答案 《Java 基础入门》课后习题答案 第 第 1 章 Java 开发入门 一、填空题 1、 Java EE、Java SE、Java ME 2、 JRE 3、 javac 4、 bin 5、 path、classpath 二、选择题 1、ABCD 2、C 3、D 4、B 5、B 三、简答题 1、 面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。 2、 JRE(Java Runtime Environment,Java 运行时环境),它相当于操作系统部分,提供了 Java 程序运 行时所需要的基本条件和许多 Java 基础类,例如,IO 类、GUI 控件类、网络类等。JRE 是提供给 普通用户使用的,如果你只想运行别人开发好的 Java 程序,那么,你的计算机上必须且只需安装 JRE。 JDK(Java Development Kit,Java 开发工具包),它包含编译工具、解释工具、文档制作工具、打 包工具多种与开发相关的工具,是提供给 Java 开发人员使用的。初学者学习和使用 Java 语言时, 首先必须下载和安装 JDK。JDK 中已经包含了 JRE 部分,初学者安装 JDK 后不必再去下载和安装 JRE 了。 立即下载

目录

注释

字面量

字面量的分类

变量

使用变量的几点注意事项

变量里数据的存储原理(进制)

二进制

十进制转二进制的算法: 除二取余法

ASCII码表

二进制转十进制

二进制如何计算成八进制

Java的数据类型

基本数据类型

关键字、标识符

Java程序的基本语法

方法

方法如何使用

方法的一些注意事项

类型转换

自动类型转换

强制类型转换

表达式的自动类型提升

输入输出

运算符

基本的算术运算符

+符号在Java中的特殊用途

自增自减运算符

自增自减运算符

自增自减拓展案例

分步分析:

赋值运算符

关系运算符、三元运算符

三元运算符

逻辑运算符

阶段小案例

健康计算器

程序说明:

System.out.println和System.out.print和System.out.printf的区别详解

 总结

程序流程控制执行

顺序结构-自上而下的执行程序

If分支结构-根据条件的真或假,来决定执行某段代码。

分支结构-根据条件,选择对应的代码执行

switch分支结构-是通过比较值是否相等,来决定执行哪条分支。

循环结构-控制某段代码重复的执行

for循环-控制一段代码反复执行很多次

While循环

do-while循环

三种循环的使用小结

死循环

循环嵌套-

break、continue

Random生成随机数

Random生成随机数需要几步?

阶段小案例

简单计算器

程序说明

猜数字小游戏

开发一个验证码

1、随机验证码的核心实现逻辑是如何进行的?

数组

数组的定义方式二:动态初始化数组

数组的遍历

二维数组

面向对象编程

类的基本语法

类的成分:构造器

this关键字

封装

JavaBean——实体类

static

static修饰成员变量

static修饰方法

静态方法的应用

静态方法,实例方法访问相关的几点注意事项

案例-简易版电影信息展示系统


注释

字面量

就是程序中能直接书写的数据,学这个知识的重点是:搞清楚Java程序中数据的书写格式

字面量的分类

变量

变量就是内存中的一块区域,可以理解成一个盒子,用来装程序要处理的数据的。

变量特点和应用场景

使用变量的几点注意事项

变量里数据的存储原理(进制)

二进制

只有0、1,按照逢2进1的方式表示数据

十进制转二进制的算法: 除二取余法

ASCII码表

二进制转十进制

八进制、十六进制

二进制如何计算成八进制

Java的数据类型

基本数据类型

4大类8种

数据类型

内存占用(字节数)

数据范围

整型

byte

1

-128~127

short

2

-32768~32767

int(默认)

4

-2147483648~2147483647 (10位数,大概21亿多)

long

8

-9223372036854775808 ~ 9223372036854775807 (19位数)

浮点型(小数)

float

4

1.401298 E -45 到 3.4028235 E +38 

double(默认)

8

4.9000000 E -324 到1.797693 E +308

字符型

char

2

0-65535

布尔型

boolean

1

true,false

引用数据类型:String

23 ,默认是int类型 , 加上L/l就是long类型的数据了。
23.8,默认是double类型,加上F/f就是float类型了。

关键字、标识符

关键字是java用了的,我们就不能用来为做为自己的:类名、变量名,否则会报错!

标志符就是名字(如类名、变量名…都是标识符)。

注意:取名字是有规则的

Java程序的基本语法

方法

方法是一种用于执行特定任务或操作的代码块,代表一个功能,它可以接收数据进行处理,并返回一个处理后的结果。

方法如何使用

定义满足需求的方法格式,主要考虑哪两方面?
方法是否需要接收数据,方法是否需要返回数据。

如果方法不需要返回数据,返回值类型必须声明成void(无返回值声明)方法内部不可以使用return返回数据

方法的一些注意事项

类型转换

为什么要进行类型转换?
存在不同类型的变量赋值给其他类型的变量

自动类型转换

byte < short < int < float < double

强制类型转换

表达式的自动类型提升

输入输出

使用Scanner接收用户键盘输入的数据,需要三个步骤:

运算符

基本的算术运算符

+符号在Java中的特殊用途

自增自减运算符

注意:
++ 、-- 只能操作变量,不能操作字面量的。

自增自减运算符

总结:

自增、自减运算符放在变量前后有区别吗?
如果单独使用放前放后是没有区别的。
非单独使用:在变量前 ,先进行变量自增/自减,再使用变量。
非单独使用:在变量后 ,先使用变量,再进行变量自增/自减。

自增自减拓展案例

解答:

分步分析:
  1. c++ - 使用 c 的当前值 10,然后 c 增加 1。

    • c++ 的值为 10
    • c 变为 11
  2. ++c - c 增加 1,然后使用新值。

    • ++c 的值为 12
    • c 变为 12
  3. --d - d 减少 1,然后使用新值。

    • --d 的值为 4
    • d 变为 4
  4. ++d - d 增加 1,然后使用新值。

    • ++d 的值为 5
    • d 变为 5
  5. 1 - 保持不变。

    • 值为 1

赋值运算符

+=可以实现数据的累加,把别人的数据加给自己。

关系运算符、三元运算符

判断数据是否满足条件,最终会返回一个判断的结果,这个结果是布尔类型的值:true或者false。

注意:在java中判断是否相等一定是“== ” ,千万不要把  “== ”误写成 “=”。   

三元运算符

逻辑运算符

总结:

逻辑运算符有哪些,有什么特点?
& : 有一个为false、结果是false
&&: 一个为false、结果是false,但前一个为false,后一个条件不执行了
| : 有一个为true、结果是true
|| :一个为true、结果是true,但前一个为true,后一个条件不执行了
! :!false=true、 !true=false
^  :相同是false、不同是true。
注意:实际开发中、常用的逻辑运算符还是:&& 、 || 、 !

阶段小案例

健康计算器

代码解答:

根据题目要求,我们需要开发一个Java程序,用来计算用户的BMI(身体质量指数)和BMR(基础代谢率)。根据题目中提供的公式,我们可以编写以下Java代码:

  1. BMR公式:
    • 对于男性:

      BMR=88.362+(13.397×体重(kg))+(4.799×身高(cm))−(5.677×年龄(岁))BMR=88.362+(13.397×体重(kg))+(4.799×身高(cm))−(5.677×年龄(岁))

    • 对于女性:

      BMR=447.593+(9.247×体重(kg))+(3.098×身高(cm))−(4.330×年龄(岁))BMR=447.593+(9.247×体重(kg))+(3.098×身高(cm))−(4.330×年龄(岁))

  2. BMI 计算公式:
    BMI = 体重 (kg) / (身高 (m))²

    • 体重单位为千克,身高单位为米。
  3. BMI 分类:

    • BMI < 18.5:体重过轻
    • 18.5 ≤ BMI < 24.9:正常范围
    • 25 ≤ BMI < 29.9:超重
    • BMI ≥ 30:肥胖

程序说明:

  1. BMI计算:根据用户输入的体重和身高,调用calculateBMI方法计算BMI。
  2. BMR计算:根据用户的性别、年龄、体重和身高,调用相应的calculateBMRForMen或calculateBMRForWomen方法来计算BMR。
  3. 输入输出:程序首先让用户输入性别、年龄、体重和身高,然后分别输出BMI和BMR的结果。
// 方法用于计算BMI
        public static double calculateBMI(double weight, double height) {
            return weight / (height * height);  // height is in meters
        }

        // 方法用于计算男性的BMR
        public static double calculateBMRForMen(double weight, double height, int age) {
            return 88.362 + (13.397 * weight) + (4.799 * height) - (5.677 * age);
        }

        // 方法用于计算女性的BMR
        public static double calculateBMRForWomen(double weight, double height, int age) {
            return 447.593 + (9.247 * weight) + (3.098 * height) - (4.330 * age);
        }

        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);

            // 获取用户输入
            System.out.print("请输入您的性别(男/女):");
            String gender = scanner.nextLine();

            System.out.print("请输入您的年龄(岁):");
            int age = scanner.nextInt();

            System.out.print("请输入您的体重(kg):");
            double weight = scanner.nextDouble();

            System.out.print("请输入您的身高(cm):");
            double heightInCm = scanner.nextDouble();

            // 将身高从厘米转换为米
            double heightInMeters = heightInCm / 100;

            // 计算BMI
            double bmi = calculateBMI(weight, heightInMeters);
            System.out.printf("您的BMI是:%.2f\n", bmi);

            // 根据性别计算BMR
            double bmr;
            if (gender.equals("男")) {
                bmr = calculateBMRForMen(weight, heightInCm, age);
            } else if (gender.equals("女")) {
                bmr = calculateBMRForWomen(weight, heightInCm, age);
            } else {
                System.out.println("性别输入错误!");
                scanner.close();
                return;
            }

            // 输出BMR
            System.out.printf("您的BMR是:%.2f\n", bmr);

            // 关闭扫描器
            scanner.close();
        }

System.out.println和System.out.print和System.out.printf的区别详解

在Java中,`System.out.println()`, `System.out.print()`, 和 `System.out.printf()` 都是用来向标准输出流(通常是控制台)打印信息的方法。它们各自有不同的特点和使用场景:

 System.out.println()

- 功能:这个方法会将指定的内容打印到控制台上,并且在内容的末尾自动添加一个换行符。
- 用法:

System.out.println("Hello, world!");

结果:这会在控制台上显示 "Hello, world!" 并跳转到下一行。

 System.out.print()

- 功能:与 `println` 类似,但不会在内容的末尾添加换行符。这意味着后续的输出将会紧跟在这个输出之后,而不是新起一行。
- 用法:

System.out.print("Hello, ");
  System.out.print("world!");

结果:这会在同一行上连续显示 "Hello, world!"。

System.out.printf()

- 功能:这是一个更强大的格式化输出方法,它允许你按照特定的格式来输出数据。它类似于C语言中的`printf`函数。
- 用法:

  int age = 25;
  double height = 1.75;
  System.out.printf("Age: %d, Height: %.2f\n", age, height);

- 格式说明符:
  - `%d` 用于整数
  - `%f` 用于浮点数
  - `%s` 用于字符串
  - `%c` 用于字符
  - `%b` 用于布尔值
  - `%.nf` 中的 `.n` 指定小数点后的位数
 结果:这会在控制台上显示 "Age: 25, Height: 1.75",并且每个数值都按照给定的格式进行显示。

 总结

- 如果你需要简单的输出一些文本并且希望每条输出都在新的一行开始,那么使用 `System.out.println()`。
- 如果你不希望每次输出后都换行,而是想让输出紧跟着前一条输出,那么使用 `System.out.print()`。
- 如果你需要对输出进行格式化,比如控制数字的小数点位数、对齐方式等,那么应该使用 `System.out.printf()`。

这三个方法都是 `PrintStream` 类的一部分,而 `System.out` 是 `PrintStream` 的一个实例,专门用来处理标准输出。

程序流程控制执行

顺序结构-自上而下的执行程序

If分支结构-根据条件的真或假,来决定执行某段代码。

if分支有三种形式

分支结构-根据条件,选择对应的代码执行

switch分支结构-是通过比较值是否相等,来决定执行哪条分支。

switch分支结构的几点注意事项

循环结构-控制某段代码重复的执行

for循环-控制一段代码反复执行很多次

for循环案例:求和

for循环案例:求奇数和

for循环案例:求奇数和-方式二

for循环案例:求水仙花数

如果还要知道水仙花数的个数怎么办?
在循环外定义一个变量count用于记录水仙花数。
每输出水仙花数时,让count++。

While循环

什么时候用for,什么时候用while?

功能上是完全一样的,for能解决的while也能解决,反之亦然。
使用规范:知道循环几次:使用for;不知道循环几次建议使用:while。

复利的力量

While的应用案例

do-while循环

三种循环的使用小结

死循环

可以一直执行下去的一种循环,如果没有干预不会停下来。

循环嵌套-

break、continue

Random生成随机数

Random生成随机数需要几步?

导包:import java.util.Random;
Random r = new Random();
int number = r.nextInt(10);

如何生成 65 – 91之间的随机数?
65 – 91  =>  -65 => (0 - 26)+ 65
int number = r.nextInt(27) + 65;

阶段小案例

简单计算器


    public static void main(String[] args) {
        // 创建Scanner对象以获取用户输入
        Scanner scanner = new Scanner(System.in);

        // 提示用户输入第一个数字
        System.out.print("请输入第一个数字: ");
        double num1 = scanner.nextDouble();

        // 提示用户输入第二个数字
        System.out.print("请输入第二个数字: ");
        double num2 = scanner.nextDouble();

        // 提示用户输入运算符
        System.out.print("请输入运算符 (+, -, *, /): ");
        char operator = scanner.next().charAt(0);

        // 计算并输出结果
        double result;
        switch (operator) {
            case '+':
                result = num1 + num2;
                break;
            case '-':
                result = num1 - num2;
                break;
            case '*':
                result = num1 * num2;
                break;
            case '/':
                if (num2 != 0) {
                    result = num1 / num2;
                } else {
                    System.out.println("错误:除数不能为零。");
                    return; // 结束程序
                }
                break;
            default:
                System.out.println("无效的运算符,请使用 +, -, * 或 /.");
                return; // 结束程序
        }

        // 显示结果
        System.out.printf("%.2f %c %.2f = %.2f\n", num1, operator, num2, result);
    
}

程序说明

  1. 导入Scanner类:用于读取用户的输入。
  2. 创建Scanner对象:scanner对象用来从标准输入流中读取数据。
  3. 读取用户输入:分别读取两个数字和一个运算符。
  4. switch语句:根据运算符进行相应的计算。如果运算符是'/'并且第二个数字是0,则会打印一条错误消息并结束程序。
  5. 格式化输出:使用System.out.printf()方法来格式化输出结果,保留两位小数。

猜数字小游戏

 public static void main(String[] args) {
        // 创建一个Random对象来生成随机数
        Random random = new Random();
        // 生成1-100之间的随机整数(包括1和100)
        int targetNumber = random.nextInt(100) + 1;
        
        // 创建Scanner对象以获取用户输入
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("猜数字游戏开始!我已经想好了一个1到100之间的数字。");
        
        // 死循环,直到用户猜中为止
        while (true) {
            // 提示用户输入猜测的数字
            System.out.print("请输入你的猜测:");
            int guess = scanner.nextInt();
            
            // 检查用户输入是否与目标数字匹配
            if (guess < targetNumber) {
                System.out.println("太小了!");
            } else if (guess > targetNumber) {
                System.out.println("太大了!");
            } else {
                // 如果猜中,打印恭喜信息并退出循环
                System.out.println("恭喜你!你猜对了数字 " + targetNumber + "!");
                break; // 结束循环
            }
        }
        
        // 关闭scanner
        scanner.close();
        System.out.println("游戏结束。感谢参与!");
    
}
  • 使用Random类生成了一个1至100之间(含)的随机整数。
  • 通过Scanner类来接收用户的输入。
  • 通过无限循环让玩家可以持续猜测,直到他们正确地猜出那个随机数。
  • 根据玩家的猜测给出相应的反馈:“太大了”或“太小了”,并在玩家猜中后打印祝贺信息并退出循环。

开发一个验证码

1、随机验证码的核心实现逻辑是如何进行的?

定义一个for循环,循环5次。
随机生成0|1|2的数据,依次代表当前要生成的字符是:数字、大写字母、小写字母。
把0、1、2交给switch生成对应类型的随机字符。
在循环外定义一个String类型的变量用来连接生成的随机字符。
循环结束后,返回String类型的变量即是生成的随机验证码。



    // 定义可用字符集:数字 + 大写字母 + 小写字母
    private static final String CHARACTERS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    
    public static void main(String[] args) {
        int length = 6; // 这里设置验证码长度为6位,可以根据需要更改
        String code = generateVerificationCode(length);
        System.out.println("生成的验证码是: " + code);
    }

    /**
     * 生成指定长度的验证码。
     *
     * @param length 验证码长度
     * @return 生成的验证码字符串
     */
    public static String generateVerificationCode(int length) {
        if (length <= 0) {
            throw new IllegalArgumentException("验证码长度必须大于0");
        }
        
        Random random = new Random();
        StringBuilder sb = new StringBuilder(length);

        for (int i = 0; i < length; i++) {
            // 随机选择一个字符
            int index = random.nextInt(CHARACTERS.length());
            char c = CHARACTERS.charAt(index);
            sb.append(c);
        }

        return sb.toString();
    
}
  • CHARACTERS 字符串包含了所有的数字、大写字母和小写字母。
  • generateVerificationCode 方法接收一个整数参数 length 来指定验证码的长度,并返回一个由随机字符组成的字符串。
  • 在主函数中,我们设置了验证码的长度为6个字符,你可以根据实际需求修改这个值。
  • 如果传入的长度小于等于0,则会抛出异常,以确保验证码长度合理。

数组

数组的定义方式二:动态初始化数组

数组的遍历

二维数组

二维数组的访问

二维数组的遍历

面向对象编程

对象本质上是一种特殊的数据结构(可以理解成一张表)。

class也就是类,也称为对象的设计图(或者对象的模板)。

类的基本语法

类的成分:构造器

this关键字

this主要用来解决:变量名称冲突问题的。

在这段代码中,this 是一个关键字,它引用了当前对象实例。在Java中,当你在一个方法内部需要访问当前对象的属性或方法时,可以使用 this 关键字来指代这个对象。

封装

总结:

1、什么是封装?
就是用类设计对象处理某一个事物的数据时,应该把要处理的数据,以及处理这些数据的方法,设计到一个对象中去。
面向对象的三大特征:封装、继承、多态。
2、封装的设计规范是什么样的?
合理隐藏,合理暴露。
3、代码层面如何控对象的成员公开或隐藏?
公开成员,可以使用public(公开)进行修饰。
隐藏成员,使用private(私有,隐藏) 进行修饰。

JavaBean——实体类

static

static修饰成员变量

static关键字

总结:

1、static是什么?
叫静态,可以修饰成员变量、成员方法。
2、static修饰的成员变量叫什么? 怎么使用?有啥特点 ?
类变量(静态成员变量)

类名.静态变量(推荐)
对象名.静态变量(不推荐)

属于类,与类一起加载一次,在内存中只有一份,会被类的所有对象共享。
3、无static修饰的成员变量叫什么? 怎么使用?有啥特点 ?
实例变量(对象变量)

属于对象,每个对象中都有一份。     

静态变量的应用场景

1、成员变量有几种?各自在什么情况下定义?
静态变量:数据只需要一份,且需要被共享时(访问,修改)
实例变量:每个对象都要有一份,数据各不同(如:name、score、age)
 
2、访问自己类中的类变量,是否可以省略类名不写?
可以的
注意:在某个类中访问其他类里的类变量,必须带类名访问

static修饰方法

补充知识:搞懂main方法

静态方法的应用

为什么工具类中的方法要用静态方法,而不用实例方法?

1.实例方法需要创建对象来调用,此时对象只是为了调用方法,对象占内存,这样会浪费内存。

2.静态方法,直接用类名调用即可,调用方便,也能节省内存。

多学一招:
工具类没有创建对象的需求,建议将工具类的构造器进行私有。

静态方法,实例方法访问相关的几点注意事项

1.静态方法中可以直接访问静态成员,不可以直接访问实例成员。
2.实例方法中既可以直接访问静态成员,也可以直接访问实例成员。
3.实例方法中可以出现this关键字,静态方法中不可以出现this关键字的。

案例-简易版电影信息展示系统

package com.itheima.demo;

public class Movie {
    private int id; // 编号
    private String name;
    private double price;
    private String actor;

    public Movie() {
    }

    // 定义一个有参数构造器
    public Movie(int id, String name, double price, String actor) {
        this.id = id;
        this.name = name;
        this.price = price;
        this.actor = actor;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public String getActor() {
        return actor;
    }

    public void setActor(String actor) {
        this.actor = actor;
    }
}
package com.itheima.demo;

import java.util.Scanner;

// 电影操作类
public class MovieOperator {
    private Movie[] movies; // 记住一个电影对象的数组。
    public MovieOperator(Movie[] movies) {
        this.movies = movies;
    }

    // 打印全部电影信息
    public void printAllMovies() {
        System.out.println("================全部电影信息如下===============");
        for (int i = 0; i < movies.length; i++) {
            // i = 0 1 2 3 4 5
            Movie m = movies[i];
            System.out.println( m.getId() + "\t" + m.getName() + "\t" + m.getPrice() + "\t" + m.getActor() + "\t" );
        }
    }

    // 根据id查询电影
    public void searchMovieById() {
        System.out.println("请输入要查询的电影id:");
        Scanner sc = new Scanner(System.in);
        int id = sc.nextInt();
        // 遍历每个电影对象
        for (int i = 0; i < movies.length; i++) {
            // 拿到当前遍历到的电影对象
            Movie m = movies[i];
            // 判断当前电影对象的id是否是我们正在找的电影id,是则打印出该电影信息并立即结束方法
            if (m.getId() == id) {
                System.out.println(m.getId() + "\t" + m.getName() + "\t" + m.getPrice() + "\t" + m.getActor() + "\t" );
                return;
            }
        }
        System.out.println("没有找到该电影");
    }
}
package com.itheima.demo;

public class Test {
    public static void main(String[] args) {
        // 目标:完成面向对象的综合小案例。
        // 1、设计电影类Movie,以便创建电影对象,封装电影数据。
        // 2、封装系统中的全部电影数据。(自己造一些数据)
        Movie[] movies = new Movie[6];
        // movies = [null, null, null, null, null, null]
        //            0     1     2     3     4      5
        movies[0] = new Movie(1, "星际穿越", 9.6, "安妮海瑟薇");
        movies[1] = new Movie(2, "速度与激情8", 9.2, "瑞秋·费尔南多");
        movies[2] = new Movie(3, "夏洛特烦恼", 9.2, "沈腾");
        movies[3] = new Movie(4, "战狼2", 9.2, "吴京");
        movies[4] = new Movie(5, "让子弹飞", 9.2, "姜文");
        movies[5] = new Movie(6, "暗战", 9.2, "王大陆、渣渣辉");

        // 3、创建电影操作对象出来,专门负责电影数据的业务操作。
        MovieOperator mo = new MovieOperator(movies);
        mo.printAllMovies(); // ALT + ENTER
        mo.searchMovieById();
    }
}

统信UOS专业版服务器无人值守安装 (2)、专业版:主要针对整机厂商、政府单位、事业单位和企业用户使用,cpu目前支持x86、arm、mips、sw64和LoogngArch架构,试用期免费获得90天的使用,随后需要单位采购授权,获得正式激活码后才可以正常使用。其中企业版代号为d,行业版为a/c,欧拉版则为e,在最近的更新中,c版已经停止更新迭代,后续行业版本将都为a版,版本代号体现在镜像名字中以及版本号上,例如1050d则表示企业版1050版本。UOS系统服务器版本分为:专业版(d版)、行业版(a版)、欧拉版(e版) 阅读详情

相关推荐

Obsidian笔记同步实战:基于Git的私有化部署与自动化管理

本文详细介绍了如何利用Git为Obsidian笔记构建私有化、自动化且免费的同步方案。通过安装配置Git与Obsidian-git插件,结合Gitee等远程仓库,实现笔记的版本管理、多设备同步与自动备份,打造安全可靠的知识管理体系。

y7z8a的博客 272

JAVA基础入门By黑马程序员

java中static关键字修饰的类称为抽象类,不能被实例化,子类继承抽象类,实例化子类得到该抽象类的对象。定义的构造方法的方法名与类名相同,没有返回值的类型,方法体中不能用return语句返回一个值,但可以单独写return语句作为方法的结束。多态:一个类的方法和属性被另一个类继承,子类对象直接复制给父类引用变量,相同类型的引用变量调用同一个方法呈现出的不同行为特性。4.如果jdk的安装路径为D:\jdk;2.一个类可以从其他的类派生出来,派生出来的类被称为子类,用于派生的类被称为父类或超类。

weixin_61711369的博客 1177

用Arduino Uno和纸板做个扫地机器人?手把手教你复刻一个低成本DIY方案(附完整代码)

本文详细介绍了如何用Arduino Uno和纸板制作一款低成本DIY扫地机器人,涵盖材料准备、机械结构设计、电路系统搭建和智能清扫算法实现。通过开源硬件和日常废弃物,打造极致性价比的创客项目,适合初学者学习电子和编程。

weixin_42531588的博客 271

黑马程序员java基础入门(一)基础语法

注释是在程序指定位置添加的说明性信息。注释不参与程序允许,仅起到说明作用。就是被java语言赋予了特殊含义的单词。常量在程序运行过程中,其值不可以发生改变的量。变量在程序运行过程中,其值可以发生改变的量。从本质上讲,变量是内存中一小块区域。格式数据类型变量名=变量值范例inta=10;标识符就是给类、方法、变量等起名字的符号。6.2标识符定义规则1.由数字、字母、下划线(_)和美元符($)组成。2.不能以数字开头3.不能是关键字4.区分大小写。...

mayu_xuan的博客 1456

STM32G0定时器中断实战:HAL库配置TIM2实现精准1秒LED闪烁(附完整代码)

本文深入解析了STM32G0系列微控制器中定时器中断的配置与应用,重点介绍了如何使用HAL库配置TIM2实现精准的1秒LED闪烁。通过详细讲解时钟树分析、预分频系数与自动重装载寄存器的计算原理,并结合CubeMX图形化配置与完整代码示例,帮助开发者从底层理解定时器工作机制,掌握可复用的工程化配置方法。

weixin_29194817的博客 253

MTK Linux Charger驱动分析(二) - power_supply_core.c

的核心作用可以概括为:提供统一的电源管理框架;管理电源设备注册、属性访问、事件通知;封装sysfs 接口和 uevent 通知,屏蔽硬件细节;驱动开发者只需要实现,不关心底层通知和接口细节。简单来说,它是电源子系统的“大脑和中枢”,具体的电池/充电器只是“信息源”。

iTom1900 1490

黑马程序员——javase基础——day01——Java入门&IDEA&基础语法

下面我们正式进入Java的学习,在这里,大家第一个关心的问题,应该就是Java是什么,我们一起来看一下:Java是什么:Java是一门非常优秀的计算机语言语言:人与人交流沟通的表达方式计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言Java之父:詹姆斯·高斯林(James Gosling)知道了Java是什么之后,大家就会想,我们学完Java可以做什么呢?下面,我们就来聊一聊,Java的三大技术平台:JavaSEJavaMEJavaEE。

qq_56444564的博客 1921

华南理工大学-大学物理实验-绪论作业

3.用公式测量某圆柱体铝的密度,测得直径=2.0420.003(cm),高=4.1260.004(cm),质量=36.4880.006(g)。计算铝的密度和测量的标准差,并以测量结果表达式表示之。(要求判别和剔除异常数据)(30分)(了解图解法的注意事项,大学物理实验众多实验数据处理采用这种方法,如PN结温度特性研究,光电效应与普朗克常数的测定,霍尔效应测磁场等等,注意规范作图)实验测得温度与对应的金属丝的长度的数据如下表所示。(了解异常数据的判断方法及具体判断过程,30分的题目n(*≧▽≦*)n)

mohen_777的博客 581

黑马程序员Java零基础 (1) 基础语法

跟着黑马程序员Java零基础视频教程的笔记.简要提纲版,有问题可以看视频解答.此篇是p1-p39.

qq_53077632的博客 1109

Python图像处理之光斑分析

光斑是工程中经常出现的图像数据,其特点是目标明确,分布清晰。对光斑图像的分析,主要包括质心定位、目标截取以及半径拟合等。

微小冷的学习笔记 2857

从零开始创建Davinci Configurator配置工程

本文介绍了从零开始搭建达芬奇工程的详细步骤。首先安装Vector的CBD包后,通过DavicCFG.exe新建空白ECU工程。文章提到Postbuild相关概念可参考往期文章《AUTOSAR配置中的PostBuild、Precompile、Linktime》,并预告下期将讲解如何通过导入DBC文件来启用AUTOSAR模块。全文以实操截图为主,步骤清晰简明,适合开发者参考备份。

Xiaowestwind的博客 219

黑马程序员Java基础学习,涉及精细知识点复习【持续更新】

文章目录01java基础java基础面向对象1.类:2.成员变量:类中方法外的变量,不能赋值3.成员方法:4.java内存分配:5.成员变量有初始值,局部变量没有初始值。6.this关键字:7.封装:8.构造方法:9.标准的JavaBean组成10.JDK帮助文档使用流程:GUI1.java.awt包:2.javax.swing包:3.GUI组件:4.事件监听机制5.“”创建的字符串对象,在字符串常量池存储,如果内容一样的字符串,本质上是同一个对象。6.基本类型包装类7.比较字符串相等02java_进阶一、

IN year 3419

【ChatGPT】实用 Prompt 指令大全 —— 一文教你如何更好地挖掘 GPT 的价值

ChatGPT 是由 OpenAI 开发的一种先进的大型语言生成模型,能够理解和生成准确、自然且连贯的文本。文本生成数据分析内容审核语义理解自然语言推理以及其他众多任务ChatGPT是一种基于GPT-3.5架构的大型语言模型,由OpenAI公司开发。该模型在自然语言处理领域有着广泛的应用,可以用于文本生成、文本分类、情感分析、问答系统等任务。本文将从模型的架构、训练方式、优缺点等方面对ChatGPT进行详细介绍。一、模型架构。

AI天才研究院 2万+

黑马程序员Java教程学习笔记(一)

文章目录黑马程序员Java学习笔记Java版本Java语言的跨平台原理JRE和JDKJDK的下载和安装HelloWorld案例注释关键字常量数据类型标识符类型转换运算符字符"+"操作字符串"+"操作复制运算符自增自减运算符关系运算符逻辑运算符三元运算符两只老虎三个和尚 黑马程序员Java学习笔记 Java版本 Java(5.0):是更新力度很大的一个版本,直接让Java的发展进入了快车道 Java(8.0):是公司中生产/开发环境使用的最多的版本 Java(11.0):是Java学习者使用的最

末初 · mochu7 2万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

黑马程序员[android]我的java基础学习日记一

------<a href="http://www.itheima.com&quot">http://www.itheima.com">http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------今天是个重新做回自己的日

无码骑兵的博客 1018

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

黑马程序员———java视频一到四天的基础视频学习总结

------- android培训、java培训、期待与您交流! ----------   java视频一到四天的基础视频学习总结 1.java具有跨平台性,在任何系统下,只要下载了java虚拟机就能运行java程序了。 2.环境变量path的配置,想要在DOS命令行下运行一些javac程序,若没有配置环境变量则需要到java的安装目录下的bin目录才能执行这些程序,为了方便操作,可将bi

qq540795382的专栏 520

Java-JVM-黑马程序员学习笔记<一>

JVM是JavaVirtualMachine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的. Java的虚拟机机比较出名的有HotSpot,J9等。 了解JVM有助于更加清除java程序的执行过程。...

weixin_45532984的博客 562

传智播客黑马程序员Java学习笔记(一)

最近在对照学习黑马程序员的Java视频,对照视频将学习笔记记录下来,以供复习。 1. Idea的安装 1.1 安装软件与版本 本套教程的开发环境是ideaIU-2017.3.4.exe和jdk-9.0.4_windows-x64_bin.exe。附了很详细的破解方法说明。 1.2 两个常用设置: 设置Editor的Font为Consolas 32(高清屏),看上去字体比较舒服。 设置KeyMap-Main Menu-Code-Completion-Basic  Alt+/ 1.3 I

dengxibo的博客 1941

黑马程序员JAVA基础学习笔记(一)

------- android培训、java培训、期待与您交流! ---------- Jre和Jdk的区别: jre是Java的运行环境,jdk是java的开发工具包!简单而言:使用JDK开发完成的java程序,交给JRE去运行。 JVM: JVM是运行java程序的虚拟机,在安装了java虚拟机的机器上,java程序可以实现跨平台工作! JAVA程序运行机制: javac编译 .j

u013604675的专栏 585

黑马程序员——Java基础学习笔记(一)

public static void selectSort(int[] arr) { for(int x=0; x<arr.length-1; x++) { for(int y=x+1; y<arr.length; y++) { if(arr[x]>arr[y]) { int temp = arr[x]; arr[x] = arr[y]; arr[y]

binglingxueyou的专栏 704

黑马程序员 Java设计模式学习笔记(一)

类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。

qq_38196449的博客 1814

黑马程序员学习日记 (一)java基础

1.1Java语言概述 是SUN(Stanford University Network,斯坦福大学网络公司)1995年推出的一门高级编程语言。 是一种面向Internet的编程语言。 随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。 是简单易学,完全面向对象,安全可靠,与平台(操作系統)无关的编程语言。 1.1.1

木凡的、天空 413

黑马程序员_java基础知识学习总结一

----------------------- android培训、java培训、java学习型技术博客、期待与您交流!----------------------- 软件就是一系列按照特定顺序组织的计算机数据和指令的集合。 Java具有跨平台性的特点,java编写的程序可在不同的系统平台上运行。Java靠java虚拟机JVM实现跨平台性。想要在系统中编写java程序,就要安装开发工具

xiaohu3269的专栏 681

黑马程序员——黑马学习日志之十九 Java高新技术(一)

------- android培训、java培训、期待与您交流! ---------- 黑马学习日志之十九 Java高新技术(一) 1 Eclipse myeclipse是eclipse开发java ee项目的插件,.myeclipse是对eclipse的扩展,相当于给eclipse打个补丁,弄个插件。将插件集成在一起于eclipse就成为了myeclipse。 eclipse是用

s7643的专栏 696

黑马程序员_学习日记2(java基础 一)

-------android培训、java培训、期待与您交流! ----------   01.关键字(被java语言赋予特殊含义的单词,关键字中所有字母都是小写)        数据类型: class:类  interface接口  byte:字节   short:短整型  int:整型  long:长整型                       float:浮点数  dou

403

黑马程序员-学习日记(一) JAVA基础

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------

qq_17522609的专栏 372

黑马程序员----java学习日志一

今天学习java第二天        学习了位移运算符练习题        做了两个小练习:1、2乘以8最有效率的算法                                     2、两个数互换值(不借助于第三个变量) class demo1  { public static void main(String[] args)  { System.out.println(

wmddv的专栏 513
上一篇: 黑马程序员Java进阶学习(三)
下一篇: Javaweb(一)
小昭-May
博客等级 码龄4年 134粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值