4 陈嘉俊

学生身份

我要认证

暂无相关简介

等级
TA的排名 11w+

数据结构与算法 递归的原理与举例

当年本科刚刚接触编程的时候,对递归的理解始终不够到位。原因主要是当时老师把递归放在计算机组成原理这门课上讲解的,与编程实践联系的不是非常紧密,而且当时自己没有对知识理解形成一个体系,所以并没有比较深入的介绍其底层的调用机制。前几天,在网上听了一位老师对递归知识的讲解,感觉豁然开朗。什么是递归?递归从实际代码层面来看就是方法对自身的调用,方法本身可以传入实参。使用递归的意义是什么?递...

2020-04-20 04:12:44

数据结构与算法 Java实现计算后缀表达式(逆波兰表达式)

前面我们介绍了什么是中缀、前缀和后缀表达式,还实现使用Java代码了中缀表达式转后缀表达式。这篇博客我们来介绍如何计算后缀表达式,并使用Java实现。计算后缀表达式的流程:从左至右扫描表达式,遇到数字时,将数字压入堆栈。遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算(次顶元素 和 栈顶元素),并将结果入栈。重复上述过程直到表达式最右端,最后运算得出的值即为表达式的结...

2020-04-17 05:27:15

数据结构与算法 中缀、前缀和后缀表达式,Java实现中缀转后缀

中缀表达式中缀表达式是一个通用的算术或逻辑公式表示方法, 操作符是以中缀形式处于操作数的中间(例:3 + 4),中缀表达式是人们常用的算术表示方法。中缀记法中括号是必需的。计算过程中必须用括号将操作符和对应的操作数括起来,用于指示运算的次序。8+4-62用后缀表达式表示为:8 4+6 2-2*(3+5)+7/1-4用后缀表达式表示为:235+*71/+4-前缀表达式前缀表达式是...

2020-04-16 06:24:38

Java反射 使用Class类的对象(运行时类)newInstance()方法的说明

前面我们演示过如何使用Java反射动态创建一个类的对象,这个过程是调用Constructor类对象完成的。其实运行时类(Class类对象)还提供了newInstance()方法,该方法封装了我们前面使用的方法代码。不过调用该方法有一个前提,就是该运行时类在代码编写时,必须定义一个空参构造器。...

2020-04-12 22:37:24

Java 类的加载过程

当程序主动使用某个类时,如果该类还未被加载到内存中,则系统会通过 如下三个步骤来对该类进行初始化。类的加载与ClassLoader的理解加载:将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后生成一个代表这个类的java.lang.Class对象,作为方法区中类数据的访问 入口(即引用地址)。所有需要访问和使用类数据只能通过这个Class对...

2020-04-12 05:56:10

Java反射 使用反射的一些代码示例

理解Java反射的最好解释是:万物皆对象。下面的代码演示如何利用Java反射机制,构造单例类的实例并且调用其方法。实例代码:import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java....

2020-04-12 05:04:36

数据结构与算法 使用数组实现栈(stack)

栈这种数据结构有FILO(First-In-Last-Out)的特性,恰好和队列FIFO的特性相异。前面我们介绍了队列也通过代码实现了以数组为基础结构实现的队列,这篇博客我们来介绍Stack,并且使用数组来实现 (链表实现性能稍差)。栈的结构像桶一样,只不过每次只能放入和取出一个元素,所以Stack才有FILO这种特性。栈的底部被成为栈底(Bottom),顶部称为栈顶(top)。每次把元素...

2020-04-11 03:42:59

数据结构与算法 单向环形链表解决约瑟夫环问题

在前面我们了解和实现了环形队列和链表,这篇博客我们来介绍和实现一种环形链表来解决经典的约瑟夫环问题。环形链表其实与单链表大同小异,只不过环形链表是首尾相连的。由于环形链表的结构特点比较符合约瑟夫环,所以我们使用它来解决约瑟夫环题。在此之前,我们来了解一下什么是约瑟夫环问题(这里描述的比较血腥,我们也可以理解为类似小时候玩的小游戏-丢手绢。):约瑟夫问题是个有名的问题:N个人围成一圈,从第一个开...

2020-04-10 04:36:19

数据结构与算法 双向链表

