反射和多线程基础

2023-11-11

一、今日内容
1.1 课程回顾
1.2 反射是啥
1.3 进程和线程
1.4 线程的创建方式
1.5 线程的状态
1.6 线程的常用方法
二、课程回顾

Java的基本语法:

​ 1.数据类型:基本、引用

​ 2.运算符:算术、逻辑、比较、赋值、位、三目

​ 3.表达式

​ 4.顺序结构

​ 5.分支结构:选择结构:if switch

6.循环结构:for while do/while

Java:面向对象:

1.最终的目的:消除重复代码

2.核心:类和对象

3.特征:封装、继承、多态、抽象

4.关键字:static,public,private、class、interface this super 等

5.抽象类和接口

Java中数组:

数组:存储多个相同数据类型的数据结构

特点:长度固定

声明和初始化:数据类型 [] 变量名=初始化;动态初始化、静态初始化

索引:索引从0开始

算法:

1.排序算法

2.查找算法

多维数组:Java允许数组的元素又是一个数组

Java中的集合:

集合:存储多个指定数据类型的元素。

特点:长度可变,存储引用类型

种类:List、Set、Map

常用的集合类:ArrayList、HashMap、TreeSet等

泛型:引用类型的占位符 出现好处:代替了Object,避免了转型(向上转型、向下转型)

Java中的流:

File:Java中操作文件或目录的类。记忆:常用的方法:创建、删除、重命名、获取

流:数据通信的通道。

根据功能分:节点流、过滤流

根据单位分:字节流、字符流

根据方向分:输入流、输出流

Java的节点流:文件流(操作的数据都是跟文件有关):Filexxx. 内存流(操作的数据都是跟数组有关):Bytexxx

Java的过滤流:缓冲流、对象流、数据流、转换流等等

输入流:read(读取)、skip(跳过)

输出流:write(写出)、flush(刷新)

Java中的异常:

异常:Java主要分为:Error:人为不可解决、Exception:异常,运行的特点:运行时异常、编译时异常

编译异常:代码在编译阶段,显示的异常 IOException

运行异常:代码在运行阶段,显示的异常 RuntimeException、IndexOutofException

自定义异常:自定义类并继承Exception

三、Java中的反射
3.1 反射是什么

反射机制是Java程序,在运行中,动态获取类的信息(方法、属性、注解等)、并且还可以调用类的属性、和方法。这种动态获取类的信息、以及动态调用对象的方法和属性的行为就叫反射。

反射:就是可以获取类的信息、和执行方法。

3.2 反射可以做什么

1.运行时获取类中的属性

2.运行时获取类中的方法

3.运行时创建类的对象

4.运行时,执行类中的方法

5.运行时,校验属性是否属于某个类

6.实现动态代理

3.3 反射怎么用

通过反射实现,类中的属性、方法的获取。还可以运行类中的方法。

创建Class对象的几种方式:

1.类名.class

2.Class.forName

3.对象名.getClass

代码演示:获取类中的属性

public static void main(String[] args) {
   
	//1.创建反射对象--Class<T>
	Class<Student> clz=Student.class;
	//2.获取Student类中的属性
	//公共属性,包含继承属性
	Field[] arrF=clz.getFields();
	//所有属性,不包含继承的属性
	Field[] arrF2=clz.getDeclaredFields();
	//3.显示 获取到的属性
	System.err.println("公共属性,包含继承属性:"+Arrays.toString(arrF));
	System.err.println("所有属性,不包含继承的属性:"+Arrays.toString(arrF2));
}

代码演示:获取类中的方法

public static void main(String[] args) {
   
	//1.获取反射对象
	Class<Student> clz=Student.class;
	//2.获取对象中的方法
	//公共方法,包含继承方法
	Method[] arrM=clz.getMethods();
	//所有方法,不包含继承方法
	Method[] arrM2=clz.getDeclaredMethods();
	//3.显示对应的方法
	System.err.println("公共方法:"+Arrays.toString(arrM));
	System.err.println("所有方法:"+Arrays.toString(arrM2));
}

代码演示:通过反射执行类中的方法

