献给大一新生的JavaSE入门篇章 大三秋招JavaSE

news2024/9/21 18:47:40

Java反射

反射实现有哪些?

Class.forName(“com.jdbc.cj.Driver.mysql”)
类名.class
对象名.getClass()

反射优缺点有哪些?

优点: 能够动态的获取类的实例,提高灵活性
缺点: 会降低性能,解决办法: 1. 如果多次创建某个对象的实例,使用缓存 2. 通过SetAccessible关闭JDK的安全检查来提高提升反射速度。

访问修饰符

这个本类指的是自己创建的这个类里面的范围,而不包括本类下面的一个默认修饰符修饰的类

修饰符使用范围?

四种修饰符可以用在属性和方法
类和接口只能用public 和 默认

为什么子类的访问修饰符得大于父类?

private修饰的属性和方法子类是不能继承的。
当子类对象当作父类对象使用的时候,如果父类是public 而子类是private,那么想要调用子类的方法就不行了,这不符合继承的特性。

类相关

super关键字

super关键字是指调用父类的当中的一些特征,super()方法必然会执行,通常来构造方法的第一行,所以在初始化子类的实例对象的时候先调用父类的初始化特征,注意: new 照样还是子类的对象,super只是给子类扩充属性
super关键字通常能够省略,有些情况不能省略:1.需要调用父类的属性,但是子类和父类有相同的属性名和方法名,如果子类想要调用父类的属性或者方法那么必须使用super来访问
super可以看作是对new 对象的属性的一个扩充,这也是为什么每个对象都有一个wait()和notify()方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ytUr0ACo-1690525391922)(C:\Users\13772\AppData\Roaming\Typora\typora-user-images\image-20230622102057654.png)]

String类
public class StringTest02 {
    public static void main(String[] args) {
        String s1 = "hello";
        // "hello"是存储在方法区的字符串常量池当中
        // 所以这个"hello"不会新建。(因为这个对象已经存在了!)
        String s2 = "hello";
        
        // == 双等号比较的是变量中保存的内存地址
        System.out.println(s1 == s2); // true

        String x = new String("xyz");
        String y = new String("xyz");
        
        // == 双等号比较的是变量中保存的内存地址
        System.out.println(x == y); //false
    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j3e6OipR-1690525391922)(C:\Users\13772\AppData\Roaming\Typora\typora-user-images\image-20230622104128081.png)]

数组

Java当中的数组有一维、二维、三维(三维几乎用不到),数组的优点就是检索的过程会非常快,就比如说让你查100个大小数组和查10000个大小数组,你觉得哪个更快? 其实是一样快的,数组的存储位置的元素都是连续存储的,并且每个元素都有下标,而且每个元素的存储大小都是一样的,这样就知道了偏移量,所以只需要算一遍就能计算出最终结果。二维数组就是每个元素都是一个一维数组。

数组需要注意的点:
  1. 数组要求元素的类型一样
  2. 数组的每个元素的大小一样
  3. 数组元素的存储位置是连续的,方便查找

接口

  1. 接口和接口之间不需要有任何的继承关系就可以完成互转,可能会爆出ClassCastExceptino问题
  2. 类转化成没有任何关系的接口是可以的
  3. 类和类之间转化必须得有继承关系
  4. 接口不可以被实例化,接口当中的方法默认是public abstract ,方法是用public final 修饰,也就意味着接口当中所有的元素都是用public修饰,同样接口当中不能写方法体。
  5. 一个接口可以继承多个方法
  6. 一个类可以实现多个接口

接口的出现解决了之前的什么问题? 首先就是之前遗留下的类之间只能单继承的问题,而现实当中往往是多继承关系