在前面我们介绍了使用Node数据结构实行单链表,那么这篇博客我们来介绍一下如何实现双向链表。双向链表其实结构上和单链表非常相似,唯一的不同是构成双向链表的Node中比单链表的Node多一个preNode数据域,preNode指向前一个Node。双向链表与单链表在特性上的比较:单向链表,查找的方向只能是一个方向,而双向链 表可以向前或者向后查找。单向链表不能自我删除,需要靠辅助节点 ;...

2020-04-06 05:29:35

Spring Data JPA 主键生成策略

Spring Data JPA 标准用法spring data jpa 的标准主键生成策略主要有四种,分别是:public enum GenerationType { TABLE, //使用一个额外的数据库表来保存主键 SEQUENCE,//使用序列的方式,且其底层数据库要支持序列,一般有postgres、Oracle等 IDENTITY,//主键由数据库生成,一般...

2020-04-06 04:15:57

横向思维和纵向思维

纵向思维者对局势采取最理智的态度,从假设、前提、概念开始,进⽽依靠逻辑认真解决,直⾄获得问题答案。纵向思维也经常被当做线性思维,逻辑思维。⽽横向思维者是对问题本身提出问题、重构问题,它倾向于探求观察事物的所有的不同⽅法,⽽不是接受最有希望的⽅法,并按照去做。这对打破既有的思维模式是⼗分有⽤的。知乎...

2020-04-05 03:22:41

How to Read JSON from a File using Gson (如何使用Gson从json文件中读取信息创建对象)

In this short article, you’ll learn how to read JSON data from a file by using the Gson library. Gson is a popular JSON processing library developed and maintained by Google for reading, writing, and ...

2020-04-05 03:18:40

How to build a cluster scheduler 项目简介

Aim / Learning objectivesThe aim of this project is to explore the resource allocation problem in data-intensive systems. Schedulers need to distribute the workload across a set of resources to achie...

2020-04-04 22:40:20

数据结构与算法 LinkList 链表

顺序表(List)可以根据不同的存储方式来以分类,比如说使用数组或使用节点这种数据结构来实现。在Java中,ArrayList就是由数组为基础结构创建的,而LinkList是由节点对象而构成的。由于Array的下标特性,ArrayList查找、更新元素值的性能好;对于LinkLIst,其添加或删除元素的性能好。链表根据功能特点可以分为多种类型,比如说单向链表、双向链表等。今天,我们来介绍如何实现单...

2020-04-03 05:23:42

Mesos 资源管理框架

MesosMesos is built using the same principles as the Linux kernel, only at a different level of abstraction. The Mesos kernel runs on every machine and provides applications (e.g., Hadoop, Spark, Kaf...

2020-04-02 23:06:49

YARN 资源管理框架

Apache Hadoop YARNThe fundamental idea of YARN is to split up the functionalities of resource management and job scheduling/monitoring into separate daemons. The idea is to have a global ResourceMana...

2020-04-02 22:32:48

Interactive Query 交互式查询

Interactive QueriesInteractive Queries allow you to leverage the state of your application from outside your application. The Kafka Streams API enables your applications to be queryable.The full sta...

2020-04-02 22:04:28

Spring Boot Spring Data JPA创建实体类

在前面我们提到过ORM(Object Relational Mapping),这里面的O对应的是架构中应用层的对象实体。在JAP中,我们需要创建一个类对应这个实体,而这个实体一般对应着数据库中的一张表。接下来我们好好讲一下,如何创建一个实体类,以及相关的注解。示例代码:import javax.persistence.*;@Entity(name = "user")@Tabl...

2020-04-02 05:25:13

Spring Boot如何在项目中引入Spring Data JPA模块并连接数据库

首先我们要在maven项目的pom文件中引入三个依赖:<!--JPA模块,支持Spring实现的上层操作,默认包含JDBC模块--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sprin...

2020-04-02 03:54:34

Spring Data JPA Spring Data和Spring Data JPA的概述

Spring Data是为了简化构建基于Spring框架应用的数据库访问技术的一个项目,支持关系数据库、非关系型数据库、Map-Reduce框架和云数据服务等。Spring Data包含多个子项目,如下:Spring Data为我们使用统一的API来对数据访问层进行操作,这主要是Spring Data Common项目来实现。Spring Data Commons让我们在使用关系型或非关系型...

2020-04-02 03:03:30

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。