自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

可乐薯片编程小课堂

用来记载和分享学习内容!

  • 博客(19)
  • 问答 (2)
  • 收藏
  • 关注

原创 高并发秒杀API设计

高并发秒杀API设计高并发秒杀API设计前期准备配置文件获取地址基于maven命令创建项目修改默认的servlet版本补全project目录修改pom文件秒杀业务分析dao层创建数据库数据表创建entity创建dao层接口mybatis实现daomybatis和spring的整合spring-dao的配置进行dao的测试service层使用Spring托管Servi

2018-02-12 15:28:33 481

原创 Java并发编程

Java并发编程Java并发编程相关重要知识进程和线程的内存空间线程的实现完全在用户层面用户空间实现用户层和内核层内核空间做映射用户层的多个线程映射到内核层的一个线程当中去多线程编程两个硬件指令设计锁的时候需要考虑的问题线程之间的通信线程之间的通信通过共享变量线程之间的通信waitnotify底层用的是非常的多啊线程之间的通信joinJDK中常用的锁可重入互斥锁信号量

2018-02-12 15:17:53 217

原创 Nginx学习初探

Nginx服务器高性能HTTP和反向代理服务器,也支持imap/pop3/smtp协议(邮件协议)基本原理工作模型 采用了epoll(Linux2.6以后的版本,2.4有epoll补丁)和kqueue(BSD系列)两种网络IO模型 Apache采用了select网络模型( 性能不如Nginx) Squid、Memcached都是采用了epoll网络IO模型 当面对大量连续的请求时,

2017-07-21 11:12:04 354

原创 git问题解决方法

fork来的上游仓库版本优于本地仓库 解决方法: 1.查看上游仓库:git remote -v 2.添加上游仓库地址:git remote add upstream xxx.git 3.切换到主分支:git checkout master 4.从远程下载分支到本地:git fetch upstream 5.合并分支:git merge upstream/master 6.推送到gith

2017-07-20 16:05:02 260

原创 简单的mysql性能优化

数据库设计优化1.适度的违反范式:遵循三大范式就会带来查询时经常需要join导致查询效率降低,基于性能要求,结合业务适度的做冗余2.适度的建立索引:建立索引的同时会对数据库带来IO的牺牲–>更新操作速度会降低,因为每次对数据进行修改的时候会对索引进行重构,而且占据存储空间建立索引的规则: a.索引的字段必须是经常查询的字段whereb.索引是多个字段–关联索引,将两个字段作为联合索引,第一个字段要

2017-07-20 15:46:50 206

原创 MySQL Innodb存储引擎学习笔记