Java加载与执行

	编译期:(可以在windows上)
		第一步:在硬盘的某个位置(随意),新建一个xxx.java文件
		第二步:使用记事本或者其它文本编辑器例如EditPlus打开xxx.java文件
		第三步:在xxx.java文件中编写“符合java语法规则的”源代码。
		第四步:保存(一定要将xxx.java文件保存一下)
		第五步:使用编译器(javac【JDK安装后自带】)对xxx.java文件进行编译。

		第六步:如果xxx.java文件中编写的源代码是符合语法规则的,编译会通过,
		如果xxx.java文件中编写的源代码违背了语法规则,那么编译器会报错,编译器
		报错之后class文件是不会生成的,只有编译通过了才会生成class字节码文件。
		并且一个java源文件是可以生成多个class文件的。(编译实质上是检查语法)

	运行期(JRE在起作用):(可以在windows上,也可以在其他的OS上。)
		第七步:如果是在Linux上运行,需要将windows上生成的class文件拷贝过去
		不需要拷贝源代码,真正运行的是字节码。(但是源代码也不要删除,有用)

		第八步:使用JDK自带的一个命令/工具:java(负责运行的命令/工具)执行字节码

		第九步:往下的步骤就全部交给JVM了,就不需要程序员干涉了。
		JVM会将字节码文件装载进去,然后JVM对字节码进行解释(解释器负责将字节码
		解释为1010101010..等的二进制)

		第十步:JVM会将生成的二进制码交给OS操作系统,操作系统会执行二进制码和
		硬件进行交互。

JDK\JRE\JVM

JDK包含JRE,JRE包含JVM,JVM不能独立存在,其他两个可以。
JDK是Java开发的工具箱,JRE是Java程序的运行时环境

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Pixelmator Pro 3.3.10 Mosaic (macOS Universal) - 专业图像编辑工具

Pixelmator Pro 3.3.10 Mosaic (macOS Universal) - 专业图像编辑工具 请访问原文链接:https://sysin.org/blog/pixelmator-pro-3/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org Pixelmator Pro 真正基于 Apple M…

机器学习算法实现(基于numpy)

《机器学习公式推导与代码实现》学习笔记,记录一下自己的学习过程,详细的内容请大家购买作者的书籍查阅。 这篇博客是将笔者边学边刷《机器学习公式推导与代码实现》的模型跟代码记录下来,部分地方结合自己的思考对原作者的代码有一定的改动…

【自定义图库】

sld文件 前段时间,有网友委托我帮他做一个家具的图库。 首先,做图库的方法有很多,最简单的是MFC拖控件然后自己把做好的bmp图贴进去就可以了,麻烦一点的是sld文件,最麻烦 是用blockview做。 下面先说说3种办法的区别: 首先,如果用MFC拖控件的办法,最简单也最方便,用st…

安全帽检测+反光衣检测+工作服检测数据集

安全帽检测反光衣检测工作服检测数据集下载地址分享:https://download.csdn.net/download/qq_34717531/88112870

AF 350 tyramide,AlexaFluor350 TSA,AF350酪胺,荧光标记试剂

文章资料汇总来源于:陕西新研博美生物科技有限公司小编MISSwu​ PART1----产品描述 AF350 tyramide(AlexaFluor350酪酰胺),用于荧光标记的试剂,Tyramide信号放大(TSA)已被证明是一种特别通用且…

SAS-input和put的使用

在SAS中经常会遇到数值型变量与字符型变量之间进行相互转换,如何进行转换呢? 一、字符型转数值型 方法1:字符型变量通过运算进行转换,如Numeric Character * 1。运算符可以转换,但是会有NOTE提示,不推荐…

一个外贸业务员的鸡飞蛋打

最近在论坛上看到一个案例,案例是一个是SOHO的业务员从他朋友厂子拿货, 然后他发现他的前同事在他朋友的厂子做sales director,然后最近一个客户A出货,这个小伙伴就去他朋友的工厂做发货前的质检,正好碰到以前的一个同事也去他朋友…

【Docker】Docker安全性与安全实践(五)

前言: Docker安全性的作用和意义在于确保容器化应用程序和镜像的隔离性、保护数据和系统资源、防止恶意攻击,以及提高应用的整体安全性。 文章目录 1. Docker安全性1.1 隔离性1.2 镜像安全1.3 特权访问1.4 数据保护 2. Docker安全实践2.1 使用官方镜像或…

管理类联考——数学——趣味篇——可视化——安装Manim软件

Manim: 一个数学可视化的动画引擎 官网:https://3b1b.github.io/manim/index.html 名词解析 python3.7是python语言的解释器, 运行python程序的环境必备品. 这个没啥说的,大家都能懂. 虽然官方建议3.7,但是我用3.8发现也没问题.考虑未来的历史进程,大伙最好还是装…

Windows Subsystem for Android (WSA) 下载:在 Windows 11 上运行 Android 应用 (July 2023)

