多态性 对象java
深入探索JVM:理解Java程序在虚拟机中的存储和管理
大家好,我是大圣,很高兴又和大家见面。 今天给大家带来图解 JVM 系列的第四篇文章,我们写的 Java 程序是怎么在JVM 里面存储的。本次大纲如下: 前面知识回顾 上一篇 图解JVM系列:揭秘运行时数据区的设计与实现 文章说了JVM 运行时数据区的设计理念,我们是通过 冯·诺依曼结构 来类比引出 ......
用jacoco统计JAVA项目测试代码覆盖率
一、概述 Jacoco 统计的是全量代码覆盖率。它不仅支持生成单元测试的覆盖率,也支持监控生成接口测试,功能测试的覆盖率。 在新一代精准测试技术流的影响中,各大型单位对覆盖率的追求越来越迫切。作为一款开源产品,它主机面向Java语言,能够在字节码层面给出覆盖率,同时也能将字节码关联到对应的源代码。这 ......
NUS CS1101S:SICP JavaScript 描述:三、模块化、对象和状态
原文:3 Modularity, Objects, and State 译者:飞龙 协议:CC BY-NC-SA 4.0 变化中安宁 (即使它在变化,它仍然保持不变。) ——赫拉克利特 变化越大,越是相同。 ——阿方斯·卡尔 前面的章节介绍了构成程序的基本元素。我们看到了原始函数和原始数据是如何组合 ......
Java实现在线编辑预览office文档
目录1 在线编辑1.1 PageOffice简介1.2 前端项目1.2.1 配置1.2.2 页面部分1.3 后端项目1.3.1 pom.xml1.3.2 添加配置1.3.3 controller2 在线预览2.1 引言2.2 市面上现有的文件预览服务2.2.1 微软2.2.2 Google Driv ......
Java小细节之缩进中if 和else的对应关系
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print("请输入数字:") ......
春眠不觉晓,Java数据类型知多少?基础牢不牢看完本文就有数了
文编|JavaBuild 哈喽,大家好呀!我是JavaBuild,以后可以喊我鸟哥!俺滴座右铭是不在沉默中爆发,就在沉默中灭亡,一起加油学习,珍惜现在来之不易的学习时光吧,等工作之后,你就会发现,想学习真的需要挤时间,厚积薄发啦! 我们知道Java是面向对象的静态型编程语言,在Java的世界里万物皆 ......
idea 中java代码修改后运行代码不生效
背景 在使用idea开发项目过程中,经常会多版本切换开发,有时在一个分支中提交代码修改后,重新运行项目还是之前版本的项目,修改没有生效 解决方案 方案一 依赖的模块版本不变,只修改了代码没有及时打到本地库。可以对依赖的模块执行 mvn clean install 后重新运行项目 方案二 原先的项目文 ......
多态和虚函数 [补档-2022-10-23]
简述: 多态分为两类,一种是静态多态(如函数重载,运算符重载,复用函数名等)和 动态多态(派生类和虚函数实现运行时的多态) 静态多态和动态多态的区别是:静态多态的函数地址早绑定,在编译阶段就确定了函数地址。 动态多态的函数地址是晚绑定,即运行阶段确定函数地址。 多态的满足条件: 有继承关系;子类 ......
Java日期时间处理详解
Java中SimpleDateFormat、LocalDateTime和DateTimeFormatter的区别及使用 在Java的世界里,处理日期和时间是常见的任务。尤其在Java 8之前,SimpleDateFormat是处理日期和时间的主要方式。然而,Java 8引入了新的日期时间API,其中 ......
java项目(jar包)配置为开机自启 jar包bat脚本启动和配置为开机自启
今天给大家分享一下,如何把java项目,打包 打包后启动 生成bat文件启动 设置为开机自启。 每一步都是先是文字描述,后面是图片展示。 首先是打包,咱们写好的项目在maven处 点击clear,等待完成后,点击package 打包完成后,在target目录下可以看到自己打包生成的文件,这个是我改过 ......
Java中锁的解决方案
前言 在上一篇文章中,介绍了什么是锁,以及锁的使用场景,本文继续给大家继续做深入的介绍,介绍JAVA为我们提供的不同种类的锁。 JAVA为我们提供了种类丰富的锁,每种锁都有不同的特性,锁的使用场景也各不相同。由于篇幅有限,在这里只给大家介绍比较常用的几种锁。我会通过锁的定义,核心代码剖析,以及使用场 ......
Java学习之路1
下载JDK 了解Java的运行过程 知道javac的作用 是将java文件编译成class文件 为了方便多平台同运算 了解cmd是GBK编译代码 JDK是utf-8编译代码 这会导致某些地方代码运行不是自己想要的结果 编译 运行第一个代码helloworld 在运行之后 的println 中 又了解 ......
Dating Java8系列之Java8中的‘流’
给我馍馍/文 流的概念 1.流是什么 流是Java API的新成员,它允许你以声明性方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现)。就现在来说,我们可以把它们看成遍历数据集的高级迭代器。 代码:按价格排序后得到手机名称列表 使用新的流式方法有几个显而易见的好处。 代码是以声明性方式写 ......
Dating Java8系列之Java8中的流操作
给我馍馍/文 本次我们会使用到很多的流操作,如筛选、切片、映射、查找、匹配和归约,这些操作可以让我们能快速完成复杂的数据查询。 筛选和切片 用谓词筛选 Streams接口支持filter方法。该操作会接受一个谓词(一个返回 boolean的函数)作为参数,并返回一个包括所有符合谓词的元素的流。 Li ......
Dating Java8系列之用流收集数据
给我馍馍/文 收集器简介 1.收集器介绍 Java 8中流支持两种类型的操作:中间操作(如filter或map)和终端操作(如count、findFirst、forEach和reduce)。 中间操作可以链接起来,将一个流转换为另一个流。这些操作不会消耗流,其目的是建立一个流水线。与此相反,终端操作 ......
Dating Java8系列之并行数据处理
翎野君/文 分支合并框架 分支合并框架介绍 分支/合并框架的目的是以递归的方式将可以并行的任务拆分成更小的任务,然后将每个子任务的结果合并起来生成整体结果。 它是ExecutorService接口的一个实现,它把子任务分配给线程池(称为ForkJoinPool)中的工作线程。把任务提交到这个池,必须 ......
Dating Java8系列之default默认方法
给我馍馍/文 引言 传统上,Java程序的接口是将相关方法按照约定组合到一起。实现接口的类必须为接口中定义的每个方法提供一个实现,或者从父类中继承它的实现。 不断迭代的API 默认方法的引入就是为了,以兼容的方式,解决像 Java API这样的类库,演进迭代问题。 理解演进迭代 为了理解为什么一旦A ......
Dating Java8系列之通过行为参数化传递代码
给我馍馍/文 引言 作为技术开发人员,我们无法保证我们写出来的代码的可用时间和保质期,也许今天刚上线的一个功能,等到明天就因为需求变动不得不进行更改。 为什么会不断的变化 作为技术人员,我们当然希望需求能循序渐进地平稳过度,但往往事与愿违,对于其原因我简单总结为以下几点。 用户导向,用户和市场是风向 ......
Dating Java8系列之Lambda表达式和函数式接口(上)
给我馍馍/文 Lambda简介 我们可以把Lambda表达式理解为简洁地表示可传递的匿名函数的一种方式。它没有名称,但它有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表。 匿名:我们说匿名,是因为它不像普通的方法那样有一个明确的名称。 函数:我们说它是函数,是因为Lambda函数不像方 ......
Dating Java8系列之Lambda表达式和函数式接口(下)
给我馍馍/文 使用函数式接口 函数式接口定义且只定义了一个抽象方法。 函数式接口很有用, 因为抽象方法的签名可以描述Lambda表达式的签名。 为了应用不同的Lambda表达式,你需要一套能够描述常见函数描述符的函数式接口。 Java 8的库设计师帮我们在java.util.function包中引入 ......
Dating Java8系列之巧用Optional之优雅规避NPE问题
给我馍馍/文 避之不及的 NullPointerException NPE : NullPointerException 空指针异常是最常见的Java异常之一,抛出NPE错误不是用户操作的错误,而是开发人员的错误,应该被避免,那么只能在每个方法中加入非空检查,阅读性和维护性都比较差。 以下是一个常见 ......
Dating Java8系列之新的日期和时间
给我馍馍/文 旧的日期时间 在Java 1.0中,对日期和时间的支持只能依赖java.util.Date类。正如类名所表达的,这个类无法表示日期,只能以毫秒的精度表示时间。更糟糕的是它的易用性,由于某些原因和未知的设计决策,这个类的易用性被深深地损害了,比如:年份的起始选择是1900年,月份的起始从 ......
多线程(Java.Thread)学习
多线程(Java.Thread)学习 线程简介: 1、线程是独立执行的路径 2、程序运行时有很多后台进程 比如主线程、young.gc、full.gc() 3、main是主线程,系统入口,用于执行整个程序 4、一个进程中、如果开辟多个线程,线程的运行由调度器安排调度、调度器的先后顺序不能人为干预 5 ......
js中的对象,如果赋值给多个变量,那么会有性能问题吗
js中的对象,如果赋值给多个变量,那么会有性能问题吗? 在JavaScript中,将一个对象赋值给多个变量时,并不会直接导致性能问题。当一个对象被赋值给多个变量时,实际上这些变量都会引用同一个对象,即它们指向内存中的同一块地址。这种行为称为“对象引用”。 例如: const obj = { a: 1 ......
1.java概述
第一章 java概述 java的主要特点: 1.java是面向对象的 2.Java 语言是健壮的。Java 的强类型机制、异常处理、垃圾的自动收集等是 Java 程序健壮性的重要保证 3.Java 语言是跨平台性的。[即: 一个编译好的.class 文件可以在多个系统下运行,这种特性称为跨平台] 4 ......
Python面向对象之反射
【一】反射 【1】什么是反射 反射是一种程序可以访问、检测和修改其本身状态或行为的能力。 在 Python 中,反射主要指通过字符串的形式操作对象的属性。 【2】Python中的反射 通过字符串的形式操作对象相关的属性。 python中的一切事物都是对象(都可以使用反射) 【二】反射方法 反射方法介 ......
面向过程(函数)和对象(类)
【一】面向过程 (函数) 核心在于:过程 过程其实就是将程序流程化 可以说是一条流水线,分步骤的解决问题,先干什么再干什么,分的很清楚 优点 复杂度的问题流程化,进而简单化(一个复杂的问题,分成一个个小的步骤去实现,实现小的步骤将会非常简单) 缺点 一套流水线或者流程就是用来解决一个问题,生产汽水的 ......
面向对象的三大特性及派生和组合
面向对象的三大特性 面向对象编程有三大特性: 封装、继承、多态 --> 派生和组合 【一】封装 【1】什么是封装 在程序设计中,封装(Encapsulation)是对具体对象的一种抽象 封装就是对具体对象的一种抽象 简单理解就是将不想让别人看到的东西全部藏起来 【2】为什么要封装 封装数据的主要原因 ......
Python面向对象之派生
派生 【一】概要 "派生"(Derivation)是指在面向对象编程中,通过创建新的类,基于已有的类(通常称为父类或基类)来构建新的类,以获取和扩展父类的属性和方法。在这个过程中,新创建的类称为子类或派生类。 通俗来讲,派生是指,子类继承父类,派生出自己的属性与方法,并且重用父类的属性与方法 【二】 ......