MySQL属于单进程多线程架构。观察MySQL数据库启动后进程的启动情况的命令:ps -ef | grep mysqld 查看MySQL数据库实例启动时会在那些位置查找配置文件的命令:mysql –help | grep my.cnf 以读取到最后一个参数为基准数据库和数据库实例是不一样的,用户通过数据库实例操作数据库文件。数据库体系结构: Connectors(Native C/JDBC

2017-07-13 17:39:46 348

原创 总结Java类的初始化先后次序

有时候在笔试面试的时候会考到初始化的顺序,在此总结一下。单个java初始化次序: 依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器 静态变量和静态初始化块是根据出现的顺序进行初始化的,变量和初始化块也是。存在继承情况的初始化执行次序:父类–静态变量 父类–静态初始化块 子类–静态变量 子类–静态初始化块子类main方法父类–变量 父类–初始化块 父类–构造器子类–变量 子

2017-04-11 12:13:41 247

原创 Spring知识点总结

依赖注入一、依赖注入方法: 1.使用@Service/Component/Controller/Repository在类上进行注解(需要在注解类@Configuration中开启扫描@ComponentScan(“包名”)) 2.使用功能类的@Bean–>即在@Configuration内通过@Bean的方式注解 3.使用xml配置二、实现AOP的两种方式: 1.基于注解拦截,即自定义一个注

2017-04-09 22:20:27 272

原创 伪代码实现三种O(nlogn)排序算法(主要用于理解和记忆)

归并排序public class MergeSort { //驱动程序 public int[] mergeSort(参数) { //调用分治程序 sort(A, 0, n-1); return A; } //分治程序 sort(int[] data, int left, int right) { i

2017-03-26 00:06:17 1469

原创 MySQL中不能忘的知识点

MySQL中不能忘的知识点1.事务的特性 原子性:确保工作单元内所有操作都能够完成,否则事务将会终止在故障点,以前的操作将会回滚; 一致性:数据库正确改变能够成功提交; 隔离性:事务彼此之间的操作不影响且透明; 持久性:事务的结果在数据库出错的时候依旧能够存在。2.事务的隔离级别 未提交读(Read Uncommited):允许脏读,即可能读取到其他

2017-03-25 13:46:26 287

原创 MySQL分表分库&读写分离相关

MySQL架构优化1.分表当项目上线后,数据将会几何级的增长,当数据很多的时候,读取性能将会下降,更新表数据的时候也需要更新索引,所以我们需要分表,当数据量再大的时候就需要分库了。a.水平拆分:数据分成多个表b.垂直拆分:字段分成多个表c.插入/更新/删除数据和查询统计MyISAM存储引擎有一个MERGE存储引擎,可以将多个表合成一个表,就可以进行这四种操作   InnoD

2017-02-19 16:16:58 2730

原创 数据结构和算法总结

数据结构和算法总结数据+数据元之间的关系+数据上的操作(增删改查排)线性表按照存储方式分类1.顺序存储:顺序表、栈、队列。随机访问效率高,随机插入效率低。2.链式存储:链表。随机访问效率低,随机插入效率高。(只需要定位+修改指针)按照访问方式分类1.可以随机访问:一般的线性表。链表、顺序表2.受限访问:受限线性表。栈、队列 各结构细节1.链表数据结构

2017-02-07 18:34:52 331

原创 MySQL概述及性能调优

MySQL概述及性能调优一、基本架构1.服务层:处理客户端和服务端的链接、安全验证2.核心层:查询分析,优化,缓存,内置函数   内建的视图/存储过程/触发器(是开发数据库和读MySQL源码最应该关注的地方)3.储存引擎层:负责数据的存取,通过存储引擎的API和存储引擎通信,遮蔽了存储引擎之间的差异 图解:   二、选择版本MariaDB数据库-->

2017-02-07 18:32:31 423

原创 总结Web有关路径的几种写法

总结有关路径的几种写法:目标地址:WEBROOT下的target.html1.转发 request.getDispatcher(“路径/”).forward(request,tesponse)[和Context的一样,只是比较简便]  2.重定向response.sendRedirect(“路径/”) 3.html的超链接hrefresponse.get

2017-01-19 18:09:06 516

原创 Ajax技术

Ajax技术Ajax包含:1.异步数据获取技术:使用XMLHttpRequest2.基于标准的表示技术:使用XHTML和CSS3.动态显示和交互技术:使用Document Object Model(文档对象模型)4.数据互换和交互技术:使用XML和XSLT5.JavaScript融合以上技术 Ajax包含的问题:1.安全问题2.性能问题a.使用局部变量而

2017-01-18 14:48:25 297

原创 Java反射笔记

反射:1.动态语言,具备反射机制a.运行时,判断任意一个类的对象的所属类b.构造任意一个类的对象实例c.判断任意一个类的成员变量和方法d.调用任意一个对象的成员变量和方法e.生成动态代理 Java中核心的API:java.lang.Class/.reflect.Method/Filed/Constructor(代表类的构造方法) Class获取方式:

2017-01-17 22:19:21 244

原创 关于数组的面试题

数组子数组的最大和:子数组要求是必须连续的(可以用动态规划)通过逐渐推进,时间复杂度为O(N),用两个变量储存。 两个无重合部分的子数组的累加和:(时间是O(N),空间是O(N))通过两个辅助数组L和R,储存正序和逆序的最大子数组的和,然后通过一次扫描在i位置的左边和右边的最大子数组的和的和,求出其最大值。稍稍优化一下就是可以取消L数组,因为在最后遍历的时候本来就是从左

2017-01-16 15:42:06 344

原创 总结简单Java网络编程

Servlet: Servlet类必须继承httpServlet。 用html协议访问Servlet:1.在Servlet里面设置好response.setContentType(CONTENT_TYPE);CONTENT_TYPE = text/html;charset = utf-8”;2.在WEB-INF里面设置好xml的Servlet-name以及Servlet

2017-01-16 15:40:54 365

原创 面向对象B/S有关JavaSE总结

一、基础对象的特点:抽象、继承、封装、多态面向对象最大的好处是可复用UML统一建模语言 JAVA设计之初的目的:1.解决C++中的比较复杂的问题(如:内存回收)2.解决客户机上运行程序的安全问题3.一次编译,随处运行 数据类型的优先级:byte,short,char-->int(32位)-->long(64位)-->float(32位)-->double

2017-01-16 15:39:37 285

空空如也

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

TA关注的人

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