自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 后端开发学习笔记(1)JVM运行机制 内存区域划分 垃圾回收与算法 类加载机制

Java程序的具体运行过程如下:(1)Java源文件被编译器编译成字节码文件(.class)。(2)JVM中的解释器将字节码文件编译成相应操作系统的机器码。(3)机器码调用相应操作系统的本地方法库执行相应的方法。不同操作系统的解释器是不同的,但基于解释器实现的虚拟机是相同的,这也是Java之所以能实现跨平台开发的原因。JVM的内存区域分为线程私有区域(程序计数器、虚拟机栈、本地方法栈),线程共享区域(堆,方法区)和直接内存。程序计数器是一块很小的内存空间,用于存储当前运行的线程所执行的字节码的行号指

2022-06-05 16:55:42 392

原创 Java数据结构与算法:数据库,Java程序与数据库的连接和基本操作

文章目录数据库数据库数据库是可能保存大量数据的仓库,为能快速地存储、查询数据的目的并以多种方式来组织。数据库管理系统(database management system)是一个软件,

2022-04-28 09:28:17 3412

原创 Java数据结构与算法:无向图,有向图,带权图,图的遍历,最小生成树

无向图前面了解到树是有单一根结点的非线性结构,图(graph)也是一种非线性结构,其中的结点可以与许多其他的结点相连接,并且没有特定的父/子关系。图和图论的研究是数学和计算机科学中的完整学科。...

2022-04-27 10:28:13 4258

原创 Java数据结构与算法:树,二叉树,二叉查找树,堆

树树(tree)是一种非线性数据结构,它的元素组织为层次结构。树由一组结点(node)及一组边(edge)构成,结点用来保存元素,边表示结点之间的连接。每个结点都处在树的某一层中,树的

2022-04-26 19:48:56 231

原创 Java数据结构与算法:队列,队列的应用实例:Caesar密码的编码k值

队列队列(queue)是一个线性集合,它在一端添加元素,在另一端删除元素。所以可以说队列元素的处理是先进先出(first in, first out, FIFO)的方式。队列中元素删除的次序与它们进入

2022-04-26 10:07:38 207

原创 Java数据结构与算法知识点:集合,抽象的概念;栈,数组栈、链表栈的结构及其实现

集合集合(collection)是收集并组织其他对象的对象,它定义了访问及管理称作集合元素(element)的其他对象的一种具体方式。集合的使用者——常常是软件系统中的另一个类或对象—

2022-04-23 17:23:13 336

原创 Java数据结构和算法 五种排序算法:选择排序、插入排序、冒泡排序、快速排序和归并排序的实现与性能分析

排序排序(sorting)是根据某些标准,将一组数据项按确定的次序重排,或为升序或为降序,例如按字母表顺序排列名字,或按降序排列测量结果。排序被认为是计算机科学的经典研究领域。我们在此研究5个不同的排序算法:选择排序、插入排序、冒泡排序、快速排序和归并排序。前三种算法的效率差不多,但方法都有所不同。后两种算法的效率更高,也相对比较复杂。我将在本文的最后一节简要介绍评估算法复杂度的方法并比较这些排序算法。选择排序选择排序(selection sort)算法重复一个过程:分别将每个值放到排好序的最终位置

2022-04-21 21:57:04 1360

原创 Java数据结构与算法 线性查找和二分查找

查找查找(searching)是在一组数据项中找到指定的目标元素(target element)或者判定组内不存在目标的过程。要查找的数据项组有事成为查找池(search pool)。在此讨论两种常用的查找方法:线性查找和二分查找。我们在此只限定在数组内进行查找,后续会讨论其他不同结构中数据的查找技术。我们的目标是尽可能高效地完成查找。利用算法分析的术语来说,在查找目标的过程中进行最少量的比较。一般而言,查找池中的数据项越多,找到目标需要的比较次数也就越多。所以对于查找问题来说,问题的大小由查找池中数

2022-04-20 10:58:22 785

原创 方法调用和递归程序的算法复杂度分析