public static void main(String[] args) throws NoSuchMethodException, SecurityException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
   
	//1.获取反射对象
	Class<
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

反射和多线程基础 的相关文章

  • 权限维持-白银票据

    前言 白银票据是利用域的服务账户进行伪造ST 需要一些服务进行交互 比如cifs 共享文件服务 mysql sqlserver之类的 所以白银票据是没有黄金票据这么好用的 但是比白银票据更加隐藏一些 注 限定域环境 复现 1 收集信息 还是
  • 时序数据和语音处理

    时序数据 时序数据概述 即时间序列数据 用于时序预测 作用 用来连续观察同一对象在不同时间点上获得的数据样本集 处理目标 对给定的时间序列样本 找出统计特性和发展规律性 推测未来值 语音是一类特殊的时序数据 识别语音对应的文本信息是当前人工
  • MySQL基础篇

    目录 MySQL概念 数据库相关概念 MySQL数据库 启动与停止 客户端连接 数据模型 SQL SQL通用语法 SQL分类 DDL 数据库操作 表操作 图形化工具的使用 DataGrip DML DQL DCL 函数 字符串函数 数值函数
  • 函数被声明为已否决

    函数被声明为已否决 尝试这个1 Project Properties gt Configuration Properties gt C C gt General gt SDL checks关掉 我的电脑这个方法可以其他方法 2 pragma
  • 判断数组内容是否相同

    题目 设计一个方法 用于比较两个数组的内容是否相同 思路 1 定义两个数组 分别使用静态初始化完成数组元素的初始化 2 定义一个方法 用于比较两个数组的内容是否相同 3 比较两个数组的内容是否相同 按照下面的步骤实现就可以了 首先比较数组长
  • Ubuntu18.04 Apache2 配置CGI环境 C语言编写

    本人的Ubuntu版本号 18 04 4 LTS 根据其他人的参考资料 这套教程在Ubuntu的16 18 20版本基本上是通用的 1 卸载apache2 没有安装过的话可以跳过这一步 要保留网页文件的话 就不要 rm rf var www
  • corntab定时执行任务

    corntab介绍 cron 这个守护进程是为了周期性执行任务或处理等待事件而存在 任务调度分两种 系统任务调度 用户任务调度 计划任务的安排方式分两种 一种是定时性的 也就是例行 就是每隔一定的周期就要重复执行 一种是突发性的 就是这次做
  • 新建SpringBoot Maven项目中pom常用依赖配置及常用的依赖的介绍

    完整的pom文件放在后面 一 常用的依赖的介绍 1 springboot项目的总 父 依赖大全
  • Java8中List转Map的实现方法

    在Java编程开发中 经常会遇到将List转换为Map的需求 List是一种有序的集合 而Map则是一种键值对的映射关系 在Java8中 我们可以使用Stream API提供的新特性来实现这一转换 Java8中List转Map的实现方法 在
  • C++编译过程详述

    对于编译过程的总结 源于我的一个突然的好奇 编译头文件和编译头文件对应的源文件有没有区别 因为写makefile的时候依赖即可以写头文件 也可以写源文件 在网上查了半天 估计我的这个问题比较stupid 也没有明确的回答 索性顺藤摸瓜看了看
  • 游戏王大师规则3

    自己一年前翻译的老物了 放在这里算是做个存档 1 OCG Official Card Game 概要 1 1 决斗 游戏王ARC V OCG 以下略称 OCG 是原则上供2人游玩的游戏 而且 按 OCG 规则决出一局胜负称为 决斗 OCG
  • 前端Sass样式预处理器详解

    Sass 是一款强化 CSS 的辅助工具 它在 CSS 语法的基础上增加了变量 variables 嵌套 nested rules 混合 mixins 导入 inline imports 等高级功能 这些拓展令 CSS 更加强大与优雅 通过
  • ch04游戏对象与图形基础

    目录 一 加载Fantasy Skybox FREE 构建自己的游戏场景 二 写一个简单的总结 总结游戏对象的使用 三 魔鬼与牧师 动作分离版 1 解决方案 2 主要更新 3 链接 一 加载Fantasy Skybox FREE 构建自己的
  • JVM代码缓存区CodeCache原理及用法解析

    这篇文章主要介绍了JVM代码缓存区CodeCache原理及用法解析 文中通过示例代码介绍的非常详细 对大家的学习或者工作具有一定的参考学习价值 需要的朋友可以参考下 一 CodeCache简介 从字面意思理解就是代码缓存区 它缓存的是JIT
  • No Dialect mapping for JDBC type :0

    data service 架构 spring Roo hibernate mysql 在调用stored procedure的时候 出现 No Dialect mapping for JDBC type 0 通过反编译java sql Ty
  • kubectl exec 执行 容器命令

    格式如下 kubectl exec it podName c containerName n namespace shell comand 1 创建目录 kubectl exec it spark master xksl c spark m
  • IDEA 常用快捷键

    一 界面操作 进入设置界面 与QQ截图相冲 ctrl alt s 在窗口之间移动 alt 左右箭头 二 光标操作 按字跳转 非常好用 ctrl 左右箭头 选中当前单词 非常好用 ctrl w Idea 多光标操作 alt j alt shi
  • Python安装pip

    文章转载自 https blog csdn net LCCFlccf article details 80095348 python2 7安装目录下没有Scripts文件夹 这种问题可能是你装的python安装包年代久远了 到官网下载最新的
  • 微信小程序打开pdf文件

    前言 使用原生的微信小程序打开pdf文件 注意使用的是文件流的形式 后端接口也需要流的形式来接收 wxml页面
  • window10安装minio

    1 首先第一步我们先下载minio 可以从官网上下不同的版本 下载地址 MinIO Code and downloads to create high performance object storage 2 启动minio 切记不要双击m

