Java学习笔记

JVM

JVM是java虚拟机,由于不同的客户端(如手机、笔记本、台式)有不同的芯片,同一段代码会被翻译成不同的机器指令,所以在没有JVM的时候,对于这些不同的客户端,需要编写不同的代码,就十分麻烦。那么我们可以通过JVM,达到编写一段代码,通过JVM处理,运行在不同客户端的效果。

JRE与JDK

image-20230714162047516

快捷指令代码

可以在IDEA中查看

image-20230714170543719

//main
public static void main(String[] args) {}
//sout
System.out.println();

IDEA常用快捷键

  • CTRL+D:复制当前行
  • CTRL+R:查找并替换

静态代码块

  • 类的静态代码块

    类的信息加载完成后,会自动执行,可以用于静态属性的初始化功能

    class User{static{System.out.println("类的静态代码块执行")}
    }
  • 对象的静态代码块

    在对象创建时,自动执行,但不是静态的

    class User{{System.out.println("对象的静态代码块执行")}
    }
    

包Package

为了管理众多的类,使得相同的类名被区分,java引进了包。

Import

为了不用每次在使用类时,在类前面加入很长的包名,java有了import机制,通过使用import即可将对应的类导入。这个import也不用手动写,在idea里面可以通过alt+enter直接添加。

如果要引入一个包的大量类,可以用通配符*号,比如

import java.util.*

继承

关键字:extends

super、this

子类继承父类,在子类里面,如果子类的成员和父类的成员同名。可以用super访问父类的成员,用this访问子类成员。比如

super.name;
this.name;

构造函数和继承

子类的构造函数,会自动调用super(),super()对应父类无参的构造函数。但如果父类没有无参的构造函数,那么子类的构造函数中就得在super()中加上对应的参数。

重载

重载是指,方法名相同,参数列表不同,和返回值类型无关。

比如构造函数就是经典的重载,构造函数有无参的,也有有参的。

重写

重写的一大作用是:父类是模板类,为了子类能够在具体的不同场景下体现不同的功能。

类的访问权限

在java中,public类只能有一个,且类名必须和文件名相同。这个类是公有的,可以被任何访问。
对于没有加public的类,就不能被其他包访问,其具有包权限。

访问权限分为四种:

  • private:私有的,同一个类中可以使用
  • (default):默认权限,当不设定任何权限时,JVM会提供默认权限,包(路径)权限,注意:子包不可访问。
  • protected:受保护的权限,子类可以访问
  • public:公共的,任意使用

final

final修饰的变量在初始化后就不能被修改

abstract

修饰抽象类

interface

接口

enum

枚举,是一个特殊的类

匿名类

匿名类的好处就是不用对抽象类每次都创建一个具体的类,比如下面这个例子,如果我不使用匿名类的话,那么我每遇见一个不同名字的人,那么我就要为这个人创建一个具体的类,十分麻烦。

abstract class Person24{public abstract String name();
}
class Me{public void sayHello(Person24 person24){System.out.println("hello" + person24.name());}
}me.sayHello(new Person24(){//这里就是匿名类public String name(){return "wangwu";}
});

object

object是所有类的父类,其有以下几个方法

  • obj.toString():将对象转换成字符串
  • obj.hashCode():获取对象的内存地址
  • obj.equals():判断两个对象是否相等
  • obj.getClass():获取对象的类型信息

包装类

由于基本数据类型,如int,double功能太单一,java提供了包装类,double就对应Double类,float就对应Float类。

异常

为了避免整个程序因为一个异常而直接中断,我们可以对异常进行处理,从而使整个程序顺利运行。

异常分为两类:

  • 可以通过代码恢复正常逻辑执行的异常,称之为运行期异常:RuntimeException

  • 不可以通过代码恢复正常逻辑执行的异常,称之为编译期异常:Exception

    比如说在编译的时候,编译器就会提示你要抛出异常,这个就是编译器异常。

如果方法中可能出现问题,那么需要用throws抛出异常,但如果这个异常是运行期异常,编译器不会提示你去抛出或处理。
对于这个方法抛出的异常,调用此方法的对象则需要将这个异常继续抛出或者是进行异常处理。

自定义异常

有些异常java并没有提供,这个时候可以自定义一个异常。比如说登录的时候密码错误这个异常,java没有提供,那么我们可以自定义这样一个异常。

class LoginException extends RuntimeException{public LoginException(String message){super(message)}
}

集合

image-20230716194350611

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/80229.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp微信小程序 401时重复弹出登录弹框问题

APP.vue 登陆成功后,保存登陆信息 if (res.code 200) {uni.setStorageSync(loginResult, res)uni.setStorageSync(token, res.token);uni.setStorageSync(login,false);uni.navigateTo({url: "/pages/learning/learning"}) }退出登录 toLogout: func…

C高级--day4(wc指令、case...in、while循环、for循环、select..in、break、continue、shell中的函数)

#!/bin/bash function fun() {uidid -u $namegidid -g $nameecho $uid $gid } read name retfun $name echo $ret

Detector定位算法在FPGA中的实现——section1 原理推导

关于算法在FPGA中的实现,本次利用业余的时间推出一个系列章节,专门记录从算法的推导、Matlab的实现、FPGA的移植开发与仿真做一次完整的FPGA算法开发,在此做一下相关的记录和总结,做到温故知新。 这里以Detector在Global Coordina…

ORCA优化器浅析——CFunctionProp function properties

