自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 资源 (2)
  • 收藏
  • 关注

原创 Java并发编程的艺术(五)

简介本系列为《Java并发编程的艺术》读书笔记。在原本的内容的基础上加入了自己的理解和笔记,欢迎交流!Chapter 5:Java中的锁这章我觉得是本书的核心,他介绍了不是如何使用锁,而是如何设计锁,在设计锁的过程中,不断加深对锁的理解。1. Lock锁lock锁提供了和synchronized相似的锁功能,但是其使用必须是需要显式的获取和释放锁(finally块中)。这样做虽然和synchronized的隐式获取和释放比起来比较麻烦,但是更加灵活,程序员可以在任意位置获取和释放锁,可以应对更多复

2021-06-23 18:04:11 165 1

原创 HyperLedger Fabric(二):单机网络构建

1. 简介基于上一篇文章的基础环境,我们接着准备Fabric的相关组件并启动一个单机网络。2. Fabric组件安装Hyperledger (超级账本)是一组开源工具,旨在构建一个强大的、业务驱动的区块链框架。Hyperledger (超级账本)是区块链行业中最大的项目之一,它由一组开源工具和多个子项目组成。该项目是由 Linux 基金会主办的一个全球协作项目,其中包括一些不同领域的领导者们,这些领导者们的目标是建立一个强大的、业务驱动的区块链框架。Hyperledger Fabric 是 Hype

2022-03-27 17:43:43 8783

原创 HyperLedger Fabric实战(一):基础环境构建

简介本文将介绍从一台裸机上面如何构建出一个可用的Fabric网络(单机版,非测试网络)。基础环境构建Fabric组件安装

2022-03-27 16:50:53 12242 2

原创 Redis安装

Redis安装redis作为典型的nosql,采用的是内存存储的方式,适合用来存储具有一定生命周期的数据,不适合作为长期的存储方式(内存是宝贵的资源)。同时redis也提供了对数据持久化的方案,在软件开发中经常会使用到它。1. redis for linuxredis官方建议使用linux系统,其安装也十分的方便:基础环境系统:ubuntu 18.04apt-get updateapt-get upgrade# gzipsudo apt-get install zip# makesud

2022-03-13 16:57:34 1021

原创 Perti网(一):概论与EN系统

简介本文为清华大学《Perti网:模理论与应用》公开课的读书笔记。概述术语1. 网模型论(Special Net Theory)SNT:有向网+网系统。在有向网是模型的基础,在有向网的基础上加上资源的分布和动态的规则就变成了网系统。有向网(棋盘):结构,以及结构特征。网系统(棋局):动态性质,分析方法,层次结构。2. 通用网论(General Net Theory)GNT的研究点:Synchrony:同步论,研究同步距离(对同步定量的描述)。Concurrency:并发公理,让

2021-11-05 15:04:46 823

原创 动态规划:子数组的最大和

简介本文主要介绍了一个系列的问题:子数组的最大和环形子数组的最大和。问题来自LeetCode。LC:53 子数组和问题给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。这个思路较为简单,考虑计算每个位置的前缀和:preSum,在遍历到下一个位置时,比较preSum+curNum是否比curSum大,如果大则 preSum+=n,否则preSum=n。每次比较完之后,需要记录下最大值。这样做其实是一种贪心的策略,如果curNum加上该位置之前的前

2021-08-27 20:31:36 260

原创 读书笔记——深入理解JVM(JVM自动内存管理)

简介本系列为《深入理解Java虚拟机—JVM高级特性与最佳实践》一书的阅读笔记。本书开头介绍了JVM发展的历史,接着介绍了JVM是如何实现自动内存管理的。本章节主要介绍:JVM的存储结构;JVM的运行机制;GC 的原理。1. JVM内存结构和内存溢出异常JVM实质上就在内存中开辟的一块内存空间,这块空间被JVM占用并被划分成若干个分区(逻辑上的),为了高效的管理,这些分区会执行不同的功能,由于JVM有GC机制,所以我们不用太过于纠结内存泄露的问题,然而当出现内存不足等问题时,我们需要分析