随机推荐

  • 众享比特李刘海:国密在超级账本Fabric中的应用

    导读 4月22日 超级账本Hyperledger北京Meetup在北京大学信息学院举行 本次会议由Hyperledger中国工作组和Linux基金会主办 安妮股份 版权区块链联盟 北京大学协办 专注于技术交流 实践分享 案例解析 作为Hyp
  • 六、ResNet网络详细解析(超详细哦)

    1 RestNet网络 1 1 RestNet网络结构 ResNet在2015年被提出 在ImageNet比赛classification任务上获得第一名 因为它 简单与实用 并存 之后很多方法都建立在ResNet50或者ResNet101
  • 《86盒应用于家居中控》——实现智能家居的灵动掌控

    近年来 智能家居产品受到越来越多消费者的关注 其便捷 舒适的生活方式让人们对未来生活充满期待 作为智能家居方案领域的方案商 启明智显生产设计的86盒凭借出色的性能和良好的用户体验 成功应用于家居中控系统 让家庭变得更加智能便捷 一 智能化生
  • 【Flink】flink提交到yarn时 自定义container的提交命令

    文章目录 1 概述 2 yarn 1 概述 在 Flink FLink 是如何与Yarn交互请求Container的 文章中 我们知道了Flink是如何启动ApplicationMaster的 以及如何申请Container的 然后在里面我
  • 如何做好一个BI项目的规划和需求定义?

    正所谓磨刀不误砍柴工 一个项目的启动 先得从金字塔顶端做好规划 摸清楚需求 背景 客观条件 可投入资源等 本文 BI项目详解的第一篇 先来谈谈BI项目的规划和需求定义 全文共3000字 读完需要 8分钟 一 如何启动一个BI项目 Q 一个项
  • 设计模式------适配器模式

    设计模式 适配器模式 文章目录 设计模式 适配器模式 前言 一 两种形式 二 UML图 对象的适配器模式 类的适配器模式 三 实现要点 四 应用场景 五 优点 六 缺点 七 本质 前言 适配器模式 Adapter Pattern 将一个接口
  • C语言实现两个整数相加

    思路 定义两个变量啊 存放要输入的整数 两个整数相加要存放在一个变量sum 此时可以先定义int sum 0 也可以直接int sum a b 这个意思是a b的值存放在sum 类型是int整型 输出sum即可 我犯的错误 是最后一个pri
  • OpenWrt源码目录

    分析的OpenWrt源码目录有助于分析OpenWrt的源码 一 原始目录 1 1 scripts 构建期间用到的各类脚本文件 它存放了一些脚本 使用了bash python perl等多种脚本语言 编译过程中 用于第三方软件包管理的feed
  • 开关稳压器详解(四)-Buck降压型开关稳压器自举电路

    在Buck开关中 常使用N MOS管作为功率开关管 相比于P MOS N MOS具有导通电阻低价格便宜且流过电流较大等优势 在同步结构中对于开关管的使用一般有两种方式 上管为P MOS 下管为N MOS 无需外部自举电路 上下管均为N MO
  • 建立任务,OSTaskCreate()源码解析

    想让uC OS 管理用户的任务 用户必须要先建立任务 用户可以通过传递任务地址和其它参数到以下两个函数之一来建立任务 OSTaskCreate 或 OSTaskCreateExt OSTaskCreate 与uC OS是向下兼容的 OSTa
  • matlab通过两点画线问题&&plot,line的用法和区别。

    先马 1 LINE并不等同于PLOT 我查过HELP 很多属性不同 2 对与外框的问题 PLOT可以用法BOX控制 LINE无外框 3 图形删除的问题 PLOT可用HOLD ON或OFF控制 LINE要是用DELET 因此建议使用PLOT
  • 尾行3解3D马赛克补丁

    尾行3解3D马赛克补丁 尾行3下载尾行3补丁尾行3图片尾行3去马赛克尾行3怎么玩尾行3下载尾行3视频illusion尾行3秘籍尾行3攻略秘籍 尾行3作弊单机游戏尾行3下载尾行3外挂尾行3对话单机游戏尾行3 尾行3中文补丁 尾行3黑屏补丁尾行
  • M1 Mac 安装Python及相关库|pytorch安装M1 Mac

    今天安装pytorch的时候发现安装的anaconda是x86版本的 自己的电脑是arm64架构的 所以一直安装不上 之后找到一个方法 以后可以通过命令行直接安装在arm64上运行的库了很方便 1 安装homebrew 这是一个mac上的包
  • 编译opencv.js

    opencv 支持编译多个平台 其中还支持JavaScript 不过编译需要emscripten 编译环境 centos7 Python2 7 1 下载OpenCV源码 官网 https opencv org releases 例如下载4
  • Docker如何安装seafile

    SQLite 方式 要在 Docker 中安装 Seafile 您可以按照以下步骤进行操作 安装 Docker 确保您的系统上已经安装了 Docker 您可以根据您的操作系统类型 在官方网站上找到适合您系统的 Docker 版本并进行安装
  • 数字化转型的趋势、挑战与战略【一】

    在全球经济进入数字化转型时期 数字化转型已成为传统企业必须付诸行动的必选题 企业为什么要进行数字化转型 如何把握数字化转型的时机 近日 在大华南IT高管共赢圈 大华南IT培训学院联合举办的 企业数据化转型的战略与规划 培训会上 IDC中国副
  • PyTorch:梯度计算之反向传播函数backward()

    一 计算图 计算图 是一种用来描述计算的有向无环图 我们假设一个计算过程 其中 X 1 mathbf X 1 X1 W 1
  • cmd更换主题配色

    cmd更换主题配色 去github下载colortool 地址 使用管理员打开cmd进入解压后的文件夹 执行命令 colortool exe b solarized light itermcolors 其他可选方案在schemes下 更换效
  • java反射基础巩固

    反射机制是在运行状态中 对于任意一个类 都能够知道这个类的所有属性和方法 对于任意一个对象 都能够调用它的任意一个方法和属性 这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制 一直以来反射技术都是Java中的闪亮点
  • 反射和多线程基础

    一 今日内容 1 1 课程回顾 1 2 反射是啥 1 3 进程和线程 1 4 线程的创建方式 1 5 线程的状态 1 6 线程的常用方法 二 课程回顾 Java的基本语法 1 数据类型 基本 引用 2 运算符 算术 逻辑 比较 赋值 位 三