- 博客(85)
- 收藏
- 关注
转载 Mybatis逆向工程与优化
什么是Mybatis的逆向工程 逆向工程就是,我们根据数据的表,自动生成常见的Mapper映射接口和与数据库表对应的pojo实体类,以及和Mapper接口对应的XML SQL语句,解放双手不在去写重复的代码;比如对于每个表根据主键id的查询、更新、删除、以及添加,这些常见的我们都会去手写。但是逆向工程就会把这些东西给我生成好,直接拿去用。github项目地址:https://git...
2019-07-28 00:04:00 257
转载 JVM调优:JVM的内存模型
Java虚拟机的模型JVM(java virtual Machine) 是jre的一部分,是java语言具有跨平台性的实现途径,JVM有自己完善的硬件架构如处理器、堆栈、寄存器等,还有相应的指令系统。JVM主要功能是对程序加载的内存分配、内存回收等工作。JVM被分为三个子系统:类加载子系统、运行时数据区(栈、堆、方法区)、执行引擎(垃圾回收机制)。JVM主要掌握:程...
2019-03-18 20:42:00 295
转载 java并发学习--线程池、并发容器和应用
线程池为什么要使用线程池①:降低了资源的消耗,在不使用到线程池的地方,工作的时候线程会创建销毁,但是在线程池就减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。②:提高响应时间,因为线程池避免砸执行任务时的线程的创建和销毁,那么占的cpu时间会减少,那么响应时间就有所提升。③:提高了线程的课管理性,可以根据系统的承受能力,调整线程池中工作线线程的数...
2019-03-17 15:29:00 230
转载 java并发深入--通信、forkJoin框架、线程安全的学习
线程是计算机的一个稀缺资源,在一个应用的开发下,使用到多线程之间的使用,对项目的效率有着明显的提升;但是并不是线程越多越好,在线程的使用的时候还必须保证线程安全的前提下进行的。先前自己在学校的时候对线程总体的学习,但是始终没有用在项目上,现在打算进一步的对线程的深入源码的去理解、去学习,希望可以得到提升。线程---并发编程的基础先前对线程已经学习过一次,现在对此做一个基础的总...
2019-03-16 11:27:00 347
转载 新闻发布系统:dao层数据操作的接口设计
概要前两篇博客对项目的需求分析,数据库的设计和编码,基本的code环境已经搭建:传送门:新闻发布系统:需求分析以及项目的设计 新闻发布系统:数据库的编码和ssm环境的搭建我们现在开始对数据表的增删改查的编码。Dao层设计User:实体类的设计编码:我们的数据库中有4个表:user表(7个字段),news表(7个字段),comment表...
2019-01-03 22:22:00 579
转载 新闻发布系统:数据库的编码和ssm环境的搭建
概要在上一篇博客 新闻发布系统:需求分析以及项目的设计 我们对这个系统做了一个整体的分析。本篇的博客主要写ssm环境搭建和数据库的编码。SSM环境搭建各种包的功能 :entity包:里面的类主要的作用是实体类,与数据库中的表一一对应的。dao包:数据库操作的接口,对表的增删改查等功能。service包:主要是逻辑层的代码,业务逻辑相关。web包(...
2019-01-03 19:41:00 256
转载 新闻发布系统:需求分析以及项目的设计
项目概述新闻发布系统是新闻媒体或者自媒体推送实时新闻,让其他用户或者游客阅读的网站。主要实现功能:前台开放式的展示新闻列表,允许所有用户、游客浏览,提供游客的登录注册功能,个人中心用户可以对自己文章、评论的管理,增加文章等功能;后台实现管理员管理所有文章、评论的删除、修改、编辑功能,实现对用户的强制下线,删除用户等功能。需求分析1.用户、游客可以任意的访问新闻主页各类型的文章...
2019-01-03 16:39:00 2247
转载 springboot三:SpringBoot Web开发
上一篇:springboot二:SpringBoot和Spring配置的区别。一、SpringBoot整合ServletSpringBoot中整合Servlet有两种方式。方式一:①:首先创建一个IndexServlet类并且继承HttpServlet,并按照需要实现其方法,doGet()/doPost()。②:然后在IndexServlet类上使用@WebSer...
2018-12-19 16:28:00 126
转载 springboot二:SpringBoot和Spring配置的区别
概要在SpringBoot创建时,在resources文件夹下application.properties 文件,这个文件的作用是SpringBoot的全局配置文件。在SpringBoot中对大多数配置都按照“约定大于配置”的原则做了许多配置,但是我们在开发的过程中肯定有一些配置我们使用不上,会对配置做一些修改,所有就有全局配置这个文件。但是在全局配置中,全局配置文件的名称只能为...
2018-12-16 15:33:00 365
转载 剑指Offer第二十七题:约瑟夫环问题
题目描述n个学生(学生由0-n-1编号)围成一个圈,老师随机说出一个数字m,学生从第0号位依次开始从0报数,当报数报到m-1时,对应标号的学生出列,并且不再回去;下一个学生又开始从0报数,依次循环,求最后留下来的学生编号。算法分析与实现思路一:使用队列,最开始让 0、1、2、3..............n-1,入队列,从0号位开始报数时判断,此时报数的数等不等于m-1,如果...
2018-12-14 16:21:00 124
转载 springboot一:创建第一个springboot以及该注意的问题
前言 spring框架盛行了多年,然而像我这样待业的应届生,并从事java方向开发人员来说,都会把spring框架当做开发中不可或缺的一部分,一直的模式都是以applicationContext.xml配置文件的形式的存在,经常和mybatis,springmvc的整合。刚开始学习spring的时候对配置一知半解,经常出错,后来对spring多次学习后,虽然配置能够提高java开发...
2018-12-14 14:03:00 143
转载 高并发秒杀应用:高并发优化
概要我经过一个多星期的学习和总结,这个高并发的秒杀应用功能上已经完全实现,也能够正常运行。如下: 虽然能够运行,但是这个应用扛不住太大的gps,假设有成千上万的用户对一个商品秒杀的时候,在那么高的并发下我们的系统很有可能hold不住,故我们需要进一步优化。整体分析高并发发生在哪儿? 并发肯定发生在详情页的秒杀。在详情页的逻辑是:进入详情页-...
2018-12-12 17:17:00 232
转载 高并发秒杀应用:Web层设计(SpringMvc的使用)
设计Restful接口RESTful:是很久以前就出现的一个设计理念, 但是在的应用在Rails中才得到真正的发扬光大。在Rails中的设计规范中,对Http的各种请求和URL的表示、提交做了非常友好的规范。其本质是一个优雅的URL的表示方式,他的意义是资源的状态和资源状态的转移。RESTful示例: GET /seckill/list ...
2018-12-10 14:40:00 216
转载 高并发秒杀应用:Service层设计(Spring的IOC与AOP的使用)
在上一篇博客完成了秒杀应用的DAO层的接口设计和SQL编写工作,将代码和SQL分离,那么DAO的拼接逻辑将在Service层完成。传送门:高并发秒杀应用:DAO层设计Service层的设计 首先我们需要新建一些包,用来存放与Service层相关的东西,为了能够结构清晰。创建一个service包,存放逻辑接口和其实现;创建一个dto包,这个包的作用类似entity包,他是用来...
2018-12-07 15:28:00 258
转载 剑指Offer第二十六题:窗口思想(双指针贪心)的应用。
题目: 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 题目如上,题目要求在一个递增的数组中国找到两个数相加为S的数,并且如果有多个值选择他们乘积最小的一个输出。如果用传统的两个循环语句那么导致时间复杂度大,并且没有意义。在这个题,采用双指针的方法解决,一个指针指向数组的第一个数,...
2018-12-06 16:11:00 108
转载 高并发秒杀应用:DAO层设计
整个应用效果 项目开始新建一个Maven项目,前提是你的机器里已经下载了这个东西。新建可以参考这篇博客:入门JAVAEE:环境配置。修改Pom.xml配置和依赖 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLS...
2018-12-05 22:54:00 146
转载 项目开始
概要什么是高并发秒杀项目。其实这个很常见,生活中的红包,1元抢购什么的都属于秒杀这一类的项目,然而这个项目的难点就是高并发,怎么处理事务和行级锁等等。项目截图 将要...
2018-12-05 16:17:00 73
转载 eclipse怎么样快速的给当前类或者接口创建junit单元测试类
https://blog.csdn.net/y41992910/article/details/83387160转载于:https://www.cnblogs.com/yangdagaoge/p/10066952.html
2018-12-04 21:18:00 128
转载 Spring七:SpringAOP API 下
Proxying使用内部bean来隐藏目标和代理之间的区别将注入到配置中的bean放到property中,来隐藏代理和目标之间的关系,具体修改运行结果如下:Proxying Class如果没有某个接口,比如person接口,这种情况下spring会使用CGLib代理,而不是动态代理CGLib代理的工作原理是在运行时生成目标类的子类,spr...
2018-12-04 09:08:00 90
转载 Spring六:Spring AOP API 上
PointCutPointCut是依靠NameMatchMethodPointCut实现,根据方法名字进行匹配;成员变量有:mappedNames,匹配方法名的集合。Before Advice是一个简单的通知类型只有在进入方法之前被调用,不需要MethodInvocation对象前置通知可以在连接点执行前插入自定义行为,但不能改变...
2018-12-03 19:40:00 77
转载 剑指Offer第二十四题:数组中的逆序对(归并排序的应用)
题目在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007输入描述:题目保证输入的数组中没有的相同的数字数据范围:对于%50的数据,size<=10^4对于%75的数据,size<=10^5...
2018-12-03 13:53:00 99
转载 归并排序(Java)
基本思想归并排序的思路就是分而治之,将一个待排数组分成若干个小数组,再将这些小数组排序,再合并排好序的数组,如下图: (a) 把长度为4的数组分解成两个长度为2的子数组;(b) 把长度为2的数组分解成两个成都为1的子数组; (c) 把长度为1的子数组 合并、排序; (d) 把长度为2的子数组合并、排序;接下来我们...
2018-12-03 13:40:00 47
转载 Spring 五:AOP
概要AOP:Aspect oriented Programming 的缩写,意为:面向切面编程,通过预编译和运行期动态代理实现程序功能的统一维护的技术。主要包含有 Schema-based Aop,Spring Aop Api,AspectJ等。主要功能:日志记录,性能统计,安全控制,事务处理,异常处理实现方式:AspectJ(预编译实现),SpringAop,JbossAO...
2018-11-10 15:04:00 80
转载 Spring 四:配置JDBC的注解使用方式。
建立jdbc-config.propertiesjdbc.driverClass=com.mysql.jdbc.Driverjdbc.url:jdbc=mysql://localhost:3306/testjdbc.username=rootjdbc.password=root配置jdbcDriver-config.xml<?xml versio...
2018-11-07 17:45:00 550
转载 Spring 三:Spring Bean装配之注解形式
Bean管理的注解实现ClassPath扫描与组件管理类的自动检测与注册Bean<context:annotation-config/>@Component(通用注解)、@Repository(Dao层/持久层的注解)、@Service(服务层的注解)、@Controller(MVC控制层的注解)@Required@Autowired(和昨天的自动...
2018-11-07 16:40:00 96
转载 Spring 二:Spring Bean装配之XMl配置
概要Bean中的装配,重点是:Bean配置项、Bean作用域、Bean生命周期、Bean的自动装配、Resources&ResourceLoader。常用的配置项是:Id(IOC容器中的唯一标识)、Class(具体要实例化的类)、Scope(作用范围)、Constructor arguments(构造器参数)、Properties(属性)、Autowiring...
2018-11-06 17:25:00 71
转载 Spring 一:Spring IOC容器
概要 Spring诞生于解决企业应用开发的复杂性,通过不断的发展,运用越来越广,目前主要的功能有IOC(控制反转)、Bean、AOP(面向切面编程)、springFramework框架等。 spring的特点:①轻量级:在大小和开销两方面而言spring都是轻量的;②开发应用简单、方便、快捷;③为复杂的JavaEE开发带来了新的春天。 spring作用:是一个容器,提供...
2018-11-06 14:13:00 81
转载 JVM总结五:HotSpot几种垃圾收集器的奥秘
概要HotSpot虚拟机提供了很多垃圾收集器,每个垃圾收集器都有自己的特点,在JVM的垃圾收集器来说,没有最好的垃圾收集器,只有最适合的垃圾收集器,在不同的情况使用不同的垃圾收集器,效率不一样。在新生代:Serial垃圾收集器,ParNew垃圾收集器,Parallel Scavenge垃圾收集器在老年代:Serial old垃圾收集器,Parallel old垃圾收集器,CM...
2018-11-05 09:20:00 114
转载 JVM总结四:内存分配策略
概要分析 java的自动内存管理包括:对象内存的回收和对象内存的分配。 在java虚拟机中的五块内存空间中.程序计数器,java虚拟机栈,本地方法栈的内存分配和回收都是具有确定性的,一般在编译时就能确定需要分配的内存大小,并且这三个空间都是线程私有的,他们在线程创建的时创建,线程销毁时而回收。在java虚拟机的方法区中:主要是用来存储类的信息、变量、静态变量,这些数据的变动较...
2018-10-31 11:59:00 133
转载 JVM总结三:垃圾回收策略
确定回收区域在JVM的内存模型分为:程序计数器,JAVA虚拟机栈,本地方法栈,堆,方法区。程序计数器,java虚拟机栈和本地方法栈都是每个线程专有的三个区域,但是这三个区域是确定的,会随着线程的创建而创建,会随着线程的消亡而消亡。java虚拟机栈和本地方法栈,他们会随着方法的开始而入栈,方法的结束而出栈,并且每个栈帧的本地变量都是在类被加载时就被确定的。所以对于垃圾收集器会明确的...
2018-10-30 17:44:00 95
转载 JVM总结二:HotSpot对象创建的过程
对象创建的过程当虚拟机遇到一个包含new的指令时,会进行一系列对象创建的操作。检查常量池中是否包含有即将创建的这个对象所属类的符号引用。若常量池中没有这个符号引用,那么表示这个类还没有被创建,抛出ClassNotFoundExecption异常。若常量池中有这个符号引用,继续执行。再检查这个符号引用所属的类是否已经被JVM加载。若该类没有被加载,就找到该类...
2018-10-30 11:11:00 122
转载 linux基础知识:shell编程
shell的建立和执行shell文档的建立直接使用vim就可以了,不过运行有多种方式。假设我们建的shell程序叫 test。bash <testbash test 参数....chmod a+x test; PATH=$PATH:.; test。 alias为字段增加别名,unalias取消别名。alias ll='ls -l';shell特殊字...
2018-10-15 14:41:00 72
转载 linux基础知识:常用命令
概要linux版本 linux有两种版本:发行版本和核心版本。核心版本主要是linux内核,官方版是由linus维护。 linux核心版本表示:major.minor.patchlevel。例如 2.2.11表示核心版本2.2的第11次修改。我们约定,minor为奇数时表示,该版本刚加入新的内容,不稳定,相当于测试版本;minor为偶数时:表示是稳定版本。linux分区类...
2018-10-13 11:45:00 70
转载 C语言指针总结
概念 指针是什么?指针就是地址,众所周知,内存中的每个存储单元都有自己的地址,根据存储地址可以准确的找到该内存单元,所有通常把这个内存地址称为指针。所有指针就是实际地址。在c语言中,使用一个变量来存储指针,那么这个就是指针变量。 一个指针的值就是某个内存单元的地址(或者指针)。指针是指地址是一个常量;指针变量时指取值为地址的变量。指针的定义方式和初始化 ...
2018-10-12 21:35:00 104
转载 C语言基础知识部分总结一
一:字符数据的非格式化输入getchar():读取用户的按键信息,他的返回值是用户按键的ASCII码;工作原理:调用getchar时,程序等待从缓冲区中取出第一个字符(用户输入的字符存放在键盘缓冲区,直到用户按回车键为止);如果用户输入的不止一个字符,那么其他的字符将留在键盘缓冲区,等待后续的getchar调用来读取。也就是说后续的getchar不会等待用户输入,自动在键盘缓冲区...
2018-10-12 13:50:00 86
转载 JAVA并发 线程安全与优化
线程安全如果一个对象构造完成后,调用者无需要其他任何操作,就可以在多线程环境下随意使用,不会发生错误,那么这个对象就是线程安全的。线程安全的类型前提:如果对象不会操作共享变量,那么线程一定是安全的,所有在线程安全类型的前提就是,对象内部一定存在对共享内存的操作。绝对线程安全:定义就是绝对线程安全,绝对线程安全是一种理想状态,然而达到这个状态会付出巨大的代价,所以通常并...
2018-09-24 10:32:00 66
转载 JAVA并发 线程池
线程池的优势减少资源的开销:减少了每次创建线程和销毁线程的开销。提高响应速度:每次请求到来时,由于线程已经创建完成,可以直接执行任务,提高了响应速度。提高线程的可管理性:线程是一种稀缺资源,如果不进行管理,会造成很大的资源浪费,而且还会影响系统的稳定性。线程池对线程的创建、停止、数量等因素控制,保证线程正常运行的同时,还方便性能的调优。线程池的实现原理线程池由...
2018-09-23 10:58:00 62
转载 JAVA并发 Executors框架
Executors框架介绍Executors框架其内部采用了线程池机制,他在java.util.cocurrent包下,通过该框架来控制线程的启动、执行、关闭,可以简化并发编程的操作。因此,通过Executors来启动线程比使用Thread的start方法更好,而且更容易管理,效率更好,还有关键的一点:有助于避免this溢出。Executors框架包括:线程池、Executor,...
2018-09-22 12:28:00 113
转载 JAVA并发 闭锁、同步屏障、信号量总结
闭锁 CountDownLatch多个线程,其中一个线程要求要前几个线程准备完所需的资源后才运行。代码实现 1 CountDownLatch latch=new CountDownLatch(2);//若有多条线程只能够等待指定线程完成后才能继续下一个指定线程 2 Thread t1=new Thread(new Runnable() { 3 ...
2018-09-21 11:04:00 95
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人