自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Magaret的博客

努力成长的程序媛 ~( ̄▽ ̄)~

  • 博客(87)
  • 资源 (1)
  • 收藏
  • 关注

转载 SpringMVC的各种参数绑定方式

https://www.cnblogs.com/HD/p/4107674.html

2020-06-11 10:30:52 249

转载 plantuml使用教程【转】

https://www.cnblogs.com/youlangta/p/7878777.html

2020-04-30 10:18:47 652

原创 JAVA基础——01.日期转换:SimpleDateFormat

SimpleDateFormat是Java提供的一个格式化和解析日期的工具类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式。在Java中,可以使用SimpleDateFormat的format方法,将一个Date类型转化成String类型,并且可以指定输出格式。// Date...

2020-04-16 20:07:01 1747

转载 00.linux开发常用命令小结

转自:https://www.cnblogs.com/kingdompeng/p/5450437.htmllinux开发常用命令小结Linux中许多常用命令是必须掌握的,下面是我作为程序开发常用到的一些Linux命令,总结分享给大家(当然与运维系统管理是有所不同的_!)。一、文件和目录操作cd格式:cd [dirName]功能:切换当前目录至dirName说明:dirName为可...

2020-04-16 13:24:27 184

原创 JAVA基础-20.Java中对象的简称