Windows Subsystem for Android (WSA) 下载:在 Windows 11 上运行 Android 应用 (July 2023) 适用于 Android™️ 的 Windows 子系统,2023 年 7 月更新:2306.40000.4.0 请访问原文链接:https://sysin.org/blog/wsa/,…

探讨高校公共建筑能耗监测系统的设计与应用

安科瑞 华楠 摘要:在资源节约型社会建设进程中,高校公共建筑能耗管理存在问题已经成为办学成本加大、社会资源浪费的桎梏。在各级政府的推动下,高校公共建筑能耗监测系统建设在探索中发展,依托互联网大数据技术逐步实现能耗管理信…

跨域冲突问题解决

1、问题分析 服务端和nginx代理 都做了跨域配置,导致请求头重复 headers 里面有两个重复的 Access-Control-Allow-Origin Access-Control-Allow-Methods Access-Control-Allow-Credentials 2、解决方法 在nginx去除服务端的跨域配置 proxy_hide_header Access-…

【腾讯云 Cloud Studio 实战训练营】CloudStudio体验真正的现代化开发方式,双手插兜不知道什么叫对手!

CloudStudio体验真正的现代化开发方式,双手插兜不知道什么叫对手! 文章目录 CloudStudio体验真正的现代化开发方式,双手插兜不知道什么叫对手!前言出现的背景一、CloudStudio 是什么?二、CloudStudio 的特点三、CloudS…

医学案例|配对wilcoxon符号秩检验

一、案例介绍 某单位想要研究某保健品对小鼠是否具有抗疲劳作用,将同种属的小鼠按性别与年龄相同、体重相近配成对子,共14对,并将每对中的两只小鼠随机分配到两个不同的保健食品剂量组,测量小鼠负重5%体重时的游泳时间…

通过IDEA发送QQ邮箱信息

先创建一个普通的Maven项目&#xff0c;我就不演示啦&#xff0c;个人博客已经写过~[创建一个maven项目]。 项目创建成功后&#xff0c;引人Maven依赖&#xff0c;如下: <dependencies><dependency><groupId>org.apache.commons</groupId><artifact…

力扣天天练week3-LeetCode75

topic75-1-t1768交替合并字符串 题目描述&#xff1a;给你两个字符串word1和word2。请你从 word1 开始&#xff0c;通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长&#xff0c;就将多出来的字母追加到合并后字符串的末尾。返回 合并后的字符串 。 示例&#…

Exadata磁盘损坏导致磁盘组无法mount恢复(oracle一体机磁盘组异常恢复)---惜分飞

Oracle Exadata客户,在换盘过程中,cell节点又一块磁盘损坏,导致datac1磁盘组&#xff08;该磁盘组是normal方式冗余)无法mount Thu Jul 20 22:01:21 2023 SQL> alter diskgroup datac1 mount force NOTE: cache registered group DATAC1 number1 incarn0x0728ad12 NOTE: ca…

【Untity】通过子物体坐标和父物体Transfrom,计算子物体的世界坐标

如图 父物体Transfrom信息如下 子物体坐标如下 代码如下 将pos点&#xff0c;基于父物体scale进行缩放。 在用父物体旋转量* pos 再加上父物体的坐标。 即为子物体的世界坐标。 void Start(){Vector3 pos new Vector3(1, 2, 3);Vector3 parentPos new Vector3(10, 20, 30)…

线性模型学习

代码实现 import numpy as np import matplotlib.pyplot as pltx_data [1.0, 2.0, 3.0] y_data [2.0, 4.0, 6.0]def forward(x):return x * wdef loss(x, y):y_pred forward(x)return (y_pred - y) * (y_pred - y)w_list [] mse_list [] for w in np.arange(0.0, 4.1, 0.…

【C语言】文件操作重点内容梳理

本文目录 1. 什么是文件 1.1 程序文件 1.2 数据文件 1.3 文件名 2. 文件的打开和关闭 2.1 文件指针 2.2 文件的打开和关闭 3. 文件的顺序读写 3.1 顺序读写函数介绍 4. 文件的随机读写 4.1 fseek 4.2 ftell 4.3 rewind 5. 文本文件和二进制文件 6. 文件读取结束的判定 6.1 被错…