2021-08-17 20:45:16 372

原创 spring学习——IOC原理

一、DI和IOC的概念DI和IOC从本质上是从不同角度描述了同一件事情:IOC:将对象的控制权交付给框架,由框架管理对象的生命周期,用户使用对象的时候直接从容器按照名称拿即可;(从容器的角度)DI:程序通过容器使用对象,在使用容器前需要注入相应的对象名称。(从程序的角度)从我们开发的使用过程中,通常就是去容器中拿对应的对象,那么这个过程是怎么样的呢?本文将逐步分析IOC的整个流程,其中着重分析了:多级缓存;依赖注入的源码;循环依赖解决。二、spring容器缓存在Spring默认的单

2021-08-10 00:03:40 306

原创 算法模板——DFS和BFS

DFS深度优先搜索的基本思路就是从一个节点开始,一只遍历其可以到达的节点,直到遍历的节点没有任何可以达到且没有遍历到的节点,此时返回上一个节点,继续遍历上一个节点的可到达且尚未遍历的节点,直到所有相连的节点都被访问到了。Code递归的DFS比较好理解: public void DFS(char[][] board, char[] chs, int x, int y, boolean[][] visited) { // 控制边界 if (x < 0 || y <

2021-08-04 21:15:43 262

原创 算法刷题系列——DFS:矩阵中的路径

问题描述链接:https://leetcode-cn.com/problems/ju-zhen-zhong-de-lu-jing-lcof给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。例如,在下面的 3×4 的矩阵中包含单词 “ABCCED”(单词中的字母

2021-08-04 20:25:54 301

原创 算法刷题系列——动态规划:120. 三角形最小路径和

问题描述思路思路就是动态规划,如果采用递归会超时,其最主要的是写出状态转移方程。主要就是dp求解的过程中的边界值的细节要做好。fun(depth,i)={min(fun(depth−1,i),fun(depth,i−1))+triangle[depth][i]depth>1,0<=i<triangle[depth−1].lengthfun(depth−1,i)+triangle[depth][i]depth>1,i−1<0fun(depth−1,i−1)+triang

2021-08-03 01:12:07 111

原创 算法刷题系列——回溯:784. 字母大小写全排列

问题描述字母大小写全排列思路分析首先这个题目要求的是全排列。那么就是无可避免地使用回溯法。这里建议对回溯的思想和经典的模板要熟悉。那么这道题我其实并没有用求排列的方式,而是使用的组合。二者的区别是:1. 排列需要用used数组来标记该遍历的位置是否加入到结果集了;2. 组合则不需要,因为下次递归的起始下标从当前遍历的位置的下一个位置开始。二者的联系是:排列是从一个数组(n个元素)中选择1、2、3…n个数字的组合。这道题为什么我没有采用排列的思路呢?因为我们无法确定递归终止的条件,因为

2021-08-02 22:40:05 192

原创 Java并发编程的艺术(四)

简介本系列为《Java并发编程的艺术》读书笔记。在原本的内容的基础上加入了自己的理解和笔记,欢迎交流!chapter 4 Java并发编程基础1. 线程基础知识一个进程包括多个线程,进程是资源调度的基本单位,而线程的任务调度的基本单位,因为多个线程本质上是操作进程拿到的资源。一个最简单的helloworld程序会创建四个线程:Signal DispatcherFinalizerReference Headlermain多线程的好处是什么呢?现代处理器的性能提升从高主频转向多核心。

2021-06-23 17:00:08 121

原创 Java并发编程的艺术(三)

简介本系列为《Java并发编程的艺术》读书笔记。在原本的内容的基础上加入了自己的理解和笔记,欢迎交流!chapter 3 Java内存模型(Java Memory Model JMM)本章节包括四个部分:内存模型基础;顺序一致性:指令重排序与顺序内存一致性模型;同步原语:synchronized、volatile、final。内存的设计模型。1. 内存模型基本概念介绍1.1 并发中两个关键问题:(非常关键)线程间如何通信;共享内存和消息传递。共享内存是指多线程访问公共的内容,是

2021-06-21 21:33:32 110

原创 Java并发编程的艺术(二)

简介本系列为《Java并发编程的艺术》读书笔记。在原本的内容的基础上加入了自己的理解和笔记,欢迎交流!chapter 2:Java并发机制的底层实现之前学习Java多线程的时候,使用过synchronized,这种锁称为重锁,而volatile被称为轻量锁,具有可见性,可见性是指一个线程修改一个共享变量时,其他线程可以读取修改后的值 。书中给出了一些术语,之后会频繁出现,作者介绍详尽,不再补充:volatile关键字在Java中,如果一个变量被该关键字修饰,那么所有线程看到这个变量的值一定是相

2021-06-21 16:38:08 185

原创 Java并发编程的艺术(一)

简介在暑期实习的过程遇到了大厂基本上都绕不开并发编程的问题,可以说并发编程是任何编程语言绝对重头的部分,不论是为了以后的面试还是自我的提升,学习并发编程都是必须的。希望通过本次的学习可以掌握:1. Java并发的机制;2. JVM中是如何支持并发的;3. 学会并发编程的基础语法;4. 加深对常用的关键字的理解;5. 掌握一定的并发编程的技巧;阅读书籍《Java并发编程艺术》阅读前推荐:对Java编程基础和面向对象设计熟悉;对操作系统比较熟悉(线程相关概念);JVM了解一点。正文

2021-06-21 15:51:16 216

原创 高并发解决方案——Redis(二)

简介本文主要介绍了安装、使用和redis的配置信息。安装redis基于Ubuntu 18.04。# 更新APT存储库缓存sudo apt update# 下载redissudo apt install redis-server关键配置vim /etc/redis/redis.conf# 端口号port 6379# 开启远程访问bind 0.0.0.0# 通过systemd监控redis状态supervised systemd# 数据库数量databases 16

2021-06-03 15:07:55 120

原创 高并发解决方案——Redis(一)

简介Redis作为重要的缓存数据库在高并发的解决方案中起着重要作用。为了系统的学习Redis,也为了秋招(美团比较关注Redis 的掌握),计划编写该系列博客,也是为了整理知识点。本篇主要介绍了Redis的基础知识与原理。之后将更新Redis的分布式相关知识和实际使用会用到的操作。希望读完这三篇文章可以完全掌握Redis的使用!NoSQLNot Only SQL的简称。NoSQL是解决传统的RDBMS在应对某些问题时比较乏力而提出的。具体的表现如下:RDBMS依赖的表结构扩展性差,当表很多时,修

2021-05-31 14:54:02 5182

原创 java开发——整合SSM

简介学习完了mybatis、spring、springMVC之后就是对这几个框架的整合了。采用的工具和软件:IDEAmysql 5.7springspringMVCmybatisSSM整合1. 导入对应的maven依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.or

2021-01-21 15:40:40 197

原创 Java开发——Spirng 5入门(一)

简介本文是基于狂神说java的教学视频的,希望记录自己的学习过程,同时也欢迎大家交流。  spring是一个开源且免费的框架,主要用于解决web应用开发。其特点是轻量级且非侵入式。  spring两个核心概念是:支持控制翻转(IOC)和面向切片编程(AOP)。同时,由于这两个特性,使得其对事务的支持性极强。Spring的组成模块如下:source![在这里插入图片描述](https://img-blog.csdnimg.cn/2021010813530718.png?x-oss-process=i

2021-01-15 21:38:10 107

原创 java开发——Spirng 5入门(二)

简介本文是基于狂神说java的教学视频的,希望记录自己的学习过程,同时也欢迎大家交流。  spring是一个开源且免费的框架,主要用于解决web应用开发。其特点是轻量级且非侵入式。  spring两个核心概念是:支持控制翻转(IOC)和面向切片编程(AOP)。同时,由于这两个特性,使得其对事务的支持性极强。Spring的组成模块如下:source我们常用的功能包括:spring Boot:快速开发的脚手架构建单个微服务spring cloud是基于spring boot实现

2021-01-15 21:31:17 88

原创 Java基础——注解与反射

1. 简介最近在学习框架技术时频繁地遇到注解与反射相关的原理,之前学习的javaSE中虽然学过,但是记忆模糊,因此打算重新复习一下这方面的知识。2. 注解2.1 概念Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。Java 语言中的类、方法、变量、参数和包等都可以被标注。注解与注释有相似的,他们都是对其标注的代码的一种说明。但是,注解更加复杂:有明确的编写语法:注解的声明需要符合java的命名规范,且自定义注解需要满足Java的语法;有明确的

2021-01-15 00:11:54 179

原创 Java开发——Mybatis进阶

1. 简介  在掌握了Mybatis的基本使用方式之后,我们需要掌握Mybatis相关的:参数性质调优方式日志动态sql编写  同样的,官方文档仍然是最具备参考价值的。其可配置的内容如下,常用的属性已标出。注意:所有的配置的标签必须按照以下顺序进行编写!2. 参数配置2.1 environments:  可以配置多个环境,但是对于一个模块来说,只可以使用一个环境。你可以在不同的场景使用不同的环境配置,比如测试时使用一种,实际部署时采用另一个。  每个环境都有自己的id属性。通过在

2020-12-23 20:07:56 251

原创 Java开发——Mybatis快速入门

简介  本文档的目的在于在掌握JDBC原理和操作的基础上,快速属性Mybatis的常用属性和操作过程。方便自己查看和初学者学习。  Mybatis是一款持久层框架。其中文文档对其使用进行了详尽的描述。MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普

2020-12-20 18:16:59 221

原创 菜鸟刷题之路——Q31:完全二叉树的节点个数

问题 :222. 完全二叉树的节点个数给出一个完全二叉树,求出该树的节点个数。说明:完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。分析分析:利用完全二叉树的特点进行加速,一种是剪枝的方式,一种的二分的方式。二分的方式代码优美而且好理解,这里我是直接copy了LeetCode评论区的大佬的解法。Code// 二分class Solution {

2020-11-24 11:01:44 136

原创 菜鸟刷题之路——Q30:对链表进行插入排序

对链表进行插入排序问题:对链表进行插入排序。分析既然问题这样描述,就要考察我们对链表的熟悉程度。其过程必须按照插入排序的方式,否则没有啥意义。思路:按照插入排序的思路,利用指针找到当前元素该插入的位置 利用head和rear两个指针维护已经排好序的链表。Codejava代码,有详细注释。class Solution { /* 执行结果: 通过 显示详情 执行用时:23 ms, 在所有 Java 提交中击败了34.47% 的用户 内存消耗:37.7 MB, 在所有

2020-11-20 11:16:42 88

原创 菜鸟刷题之路——Q29:加油站问题(贪心算法)

问题:134. 加油站在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。输入数组均为非空数组,且长度相同。输入数组中的元素均为非负数。分析  这是贪心算法里相当典型的案例。题目要求的是开一周,即每个点都要经过

2020-11-18 13:15:43 909

原创 数据库——MySQL的where子句的一些小细节

问题描述  在SQL中使用where子句时通常是对结果进行筛选,通过规定一些条件,根据这些条件的返回值(可以理解为返回值只有 true,false)来判断某个记录是否需要返回给用户。最常见的写法:select * from emp where id = 1;  上面这个sql代表从emp表中选择出id=1的记录,如果id=1则返回,如果是其他数字或者null则不返回。  如果我们的条件不是一个显示的判断性质的条件,而是一个字符串,一个数字呢?测试  下面我们利用一张表来测试,并通过注释来解释

2020-11-16 17:22:39 419

原创 菜鸟刷题之路——Q28:最大树

问题描述  给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下:二叉树的根是数组中的最大元素。左子树是通过数组中最大值左边部分构造出的最大二叉树。右子树是通过数组中最大值右边部分构造出的最大二叉树。  通过给定的数组构建最大二叉树,并且输出这个树的根节点。问题分析  分析:根据题目的定义,一个最大二叉树的子树也是最大二叉树,所以最大二叉树是按照递归的方式来生成的,这也是树最常见的定义方式。  我们首先看第一次递归的过程,不难发现,我们只要得到6的下标(最大值),将其作为

2020-11-16 11:13:16 108

原创 菜鸟刷题之路——Q27:移除K个数字

问题描述给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。注意:num 的长度小于 10002 且 ≥ k;num 不会包含任何前导零。分析分析:本题使用贪心加单调栈的方式,删除K个数即保证在删除到K个数之前,我删除的数都是较大的数。贪心策略就是使用单调栈。具体的流程代码的注释有解释。Codeclass Solution { public String removeKdigits(String num, int k) { /

2020-11-15 15:35:09 129

原创 分布式存储学习——HDFS

简介  HDFS(Hadoop Distributed File System)是一种分布式文件系统,属于非结构化的分布式存储类型。其前身是GFS(Google File System),作为一款优秀的分布式文件系统,其集成了传统文件存储的优点,且具备很多创新的地方,是整个Hadoop生态默认的文件存储策略,非常值得学习。值得一提的是,很多大公司的文件系统都是从开源的HDFS中修改的企业版。  作为Hadoop生态圈的一个重要的成员,HDFS可以说是为了大数据存储和计算而设计的。作为一个分布式存储系统,

2020-11-14 17:13:59 495

原创 分布式入门——MapReduce数据处理框架(上)

MapReduce 简介  MapReduce是google于2004年提出的一种计算模型,用Matei(MIT分布式系统课程的讲师,强烈推荐)的话来说,MapReduce为编程人员提供了一个简单的接口,这个接口让他们可以像是在编写一般程序一样(当然你编写的程序必须符合MapReduce规定的编程规范),由MapReduce框架为整个任务进行划分、分发,在一个大型的商务集群中(MapReduce的初衷是这样的)运行你庞大计算量的任务,最后再由MapReduce收集你的计算结果,存储在文件系统中。

2020-11-09 20:06:58 1188

原创 菜鸟刷题之路——Q26:有多少小于当前数字的数字

问题:1365. 有多少小于当前数字的数字给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i 且 nums[j] < nums[i] 。以数组形式返回答案。分析分析:首先这个题规定数字不会超过100,那么我们开辟一个数组,长度为101,整个理解为一个桶,数组的i位置对应了数字i在nums中出现的个数。所以,数组初始值都为零。遍历一遍nums来记录每

2020-10-26 15:21:28 125

原创 菜鸟刷题之路——Q25:颜色填充

问题:面试题 08.10. 颜色填充  问题来自leetCode。分析  首先,需要将该问题转化成一个图的问题。其实还是比较容易想到的。  问题是让我们找到和目标点相连的所有区域,很容易想到图论中的连通图。将整个image看做是一张图,即问题转化成对当前的图寻找包含给定节点的最大连通子图问题. 典型的DFS问题。Codeclass Solution { public int myColor = 0; public int newColorr = 0; public bo

2020-10-24 17:24:26 162

原创 菜鸟刷题之路——Q24:递归反转栈

问题只用递归实现一个栈的翻转,假设栈存储的内容是整数类型。问题来自面试,主要是考量思想。分析分析:递归本身是调用系统栈,我们以1->2->3->4->5这个序列为例子,实现翻转需要两个过程:弹出当前栈底元素,保存下来,并保持其他元素的位置不动。此时栈的大小是在不断变小的;不断取出栈底元素直到栈空,此时我们取出的顺序是:1,2,3,4,5。我们只需要再递归地把它们压入栈就实现了栈的翻转。Code// 弹出栈底元素,并保持其他元素位置不动 public in

2020-10-24 17:15:35 424

原创 菜鸟刷题之路——Q23:划分字母区间

问题:763. 划分字母区间分析分析:为了切分最多的字符串,我们希望每个字符串尽可能的短,这一步即为贪心的思想。但是我们如何保证我们切分的字符串是符合题目意思的呢?拿S为例子:变量说明:stratIndex:当前子串的开始下标,rearIndex当前子串的结尾下标。首先:a字符最后出现的下标为8,我们假设第一个字符的长度为a第一次出现到最后一次出现的长度,这个是可能的最小的长度,此时得到了子串s1,其startIndex为0,rearIndex为8;为了保证s1是满足条件的,我们遍历

2020-10-22 20:50:50 218

原创 菜鸟刷题之路——Q22:稀疏数组搜索

问题:面试题 10.05. 稀疏数组搜索分析:  分析:看到有序,必先二分。但是注意:如果我们二分的mid指向一个空的字符串那么我们需要向两边寻找到一个非空的字符串,把它作为mid,如果俩边都没有,那么直接返回-1.codeclass Solution { public int findString(String[] words, String s) { int left = 0, right = words.length - 1; while (left &

2020-10-22 20:12:58 89

原创 菜鸟刷题之路——Q21:黑白方格画

问题:LCP 22. 黑白方格画分析分析:LeetCode给的是简单题,但是我觉得把这个题从题面转化成组合数问题还是需要一定时间的——需要画图。首先需要明确:我们只能一次画一整行或者一整列。带着这个限制我们往下看。思想就是组合,为什么是组合可以看一下解答里面带图的分析,相信你一看就懂。注意几点:边界条件,k=1和k=0的情况其次就是返回的条件:当前选取的i行格子已经超过了总格子数k,那么直接返回之前累积的数;当前选取的i行格子刚好了总格子数k,那么返回之前累积的数+combinati

2020-10-19 15:32:16 351

原创 Java全栈学习——前端JS

JavaScript简介  JS可以为HTML页面添加动态效果,这种动态效果是通过规定好的事件触发的。这种动态的效果提高了网页的交互性。同时,AJAX技术使得页面可以异步加载,提高了页面的使用效率(这个后面会说)。  总之,JS在整个前端中来说,是相对重要且和后端交互最多的一个部分。一定要牢牢掌握。  **和CSS一样,既然想为网页添加动态效果,其实本质上就是控制网页中的对应的标签。**所以,JS中也会有各种选择器。选择器用来选定某个标签,不同选择器的效率不同,我们需要按照开发的需求使用对应的选择器。

2020-10-13 22:03:57 388 2

原创 Java全栈学习——前端CSS

CSS-层叠样式表   全称:Cascading Style Sheets。是一种用来渲染HTML页面的脚本语言。简单来说就是通过对HTML页面中的标签进行样式的修改,达到页面美化的效果。这句话的意思有两点:CSS是用于HTML页面美化的;CSS代码在编写时需要可以选定HTML页面中的标签。  其实也很好理解,既然HTML是由标签组成,那么我们必须选择到对应的标签才可以进行也米娜的渲染(一次选择一个或者一次性选择多个)。所以CSS里面最重要的就是选择器,至于具体的样式如何控制可以查阅API文档去修

2020-10-09 15:31:42 117

JavaSE进阶.xmind

我自己整理的java思维导图,大致覆盖了javase里面的所有内容,包括了自己对java 的一些理解,可以用来复习和总览整个javase的内容。

2020-07-09

计算机组成与设计:软硬件接口 最新版课后习题答案 英文版

计算机组成与设计:软硬件接口 最新版课后习题答案 ,用于学习计算机硬件知识,个人觉得虽然是英文版但是还是比较容易看懂的

2018-03-02

空空如也

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

TA关注的人

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