CFunctionProp CFunctionProp代表了function properties函数属性,主要由function stability函数易变性( enum EFuncStbl { EfsImmutable, /* never changes for given input */ EfsStable, /* does not change within a scan */ EfsVolatile, /* can ch…

Air32 | 合宙Air001单片机内部FLASH读写示例

Air32 | 合宙Air001单片机内部FLASH读写示例 代码已经通过测试,开发环境KEIL-MDK 5.36。 测试代码 void FLASH_RdWrTest(void) {uint32_t Address;uint32_t PageReadBuffer[FLASH_PAGE_SIZE >> 2];uint32_t PageWriteBuffer[FLASH_PAGE_SIZE >> 2];mem…

【数理知识】协方差,随机变量的的协方差,随机变量分别是单个数字和向量时的协方差

序号内容1【数理知识】自由度 degree of freedom 及自由度的计算方法2【数理知识】刚体 rigid body 及刚体的运动3【数理知识】刚体基本运动,平动,转动4【数理知识】向量数乘,内积,外积,matlab代码实现5【数理知识】协…

java+springboot+mysql日程管理系统

项目介绍: 使用javaspringbootmysql开发的日程管理系统,系统包含超级管理员、管理员、用户角色,功能如下: 超级管理员:管理员管理;用户管理;反馈管理;系统公告;个人信息…

.Net6 Web Core API --- AOP -- log4net 封装 -- MySQL -- txt

目录 一、引入 NuGet 包 二、配置log4net.config 三、编写Log4net封装类 四、编写日志记录类 五、AOP -- 拦截器 -- 封装 六、案例编写 七、结果展示 一、引入 NuGet 包 log4net Microsoft.Extensions.Logging.Log4Net.AspNetCore MySql.Data ---- MySQL…

K8S系列文章之 开源的堡垒机 jumpserver

一、jumpserver作为一款开源的堡垒机,不管是企业还是个人,我觉得都是比较合适的,而且使用也比较简单。 二、这里记录一下安装和使用过程。 1、安装,直接docker不是就行 version: 3 services:xbd-mysql:image: mysql:8.0.19restart…

离散化的两种实现方式【sort或者map】

离散化 定义 把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。通俗的说,离散化是在不改变数据相对大小的条件下,对数据进行相应的缩小。 适用范围:数组中元素值域很大,但个数不是很多。 比如将…

命令行快捷键Mac Iterm2

原文:Jump forwards, backwards and delete a word in iTerm2 on Mac OS iTerm2并不允许你使用 ⌥← 或 ⌥→ 来跳过单词。 你也不能使用 ⌥backspace 来删除整个单词。 下面是在Mac OS上如何配置iTerm2以便能做到这一点的方法。 退格键 首先,你需要将你的左侧 ⌥…

基于Python++PyQt5马尔科夫模型的智能AI即兴作曲—深度学习算法应用(含全部工程源码+测试数据)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python 环境PC环境配置 模块实现1. 钢琴伴奏制作1)和弦的实现2)和弦级数转为当前调式音阶3)根据预置节奏生成伴奏 2. 乐句生成1)添加音符2)旋律生成3)节…

JVM GC ROOT分析

GC root原理:通过对枚举GCroot对象做引用可达性分析,即从GC root对象开始,向下搜索,形成的路径称之为 引用链。如果一个对象到GC roots对象没有任何引用,没有形成引用链,那么该对象等待GC回收,换而言之,如果减少内存泄漏,也就是切断引用链,常见的GCRoot对象如下: 1、…

配置Picgo图床之COS、OSS、Github图床

简介 PicGo是一款开源的图片上传和管理工具,它提供了简单易用的界面和丰富的功能,方便用户上传、管理和分享图片。 以下是PicGo的一些主要特点和功能: 图片上传:PicGo支持将本地图片快速上传到云存储服务,如七牛云、…

深度学习(34)—— StarGAN(1)

深度学习(34)—— StarGAN(1) 文章目录 深度学习(34)—— StarGAN(1)1. 背景2. 基本思路3. 整体流程4. StarGAN v2(1) 网络结构(2) mapping network(3) style encoder(4)Loss 和之前…

【bug】记录一次使用Swiper插件时loop属性和slidersPerView属性冲突问题

简言 最近在vue3使用swiper时,突然发现loop属性和slides-per-view属性同时存在启用时,loop生效,下一步只能生效一次的bug,上一步却是好的。非常滴奇怪。 解决过程 分析属性是否使用错误。 loop是循环模式,布尔型。 …

Django之JWT库与SimpleJWT库的使用

Django之JWT库与SimpleJWT库的使用 JWTJWT概述头部(header)载荷(payload)签名(signature) Django使用JWT说明jwt库的使用安装依赖库配置settings.py文件配置urls.py文件创建视图配置权限 SimpleJWT库的使用安装SimpleJWT库配置Django项目配置路由创建用户接口测试身份认证自定义…

c++--二叉树应用

1.根据二叉树创建字符串 力扣 给你二叉树的根节点 root ,请你采用前序遍历的方式,将二叉树转化为一个由括号和整数组成的字符串,返回构造出的字符串。 空节点使用一对空括号对 "()" 表示,转化后需要省略所有不影响字符…

SpringBoot集成百度人脸识别实现登陆注册功能Demo(二)

前言 上一篇SpringBoot集成百度人脸demo中我使用的是调用本机摄像头完成人脸注册,本次demo根据业务需求的不同我采用文件上传的方式实现人脸注册。 效果演示 注册 后端响应数据: 登录 后端响应数据: 项目结构 后端代码实现 1、BaiduAiUtil…

SQL 表别名 和 列别名

列表名 列表名之后 order by 可以用别名 也可以用原名, where 中不能用别名的 SQL语句执行顺序: from–>where–>group by -->having — >select --> order 第一步:from语句,选择要操作的表。 第二步&#xff1…