PO(Persistant Object) 持久对象 用于表示数据库中的一条记录映射成的 java 对象。PO 仅仅用于表示数据,没有任何数据操作。 通常遵守 Java Bean 的规范,拥有 getter/setter 方法。可以理解是一个PO就是数据库中的一条记录;可以理解某个事务依赖的原始数据;好处是可以将一条记录作为一个对象处理,可以方便转化为其他对象 BO(Busi...

2020-04-16 13:19:29 555

转载 git笔记

转自https://github.com/CyC2018/CS-Notes/blob/master/notes/Git.md集中式与分布式Git 属于分布式版本控制系统,而 SVN 属于集中式。集中式版本控制只有中心服务器拥有一份代码,而分布式版本控制每个人的电脑上就有一份完整的代码。集中式版本控制有安全性问题,当中心服务器挂了所有人都没办法工作了。集中式版本控制需要连网才能工作,如果网...

2018-11-02 10:11:19 192

原创 Redis学习笔记(一)Redis是什么?

基础参考教程:http://www.runoob.com/redis/redis-tutorial.htmlRedis 官网:https://redis.io/Redis 在线测试:http://try.redis.io/一、Redis是什么?Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的A...

2018-10-22 22:08:51 215

转载 Java多线程与并发——线程池ThreadPoolExecutor

JDK1.7:https://www.cnblogs.com/dolphin0520/p/3932921.html JDK1.8:https://blog.csdn.net/programmer_at/article/details/79799267

2018-08-30 10:32:17 288

转载 计算机网络——计算机网络常见面试题总结

一、三次握手和四次挥手的具体过程:三次握手:server处于Listen状态,表示服务器端的某个SOCKET处于监听状态,可以接受连接了; 当client端socket执行connect连接时,首先发送SVN报文到server,进入SVN_SENT状态,等待server发送ACK; server接受到SVN进入SVN_RCVD状态,(很短暂,一般查询不到),发送SVN+ACK给cl...

2018-08-29 11:47:24 44262 8

原创 完全背包问题

题目:有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。基本思路这个问题非常类似于01背包问题,所不同的是每种物品有无限件。也就是从每种物品的角度考虑,与它相关的策略已并非取或不取两种,而是有取0件、取1件、取2件……等很多种。如果仍然按照解01背包时的思路...

2018-08-18 11:38:16 369

原创 01背包问题

参考https://www.kancloud.cn/kancloud/pack/70125问题描述:有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。思路分析:这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。 参考:https://blog.csdn.net/qq_22222499/art...

2018-08-17 09:24:12 149

原创 数据库篇(十)——连接

一、内连接与外连接的区别:定义两个表:select * from t1; id name----------1 aaa2 bbbselect * from t2; id age----------1 203 20内连接:只显示符合连接条件的记录。select * from t1 inner join t2 on t1.id=t2.id; 外连接...

2018-08-16 17:20:04 160

原创 数据库篇(九)——SQL注入的相关问题

一、SQL语句应该考虑哪些安全性?防止SQL注入,对特殊字符进行过滤、转义或者使用预编译的SQL语句绑定变量当SQL语句运行出错时,不要把数据库返回的错误信息全部显示给用户,以防止泄露服务器和数据库相关信息。二、什么是SQL注入?举例来说,在后台写的java代码拼的SQL如下:public List getInfo(String ename){ StringBuffe...

2018-08-16 16:22:02 241

原创 数据库篇(八)——优化查询

数据库优化查询的方法有:1、使用索引尽量避免全表扫描,首先应考虑在where及order by,group by涉及的列上建立索引。2、优化SQL语句通过explain来查看SQL语句的执行效果,可以帮助选择更好的索引和优化查询语句。例如:explain select * from news;不要返回用不到的字段不在索引列做运算或者使用函数查询尽可能使用lim...

2018-08-16 15:48:23 4226

原创 数据库篇(七)——数据库的索引

一、数据库索引的原理数据库索引的数据结构:目前大部分数据库系统及文件系统都采用B-Tree(B树)或其变种B+树(数据库索引的首选数据结构)作为索引结构。 参考:https://blog.csdn.net/aqzwss/article/details/53074186B-树B-树是一种多路搜索树(并不一定是二叉的) 1970年,R.Bayer和E.mccreight提出了一种适...

2018-08-16 09:32:45 281

原创 数据库篇(六)——数据库命令相关的问题

一、truncate与delete与drop的区别:参考:https://blog.csdn.net/ws0513/article/details/499805471、SQL中的drop、delete、truncate都表示删除,但是三者有一些差别:delete和truncate只删除表的数据不删除表的结构速度,一般来说: drop> truncate >delete ...

2018-08-14 21:16:59 232

原创 数据库篇(五)——数据库的锁

一、数据库的锁机制及数据库中有哪些锁?锁是一种并发控制技术,锁是用来在多个用户同时访问同一个数据的时候保护数据的。两种基本的锁类型共享锁(S):多个事务科封锁一个共享页,任何事务都不能修改该页;通常是该页被读取完毕,S锁立即被释放。排它锁(X):仅允许一个事务封锁该页,其他事务必须等X锁释放后才能对该页进行访问。二、死锁产生死锁的四个必要条件:互斥条件:一个...

2018-08-14 17:38:28 508

原创 数据库篇(四)——事务

一、什么是事务?事务(Transaction)是并发控制的基本单位。所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。 事务是由一组SQL语句组成的逻辑处理单元。数据库正确执行的四个基本要素(事务的四个属性):ACID:原子性:一个事务的所有操作,要么全部完成,要么...

2018-08-14 11:44:54 258

原创 数据库篇(三)——数据库的三级范式

第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。 第二范式(2NF):满足第二范式必须先满足第一范式。一个表只能说明一个事务。非主键属性必须完全依赖于主键属性。即所有非关键字段都完全依赖于任意一组候选关键字。 第三范式(3NF):在第二范式的基础上,每列都与主键有直接关系,不存在传递依赖。任何非主属性不依赖与其...

2018-08-14 11:08:30 1507

原创 数据库篇(二)——什么是存储过程?有哪些优缺点?

存储过程就是一些编译好了的SQL语句,这些SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后给这些代码块取一个名字,在用到这个功能的时候调用即可。 存储过程详解参考: http://www.cnblogs.com/knowledgesea/archive/2013/01/02/2841588.html优点:存储过程是一个预编译的代码块,执行效率比较高存储过...

2018-08-14 10:29:42 10995

原创 数据库篇(一)——关系型数据库与非关系型数据库

参考https://blog.csdn.net/lijinqi1987/article/details/51823506 http://wiki.jikexueyuan.com/project/mysql/introduction.html 数据库类型 特性 优点 缺点 关系型数据库SQLite、Oracle、mysql 1、关系型数据库,是指采用了关系模型...

2018-08-14 10:13:56 716

转载 java多线程与并发(十)——设计一个死锁

自己设计一个死锁,来理解死锁的原理。 死锁的定义是,两个或两个以上的线程或进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象。 简化一下,就当成只有两个线程。现在有线程1和线程2。线程1执行过程中,先锁定了对象a,然后需要再锁定b才能继续执行代码;而线程2正巧相反,先锁定了b,需要再锁定a才能继续执行代码。这时,两个线程都等着对方解锁,才能继续执行,这时,两个线程就进入等待状...

2018-08-13 15:34:59 925

原创 JAVA基础——00.HashMap、HashTable、ConcurrentHashMap的区别

一、HashMap基于哈希表实现的,每一个元素是一个key-value对,内部通过单链表解决冲突问题。容量不足时,会自动增长,并且HashMap的长度总是2的n次方。 是非线程安全的。 实现了Serializable接口,支持序列化。实现了Cloneable接口,能被克隆。存数据的过程:内部是一个存数据的Entry数组,HashMap采用链表解决冲突,每一个Entry本质是一个...

2018-08-07 11:36:17 153

转载 java基础——如何实现不可变类

转自https://blog.csdn.net/ksjay_1943/article/details/53353359 String、Long、Double是不可变类实现不可变类的步骤1)类声明为final,不可以被继承 2)所有成员是私有的,不允许直接被访问 3)对变量不要setter方法 4)所有可变的变量是final的,只能赋值一次 5)通过构造器初始化所有成员,进行深拷贝...

2018-08-01 17:28:00 3573

原创 java基础——序列化和反序列化

序列化与反序列化1、定义把Java对象转换为字节序列的过程称为对象的序列化 把字节序列恢复为Java对象的过程称为对象的反序列化2、实现方式所有实现序列化的类都需要实现Serializable接口,是一种标记接口,没有任何方法。 当序列化的时候,需要用到ObjectOutputStream里的writeObject(); 当反序列化时,需要用到ObjectInputStrea...

2018-07-29 11:04:09 160

转载 java多线程与并发(九)——浅复制与深复制

转自https://blog.csdn.net/baiye_xing/article/details/717887411.拷贝的引入(1)引用拷贝创建一个指向对象的引用变量的拷贝。package copyDemo;public class copy { public static void main(String[] args){ Teacher...

2018-07-28 22:04:05 866

原创 java多线程与并发(八)——java类加载器与OSGi加载

参考https://blog.csdn.net/u010126792/article/details/65940064一、java类加载器机制jvm想执行.class文件第一步就是把class文件装载进内存。 java类加载器的作用是在运行时加载类。 Java类加载机制指的是将java编译后生成的.class文件中的二进制数据读入到内存中,将其放到jvm构造的运行时数据区内存...

2018-07-28 16:10:02 1581

转载 java多线程与并发(七)——java的动态代理

转自https://blog.csdn.net/u011784767/article/details/78281384(1)什么是代理?大道理上讲代理是一种软件设计模式,目的地希望能做到代码重用。具体上讲,代理这种设计模式是通过不直接访问被代理对象的方式,而访问被代理对象的方法。这个就好比 商户—->明星经纪人(代理)—->明星这种模式。我们可以不通过直接与明星对话的情况下...

2018-07-27 11:14:24 922

原创 java多线程与并发(六)——java的垃圾回收机制

参考及引用https://www.cnblogs.com/1024Community/p/honery.htmlGC(Java的垃圾回收机制)概括为三个字: where:运行时内存的分布情况 when:对象何时需要被回收 how:对象如何被回收一、内存分布JVM的内存结构包括五大区域:程序计数器、虚拟机栈、本地方法栈、堆区、方法区。其中程序计数器、虚拟机栈、本地方法栈3个...

2018-07-26 21:49:35 3409

转载 java基础——动态加载类

转自https://blog.csdn.net/w410589502/article/details/56676337一、什么是动态加载类动态加载:通过Class.forName的方式来得到一个Class类型的实例,然后通过这个Class类型的实例的newInstance来初始化,这种方法我们称之为动态加载程序在运行时调用相应方法,即使其他方法是错误的,程序依旧会执行。通过动态加载可以...

2018-07-26 17:30:36 728

原创 java基础——Object类的公用方法

1、clone():创建对象并返回对象的一个副本 2、equals(Object obj):判断两个对象的地址是否相等 hashCode():返回该对象的哈希码值 3、wait(): notify():唤醒在此对象监视器上等待的单个线程 notifyAll():唤醒在此对象监视器上等待的所有线程 4、toString():返回对象的字符串表示 5、finalize():当垃圾回收器确...

2018-07-25 16:12:21 339

转载 Docker学习笔记(一)基本原理及概念

转自https://blog.csdn.net/u012299594/article/details/523439101 什么是Docker?Docker是基于Go语言实现的云开源项目。Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或者...

2018-07-24 15:49:25 203

转载 java基础——哈希冲突

转发http://baijiahao.baidu.com/s?id=1586706502510642738&wfr=spider&for=pc 在Java编程语言中,最基本的结构就是两种,一种是数组,一种是模拟指针(引用),所有的数据结构都可以用这两个基本结构构造,HashMap也一样。HashMap的底层实现原理: 在JAVA中,每个对象都有一个散列码,它是由...

2018-07-24 11:39:23 384

原创 java多线程与并发(五)——java中的线程

第四章学习笔记一、线程1、Java中线程的状态: NEW:初始状态 RUNNABLE:运行状态 BLOCKED:阻塞状态 WAITING:等待状态 TIME_WAITING:超时等待状态 TERMINATED:终止状态 注意:将运行和就绪两个状态合并为运行状态。 阻塞状态是线程进入同步锁(synchronized修饰的方法或代码块)时的状态,但是阻塞在java.c...

2018-07-21 16:12:29 204

原创 java多线程与并发(四)——java内存模型

《Java并发编程的艺术》第三章学习笔记一、内存模型的基础 并发编程中的两个关键问题: 1、线程之间如何通信(线程之间交换信息的机制有两种:共享内存和消息传递) 在共享内存的并发模型中,线程之间共享程序的公共状态,通过写-读进行隐式通信;在消息传递中,必须通过发送消息显式通信。 2、线程之间如何同步(同步:指在程序中控制不同线程间操作发生相对顺序的机制) 共享内...

2018-07-12 17:14:50 1524

转载 以博客系统为例的数据库分析与设计之分析篇

https://blog.csdn.net/Lockey23/article/details/73468418系统分析 作为一个微型博客系统,不需要像微博或者csdn这样的大网站每天承受数以N万计的用户访问,也不需要展示丰富繁杂的内容,所以我们就按最简来进行数据库的设计,这样相对而言系统承载要小的很多很多,数据库条目关系以及储存占用也很小,也便于基础学习者理解。服务器和数据库我们一...

2018-07-08 21:35:23 5147

原创 Problem45.Jump Game II

问题:Given an array of non-negative integers, you are initially positioned at the first index of the array.Each element in the array represents your maximum jump length at that position.Your goal is...

2018-07-06 22:08:13 130

原创 剑指offer——面11:数值的整数次方 和 面14:调整数组顺序使奇数位于偶数前面

给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。注意:需要考虑exponent是0和负数的情况!!!! 测试用例需要全面:正数、负数、0 为了提高效率,exponent分为是偶数和奇数 a^n= n是偶数:a^(n/2)*a^(n/2) n是奇数:a^(n/2)*a^(n/2)*a 代码如下:public c...

2018-07-03 18:07:25 100

原创 剑指offer——面10:二进制中1的个数

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。最暴力的解法是将这个整数转换成二进制,时间复杂度高。 《剑指offer》中有:将一个整数减去1再与原整数做&(与)运算,相当于将这个整数二进制中最右边的1转换成0,那么进行多少次这样的运算,原整数的二进制中有多少个1 代码如下:public class Solution { public int...

2018-07-03 16:47:11 103

原创 剑指offer——面8:旋转数组的最小数字 和 面9:斐波那契数列

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0import java.util.ArrayList;public class Solution { ...

2018-07-03 15:46:27 117

扫雷JAVA实现源码

JAVA项目小实践,完成一个扫雷小游戏,本资源是JAVA实现扫雷小游戏的源码,学习使用~

2018-10-17

空空如也

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

TA关注的人

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