方法调用假定有以下代码段:for (int count = 0; count < n; count++){ printsum(count);}循环执行的次数乘上循环体的阶就可以得到整个循环的阶。而本例的循环体是一个方法调用,所以必须先确定这个方法的阶才能确定这个代码段的阶。假设每次调用该方法完成的功能是打印从1到n的和,那么该方法或许可以写成在这样的蛮力解法:public void printsum(int count){ int sum = 0; for (int i = 1;

2022-04-19 20:47:35 181

原创 算法分析:算法效率和增长函数介绍

算法效率计算机系统中最重要的资源之一就是CPU时间。完成具体任务的算法效率是决定程序执行速度的一个主要因素。我们也可以分析算法使用的内存量,但通常更关心CPU时间。用一个日常的例子“洗盘子”来引入算法效率的概念。如果洗一个盘子用30秒,烘干盘子再用30秒,则洗净并烘干n个盘子要用时n分钟,可用下式表示这个计算:洗n个盘子所用的时间 = n*(30秒洗的时间 + 30秒烘干时间) = 60n 秒即 f(n) = 30n+30n = 60n现在把这个例子用在一种极端的情况下:每洗一个盘子,就烘干刚

2022-04-18 22:18:58 982

原创 Java数组编程实例(一) 统计输入字符串中每个字母出现的次数

数组(array)是一种用来组织数据的简单但功能强大的程序设计语言结构。数组是值的列表,它让我们仅声明一个变量,变量中可容纳多个单独访问的值,每个值保存在数组中确定的、已编号的位置中,对应于每个位置的编号称为索引(index)或下标(subscript)。在Java中,数组索引从0开始,大小为N的数组其下标从0到N-1。在Java中数组是对象,要创建一个数组必须声明一个指向数组的引用,并通过new运算符实例化数组。这个过程要分配用来保存值的内存空间即数组的长度。数组有两种声明方式,第一种是在数组中保存的值

2022-03-28 20:47:25 4431

原创 Java中的静态变量和静态方法

决定哪些方法或变量声明为静态的,是类设计时的关键步骤。静态变量(static variable)有时也称为类变量(class variable),它由类的所有实例共享。对于类的所有对象来说,静态变量只有一个副本。所以在一个对象中修改静态变量的值,同时也就修改了其他所有对象中该静态变量的值。保留字static是用来声明静态变量的修饰符。静态变量的内存空间是在程序第一次使用该变量所在的类时分配的。在方法内声明的局部变量不能是静态的。静态方法(static method)也称为类方法( class met.

2022-03-22 20:00:00 3369

原创 Java类的编写实例(二) 抛硬币统计正反面出现的次数 谁先连续三次正面朝上的游戏 创建一个好的类可以在许多不同的程序中复用

创建一个模拟抛硬币的Coin类,实现随机抛掷硬币的方法,用随机数来表示硬币当前的状态,并能够根据这个值判断硬币是否正面朝上。Coin对象可以是两种状态之一:正面朝上或反面朝上。我在Coin类中用整数值来表示这个状态,0表示正面朝上,1表示反面朝上(反之也不影响,因为实例调用的将是判断方法的返回值),这个值保存在变量face中。对于这个问题来说,可以用布尔值、字符串或者是枚举类型来表示硬币的状态,之所以选择使用整数来表示,是因为选择随机数的方法(本例采用的是Math.random)返回的是一个数值,所以避免

2022-03-22 11:00:00 1489

原创 Java类的编写实例(一 )SnakeEyes 投骰子中出现蛇眼(双幺)的次数 如何创建新的类和成员

初学者编写一个只包含main方法的单一类,是一个很小但是完整的程序。这样的程序通常使用Java类库中预定义的类来实例化对象,然后使用这些对象提供的服务。尝试编写新的程序,用到的类不完全是Java类库中预定义的,还需要自己编写新的类并定义类的对象完成的服务。面向对象软件设计的基本部分是确定程序中应该创建哪些类,这些类决定了系统中要管理的对象,要仔细考虑应如何表示组成系统的各个元素。在设计的初期就要为每个类分配职责,并考虑如何将这些任务转为具体的方法。面向对象程序设计的核心是类的定义,它代表定义了状态和

2022-03-21 23:00:00 632

原创 程序设计基础知识以及浅谈面向对象的概念

目录一、程序设计基础1. 什么是程序2. 程序设计语言3. 编辑、编译和解释程序4. 错误5. 软件开发二、面向对象概述1. 对象的基本概念2. 类与对象一、程序设计基础1. 什么是程序程序(program)有时也被称为应用(application),是让芯片、硬盘等硬件(hardware)逐条执行的一系列指令的统称。软件(software)是由程序和程序使用的数据组成的。程序由具体的程序设计语言(programming language)编写,这些语言用特殊的语句和符号表述问题解决方案,它们有特定

2022-03-21 09:44:55 3576

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除