自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Go学习之context

最近写一个项目用了context ,学习了下, 记下来加深印象。https://juejin.im/entry/58088180c4c971005879b184#comment

2019-11-12 18:16:40 244

原创 beego开发笔记-处理controller类的常用方法

c代表自己方法的controller命名GET请求获取数据:c.getInt()c.getString()等Post请求 :一般前端都是传一个json字符串获取数据:json.Unmarshal(c.Ctx.Input.RequestBody, &Struct)解析到结构图体中 返回数据:把结构体变为json:json.Marshal(S...

2019-07-11 20:17:53 906

原创 gorm框架下mysql包sql_报sql_mode错误

在mysql下使用group by进行分组,会报sql_mode错误。解决方案:set@@sql_mode=STRICT_TRANS_TABLES。。。。。。(自己选择自己要的记得去掉group选项);然而在gorm框架下使用group还是会报这样的错误,解决方法如下:必须创建一个mysql配置文件(一般都有 没有的话自己建立一个)在mysql的安装目录下有一个my.ini...

2019-07-11 20:03:43 1588

原创 docker学习笔记

镜像:Docker 镜像可以看作是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。容器命令:docker run --name=x y//run 是启动一个镜像y成为docker容器,并起名为x实例:docker run --...

2019-03-13 16:04:34 270

原创 GO语言学习笔记之并发

如何开始多线程通过go func()来进行开启看图: 我们发现这样的操作并不能输出Go方法去输出相应的结果原因如下:main线程去执行 ,还没运行Go方法线程时,就结束了main线程因此无法运行Go方法的线程我们试着让main线程沉睡几秒。这样就有足够的时间去执行Go方法的线程了。执行顺序是先②,main线程沉睡,再执行①,输出GO GO GO这...

2018-11-19 14:59:57 264

转载 go的json处理

https://blog.csdn.net/tiaotiaoyly/article/details/38942311

2018-11-16 18:04:20 223

原创 gorm

关于struct定义规则:表名为全小写,其对应的struct应该为表名的大驼峰命名法如:table:user_table->struct:UserTable

2018-11-16 17:26:35 767

原创 Beego学习笔记之前后端交互

go包每日学习:前后端交互:后端向前端传数据:假设我们的方法接受this *CsdnController 一个参数1.可以在后端使用this.Data["str"]=xxx   //str可以是任意命名,2.在前端使用{{.str}}直接提取也可以将一个struct直接传入前端1.this.Data["str"]=this  //将this传入2.{{str.fie...

2018-11-16 11:26:50 1733

转载 Integer缓存问题

java内部为了节省内存,IntegerCache类中有一个数组缓存了值从-128到127的Integer对象。当我们调用Integer.valueOf(int i){这一步自动装箱就会用到}的时候,如果i的值时结余-128到127之间的,会直接从这个缓存中返回一个对象,否则就new一个新的Integer对象。即:当我们定义两个Integer的范围在【-128—+127】之间,并且值相同的时候,...

2018-10-18 20:07:43 942

原创 数据结构大纲(自我总结用)

线性表   顺序存储结构:我们常用的数组   链式存储结构:链表串:    由多个或零个组成的有限序列,又名字符串。树:    树是多个结点的有限集,表示法:顺序表:双亲表示法:通过一个数组存储结点信息,结点包括下标,data域,和一个双亲指针(双亲结点的下标),但是如果我们需要找到某个结点的孩子结点,我们需要遍历整个数组孩子表示法:我们为了更快的找到孩子,...

2018-10-16 15:34:58 505

原创 mysql中的MVCC

学任何东西都是循序渐进的过程之前看了这方面的东西,那时候很心急,因此很多东西不能完全理解。今天再次拿出来看首先学习MVCC我们先要去学习redo log 和undo log这些日志是干嘛的undo log:存储了数据先前的版本我们的mysql事务有一特性称为原子性,undo log就完成了这一特性。它是这样实现的:首先我们将数据读取到内存中,然后在内存中修改数据,在修改任何数据...

2018-10-14 17:30:23 542

原创 java线程间通信方式

1.同步就是通过Synchronized关键字来进行同步访问控制,确保谁拿到了相应的锁才能执行相应的操作本质上就是共享内存式的通信,这个共享内存在java的内存模型中就是主内存,相当于通过主内存的数据进行线程通信。因Synchronized解锁时会将工作内存中的数据刷新到主内存中,Synchronized加锁时会将工作内存中的值清空从主内存读。多个线程访问同一变量,谁拿到了锁谁就去访问。...

2018-10-13 17:41:11 1124

原创 java如何查看死锁

首先我们先写一个死锁程序public class DeadLock { public static void main(String[] args) { new Thread(new Runnable() { @Override public void run() { synchroniz...

2018-10-13 15:41:10 1216

原创 spring中用到的设计模式(自我总结)

我们从spring的xml文件讲起当我们使用<bean id="xxx">时,我们通过反射建立类这时候创建类就是通过工厂模式来创建的,并且我们创建的类可以设置scope的,如果设置singleton的话,就是单例,使用了单例模式,并且在aop中使用了动态代理,所以目前我熟悉的就三个。...

2018-10-13 14:25:44 426 1

原创 线程池中的线程工厂

倒数第二个参数就是我们的主角,线程工厂,顾名思义就是用来生成线程的工厂,为了创建具有相似特性的线程所以使用它,例如守护线程等 

2018-10-12 20:57:02 2381

原创 线程池拒绝策略

今天看了线程池的拒绝策略:我们看下ThreadPoolExecutor的API:看它的构造方法:最后一个参数就是今天的主角:拒绝策略首先点开这个类我们发现他是一个接口,点开它的实现类,我们发现这些实现类就是我们所说的各种任务拒绝策略我们一个一个分析首先我们发现构造方法里有不需要拒绝策略的构造方法。那么一定就有一个默认的构造方法我们从这个讲起:这就是我们的默认...

2018-10-12 20:51:31 1821 1

原创 如何让多个线程按照顺序执行

两种方法:假设如下:                如果有a,b,c三个线程,我们依次执行这三个线程。因为不保证有序性,可能执行出来是混乱的解决如下:第一种使用join()方法,这个方法的作用是,让当前执行线程等待直到调用join方法的线程结束运行代码如下:class Thread1 extends Thread{ public void run(){ ...

2018-10-12 19:21:20 4830

原创 MYSQL中为什么索引不宜建在重复数据多的列上

昨天想了一天这个问题首先我们先粗略的说一说:加入有一个查询语句要查询性别为男生的数据,因为这样的数据很多,我们要扫描很多次索引,然后再去取这个性别为男的数据。那么分为两部分,先扫描索引,然后去取这个符合要求的数据如果我们不建立索引,那么去扫描整个表。不建立索引需要的时间=T扫描整个表                            建立索引需要的时间= T去索引中取+T取...

2018-10-08 11:51:11 17645 4

原创 剑指Offer刷题笔记(java实现)_39.数组中次数超过一半的数字

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入数组:{1,3,3,2,3,2,3,3,2}。由于2在数组中出现了5次,超过数组长度的一半,因此要输出2。三种解法:第一种遍历数组,利用hashMap存储每个数字出现的次数,时间复杂度O(n)第二种:如果一个数组排好序,并且这个数组中有一个数字超过数组的一半,那么位于中间位置的一定是这个数第三种:我们这么想,...

2018-10-07 16:18:31 246

原创 剑指Offer刷题笔记(java实现)_26.树的子结构

题目描述:  输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)。 其实思路很简单:我们的算法就通过比较即可,因为是树的遍历比较所以第一时间想到了递归先假设母树为A,子树为B(1)我们先去判断节点的第一个点的值是否相同,如果相同则进一步遍历以这个节点相同的左右子树是否和B的起点的左右子树的值都相同(2)如果比较的当前头结点的值都不...

2018-10-06 21:13:16 248

原创 剑指Offer刷题笔记(java实现)_16.剪绳子

题目:给一段绳子长为m,我们可以剪n次(m>1,n>1),问剪得的各段绳子长度之积的长度最大为多少。我们要讲两个方法:叫做动态规划和贪心算法先说动态规划:如果一个问题是求最优解,并且该问题能够分为多个子问题,并且 子问题之间有重叠的更小子问题所以,在用动态规划之前先分析能否将大问题分为多个小问题,分解后的小问题要存在最优解,那么小问题的最优解最合起来就能得到整个问题...

2018-10-06 12:02:31 328

原创 剑指Offer刷题笔记(java实现)_16.数值的整数次方

题目很简单,我们要求出一个数值的整数次方思路:最简单的就是通过一个循环,每次循环乘上一个底数,最后就得到了我们想要的结果但是这样的方法并不高效率,我们之前学习过斐波那契数列,和这个有些类似我们发现一个数的16次方就等于8次方乘8次方,8次方有等于4次方*4次方。我们会发现这样的计算方法高效很多。既然是一个大问题向下分解,分解为多个小问题, 那么我们就是使用递归注意:如果我们接受...

2018-10-06 11:33:39 281

原创 剑指Offer刷题笔记(java实现)_12_矩阵中的路径

设计一个函数,用来判断一个矩阵中是否存在一条包含某字符串所有字符路径,起点可以从任意一格开始,并且不能重复踏入同一个格子例如  a b t g         c f  c s         j d e h如果给定一个bfce ,那么我们从b走向下到f向右到c向下到e说明有这个字符串的路径解题思路:按照上下左右的顺序,依次试探,如果到了死路,则一直回溯到上一个可用节点p...

2018-10-05 23:32:35 262

原创 springIOC容器详解

SpringIOC容器又被搞了,我tm今天要搞定这个东西我目前看过最好的讲解是这篇作者的https://www.jianshu.com/p/4007079cb6c0Spring的IoC容器在实现控制反转和依赖注入的过程中,可以划分为两个阶段:容器启动阶段 Bean实例化阶段这两个阶段中,IoC容器分别作了以下这些事情: 2、IoC容器及IoC容器如何获取对象间的依赖...

2018-09-15 10:50:07 433

原创 mysql练习笔记

去重语句:select distinct column from table where xxxx;select distinct column1 column2  from table where xxxx;//两个条件必须全部相同,才能完成范围查询SELECT * from score where degree >60 and degree<80select * ...

2018-09-14 22:31:49 252

原创 SpringAOP和动态代理技术

一直拖拖拖,结果面试被搞了,下定决心一天搞定AOP将封装好的对象剖开,找出其中对多个对象产生影响的公共行为,并将其封装为一个可重用的模块,这个模块被命名为“切面”(Aspect),切面将那些与业务无关,却被业务模块共同调用的逻辑提取并封装起来,减少了系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性。自己的话来说,就是将一些与业务核心逻辑无关并且多个对象公用的代码块封装起来,...

2018-09-14 11:59:42 464

原创 JAVA并发编程实战读书笔记

今天第一天读这个书吧,感觉翻译确实有些问题,有些地方读起来并不是很通顺,感觉这本书对于我这种并发编程菜鸡不是很实用,要更深一点。原子性:如count++这种操作其实是多步的操作,当并发执行它时一定注意加锁的操作原子变量类:当我们遇到这类操作时,java的并发包中提供了一个原子变量类,用于实现数值和对象引用的原子状态转换。如通过AutomicLon个替代long类型的计数器,能过确保所有对计...

2018-09-03 21:19:18 321

原创 JAVA访问权限

访问权限   类   包  子类  其他包    public     ∨   ∨     ∨      ∨    protect    ∨   ∨    ∨       ×    default    ∨   ∨     ×       ×    private    ∨   ×      ×       ×不能用protected和private修饰类...

2018-09-03 09:38:58 213

原创 SSM校园商铺总结

处理图片问题:如何处理图片路径?思路:我们从前台接受传入的图片,要存入特定的路径。我们设计路径的代码思路如下。我们不同店铺的图片要存在不同的文件中,我们写了一个专门处理图片路径的类因为一个项目中会有很多种图片,如头条图片、商品图片等,这两种图片不应该放在一个文件夹下,但是他们却在同一个项目的存储图片的文件下下,因为路径这个类分为了两个部分:第一部分:处理图片的根路径(项目的...

2018-08-29 18:22:47 4546 2

原创 SpringMVC中文件上传-multipartResolver

我们有时候文件上传时会用到这个功能,这是springMVC自带的功能为什么使用:因为性能优越我们从使用的案例来讲解如何使用我们假设现在传入request请求,这个请求包含了文件的内容看代码 /* * 操作添加图片 * */ CommonsMultipartFile shopImg=null;//spring自带 ...

2018-08-29 18:18:22 1078

转载 当再浏览器输入一个地址会发生什么

转自:https://blog.csdn.net/jeffleo/article/details/77151646 当在浏览器地址栏输入网址,如:www.baidu.com后浏览器是怎么把最终的页面呈现出来的呢?这个过程可以大致分为两个部分:网络通信和页面渲染。一、网络通信    互联网内各网络设备间的通信都遵循TCP/IP协议,利用TCP/IP协议族进行网络通信时,会通过分层顺序...

2018-08-28 11:37:20 1452

原创 JAVA接受键盘读入

Scanner方式:一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。注意:默认分隔符为空格如何使用首先看构造函数  我们主要看两个构造方法:一个是从指定文件扫描,一个是从输入流扫描那么我们看这个方...

2018-08-25 16:30:04 586

原创 操作系统

进程:为了使程序并发执行,我们引入了进程程序段、数据段、PCB便构成了进程实体。PCB用于描述进程的基本情况和活动状态进程是程序的一次执行进程是程序及其数据在处理机上顺序执行发生的活动。进程是具有独立功能的程序在一个数据集合上运行的过程,他是系统进行资源分配和调度的一个独立单位进程有一定生命周期,而程序是一组有序指令的集合程序没有pc是不能参与并发执行的 进...

2018-08-22 17:03:02 463

原创 散列表(哈希表)查找

今天学习了散列表也就是哈希表的内容为什么我们需要hash表呢?设想这种情况,假设我们去找某位同学,我们去拿着学生名单表一一对照,然后找到了同学如果我们去直接问班主任,我们要找的同学在那里,班主任可以直接带我们找到这位同学我们的散列表就类似这种功能我们可以通过某个公式来找到相应的存储位置存储位置=f(关键字)这样我们不需要比较就能获得需要记录的存储位置,这种技术就成为散列...

2018-08-21 21:16:26 280

原创 NIO源码解析之buffer

 IO与NIO的区别:注意:两者都是同步的同步时:应用程序(代码)会直接参与IO读写操作,并且我们的应用程序会直接阻塞到某一个方法上,直到数据准备就绪;或者采用轮询的策略实时检查数据的就绪状态,如果就绪则获取数据。异步是,则所有的IO读写操作交给操作系统处理,与我们的应用程序没有直接关系,我们的程序不需要关系IO读写,当操作系统完成IO读写操作时,会给我们应用程序发送通知,我们的应...

2018-08-17 22:26:23 256

原创 Redis的入门知识

redis是什么:redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。redis优点  a.单线程,利用redis队列技术并将访问变为串行访问,消除了传统数据库串行控制的开销  b.redis具有快速和持久化的特征,速度快,因为数据存在内存中。  c.分布式 读写分离模式  d.支持丰富数据类型  e.支持事务,操作...

2018-08-15 12:41:13 191

原创 数据结构之B,B+树的的索引

首先要说下B-树,B-树其实就是B树,网上的部分都是错的B树为什么存在?1.如果一个通过一个二叉树来查找,如果是对磁盘的数据存取,那么利用率太低了,因为层数太高我们每一层只能取出一个结点信息,取多个会有多次io,消耗io资源太大2.上面说的那种情况其实计算机已经有了解决办法叫做局部性原理:当我们就算只读一个字节的时候,其实会预读取(预读取的大小一般是页的整倍数)这个字节后面一定的长度,...

2018-08-14 12:27:48 293

原创 排序算法之归并排序递归实现和非递归实现

这个算法写起来真的很简单,并且思路也好理解。我们看附图这就是我们的分治算法模型图 。我们这么理解,我们知道当一个列表越长我们进行排序消耗就越大,那么我们把这个列表分为无数个小的列表,然后对他们进行排序,然后再组合,那么也会节省不少精力我们直接看代码首先我们的第一步是分:merger_sort public static void merger_sort...

2018-08-14 00:55:15 4191

原创 SSM项目之商铺系统-加入redis(二十一)

redis的下载安装不多说了直接看如何在项目中引入redis1.导入包2.首先我们用的shiredis连接池,接下来我们配置下redis连接池。 代码:我们完成一个构造函数,这个构造函数直接完成生成redis连接池这一步骤,传入的三个参数一会在spring中配置的xml中这三个参数都是建立连接池需要的参数 public class JedisPoolWriper ...

2018-08-13 00:08:08 567 1

原创 redis

redis的八大特性redis三种启动方式内部数据结构和编码单线程 

2018-08-12 09:21:33 189

空空如也

空空如也

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

TA关注的人

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