
java
文章平均质量分 50
Jorocco
爬行者!
展开
-
Java高并发系统设计及其优化策略——秒杀系统(二)
1、项目介绍 该项目是基于SSM框架的一个秒杀系统,采用了CDN技术用于加载静态资源,redis缓存技术承载高并发获取商品信息,针对mysql数据库事务性访问采用了存储过程技术以支撑每秒数万的访问量。 2、技术要点 1、建表的时候采用联合主键,将seckil_id和user_phone作为联合主键可避免重复秒杀。 2、MD5加密秒杀接口,可以防止用户推测出秒杀地址 3、增加一个dto层用...原创 2018-09-06 22:42:22 · 893 阅读 · 0 评论 -
JavaWeb框架————Spring整合三大框架(四)
1、三大框架整合原理 2、整合详解 2.1 导包 2.2 单独配置Spring容器(配置过程中切记配一步测一步即服务器重启测试是否报错) applicationContext.xml(src目录下) web.xml(WEB-INF目录下) 2.3单独配置Struts2 struts.xml(src目录下) 2.4 Spring和Struts2整合 ...原创 2018-04-23 20:38:30 · 843 阅读 · 0 评论 -
JavaWeb框架————Spring(三)
1、Spring整合JDBC1.1 方式一(没有整合到Spring容器中的,即传统的) Demo.javapackage cn.ctgu.jdbctemplate;import java.beans.PropertyVetoException;import org.junit.Test;import org.springframework.jdbc.core.JdbcTem...原创 2018-04-23 16:41:52 · 322 阅读 · 0 评论 -
JavaWeb框架————Spring(二)
1、使用注解配置Spring 代码示例Car.javapackage cn.ctgu.bean;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Component;@Component("car")public c...原创 2018-04-23 11:00:44 · 274 阅读 · 0 评论 -
JavaWeb框架————Struts2(二)
1、结果跳转方式 配置文件struts.xml(src下的)<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apac...原创 2018-04-18 21:27:57 · 294 阅读 · 0 评论 -
JavaWeb框架————Spring(一)
1、什么是Spring Spring是一个开源框架,为了解决企业应用开发的复杂性而创建的,主要优势之一就是其分层架构,它的核心是控制反转(IOC)和面向切面(AOP),简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式)轻量级开源框架。 2、Spring的优点1、方便解耦,简化开发 Spring就是一个大工厂,可以将所有对象创建和依赖关系维护交给Sp...原创 2018-04-22 21:25:02 · 382 阅读 · 0 评论 -
JavaWeb框架————Struts2(四)
1、什么是拦截器在AOP中用于在某个方法或字段被访问之前,进行拦截然后加入某些操作,用于动态拦截Action调用的对象,提供了一种机制可以使开发者自定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行,同时也提供了一种可以提取action中可重用的部分的方式。2、拦截器的实现原理拦截器方法都是通过代理的方式来调用的,当请求到达Struts2的Servle...原创 2018-04-22 20:11:55 · 238 阅读 · 0 评论 -
JavaWeb框架————Struts2(一)
1、什么是Struts2 Strut是一种基于MVC模式的轻量级的web框架,本质上相当于一个Servlet,Struts2作为控制器来建立模型与视图的数据交互。具有以下优势: 提供Exception处理机制;Result方式的页面导航,通过Result标签很方便的实现重定向和页面跳转;通过简单、集中的配置来调度业务类,使得配置和修改都非常容易;提供简单、统一的表达式语言来访问所有可供...原创 2018-04-17 21:38:17 · 3628 阅读 · 1 评论 -
JavaWeb——Redis(非关系型数据库)
1、NoSQL关于关系型数据库和nosql数据库 关系型数据库是基于关系表的数据库,最终会将数据持久化到磁盘上,而nosql数据库是基于特殊的结构,并将数据存储到内存的数据库。从性能上而言,nosql数据库 要优于关系型数据库,从安全性上而言关系型数据库要优于nosql数据库,所以在实际开发中一个项目中nosql和关系型数据库会一起使用,达到性能和安全性的双保证。为什么要使用非关系型数...原创 2018-04-11 15:20:24 · 664 阅读 · 0 评论 -
JavaWeb基础——Ajax
1、Ajax概述1.1.什么是同步,什么是异步 同步现象:客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待 卡死状态 异步现象:客户端发送请求到服务器端,无论服务器是否返回响应,客户端都可以随 意做其他事情,不会被卡死。所用异步访问都是ajax引擎。1.2.Ajax的运行原理 页面发起请求,会将请求发送给浏览器内核中的Ajax引擎,Ajax引擎会提交请求到 ...原创 2018-04-03 20:47:49 · 529 阅读 · 0 评论 -
JavaWeb基础——Json
1、Json是什么 json是一种与语言无关的数据交换的格式,作用:使用ajax进行前后台数据交换;移动端与服务端的数据交换 注意:json的key是字符串 json的value是Object json的解析:json是js的原生内容,也就意味着js可以直接取出json对象中的数据2、Json的格式<!DOCTYPE HTML PUBLIC "-//W...原创 2018-04-03 20:31:10 · 318 阅读 · 0 评论 -
JavaWeb基础——Bootstrap
1、什么是BootStrapBootStrap是基于HTML、CSS、Javascript的前端框架,其预定义一套CSS样式与样式对应的JQuery代码,我们只需要提供固定HTML结构,添加固定的class样式就可以完成指定效果的实现。它是在JQuery的基础上工作的,可以理解BootStrap就是JQuery的一个插件,它使得Web开发更加快捷,代码优雅、美观大方。同时,BootStrap是...原创 2018-04-03 20:23:21 · 594 阅读 · 0 评论 -
JavaWeb框架——Hibernate(一)
1、JavaEE开发三层结构 2、什么是Hibernate Hibernate是持久化层框架之一,是一个开放源代码的ORM(Object Relational Mapping,对象关系映射)框架,它对JDBC进行了轻量级的对象封装,将POJO((JavaBean)与数据表建立映射关系,是一个全自动的ORM框架,hibernate可以自动生成SQL语句,自动执行,使得Java开发人员...原创 2018-04-14 10:55:23 · 419 阅读 · 0 评论 -
JavaWeb框架————Struts2(三)
1、OGNL表达式 代码示例 User.javapackage cn.ctgu.bean;public class User { private String name; private Integer age; public String getName() { return name; } public voi...原创 2018-04-20 21:31:24 · 271 阅读 · 0 评论 -
JavaWeb框架————Springmvc(一)
1、什么是Springmvc Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一部分。2、Springmvc架构和组件 架构流程 1、用户发送请求至前端控制器DispatcherServlet 2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、处理器映射器根据请求url找到具体的处理器,生成处理...原创 2018-05-09 18:41:51 · 772 阅读 · 0 评论 -
Java高并发系统设计及其优化策略——秒杀系统(一)
1、秒杀系统分析1.1秒杀系统业务分析1、秒杀系统的核心是对库存的处理,业务流程图如下所示 2、用户针对库存业务分析 1、减库存 2、记录购买明细(记录秒杀成功信息) 1)记录谁购买成功了 2)成功的时间/有效期 1.2 秒杀系统技术分析1、为什么需要事务? 一旦用户秒杀成功系统需要做两步操作...原创 2018-09-06 22:36:42 · 4888 阅读 · 0 评论 -
经典排序算法Java版实现
1、堆排序堆排序的基本思想是:将待排序序列构造成一个大顶堆,此时,整个序列的最大值就是堆顶的根节点。将其与末尾元素进行交换,此时末尾就为最大值。然后将剩余n-1个元素重新构造成一个堆,这样会得到n个元素的次小值。如此反复执行,便能得到一个有序序列了。package cn.ctgu.offer.sort;import java.util.Arrays;public class Hea...原创 2018-08-31 15:08:35 · 356 阅读 · 0 评论 -
剑指Offer算法题及答案Java完整版(四)
43、输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。TreeNode.javapackage cn.ctgu.offer.BinaryTreeAndList;public class TreeNode { int val = 0; TreeNode left = null; TreeNode r...原创 2018-08-22 14:53:50 · 377 阅读 · 0 评论 -
剑指Offer算法题及答案Java完整版(三)
31、给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…A[i-1]*A[i+1]…*A[n-1]。不能使用除法。package cn.ctgu.offer;/* * 题目: * 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1] * 其中B中的元素B[i]=A[0]*A[1]*...原创 2018-08-22 11:39:25 · 439 阅读 · 0 评论 -
剑指Offer算法题及答案Java完整版(二)
16、请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径,路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。例如 a b c e s f c s a d e e 这样的3 X 4 矩阵中包含一条字符串”bcced”的路径,但是矩阵中不包含”abcb”路径,因为字符串的第...原创 2018-08-22 11:09:56 · 1168 阅读 · 0 评论 -
剑指Offer算法题及答案Java完整版(一)
1、输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。package cn.ctgu.offer;/* * 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分 * 所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数...原创 2018-08-22 10:39:23 · 2711 阅读 · 0 评论 -
JavaWeb项目管理工具————Maven的使用
1、什么是Maven Maven是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的。 1.2 Maven好处普通的传统项目 Maven项目 分析:maven项目为什么这么小?没有jar。 需要jar吗?肯定需要。没有存在于maven项目里面,jar存在于哪? 1.3 依赖管理 1.4 项目一键构建 编码 编译 测试(junit) 运...原创 2018-05-24 11:34:03 · 5982 阅读 · 0 评论 -
JavaWeb索引框架————Solr
1、什么是Solr Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。 Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中,Solr 索引的实现方法很简单,用 POST 方法向 Solr 服务器发送一个描述 F...原创 2018-05-13 17:36:15 · 2044 阅读 · 1 评论 -
JavaWeb框架————Mybatis(二)
1、parameterType(输入类型)——传递pojo包装对象开发中通过可以使用pojo传递查询条件。 查询条件可能是综合的查询条件,不仅包括用户查询条件还包括其它的查询条件(比如查询用户信息的时候,将用户购买商品信息也作为查询条件),这时可以使用包装对象传递输入参数。 包装对象:Pojo类中的一个属性是另外一个pojo。需求:根据用户名模糊查询用户信息,查询条件放到QueryVo...原创 2018-05-06 22:10:12 · 476 阅读 · 0 评论 -
JavaWeb索引————Lucence
1、什么是Lucence1.1 顺序扫描法 所谓顺序扫描,比如要找内容包含某一个字符串的文件,就是一个文档一个文档的看,对于每一个文档,从头看到尾,如果此文档包含此字符串,则此文档为我们要找的文件,接着看下一个文件,直到扫描完所有的文件。如利用windows的搜索也可以搜索文件内容,只是相当的慢。 1.2 全文检索 将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后...原创 2018-05-12 15:25:31 · 2055 阅读 · 0 评论 -
JavaWeb框架————Mybatis(一)
1、什么是Mybatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。 MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要...原创 2018-05-05 14:28:42 · 652 阅读 · 0 评论 -
JavaWeb——JQuery
1、什么是JQuery JQuery是一个JavaScript框架(是一个js文件),用于动态处理页面。 2、JQuery示例2.1 JS和JQuery加载的区别<!DOCTYPE html><html><head><meta charset="UTF-8"><title>js与JQuery页面加载的区别</..原创 2018-04-03 19:59:14 · 565 阅读 · 2 评论 -
JavaWeb框架——Hibernate(四)
1、多表查询 2、HQL查询 实体类 Customer.javapackage cn.ctgu.domain;import java.util.HashSet;import java.util.Set;/*CREATE TABLE customer( id BIGINT(32) NOT NULL PRIMARY KEY AUTO...原创 2018-04-15 10:36:16 · 222 阅读 · 0 评论 -
JavaWeb框架——Hibernate(三)
1、多表查询——一对多 代码示例 Customer.javapackage cn.ctgu.domain;import java.util.HashSet;import java.util.Set;/*CREATE TABLE customer( id BIGINT(32) NOT NULL PRIMARY KEY AUTO_INCREM...原创 2018-04-15 09:51:54 · 273 阅读 · 0 评论 -
Java——Eclipse断点调试
1、断点快捷键 查看方法说明:F2 改变为大写:Ctrl+shift+X 改变为小写:Ctrl+shift+Y 复制行:Ctrl+Alt+向下键 查看类的继承:Ctrl+T 查看源码:Ctrl+shift+T 列出所有的快捷键:Ctrl+shift+LF5:step into 跳入函数里面 F6:step over 跳过 F7:step return 跳出 drop t...原创 2018-03-05 17:17:15 · 1096 阅读 · 0 评论 -
JavaWeb基础——Tomcat服务器
1、什么是Tomcat服务器 服务器换句话说就是类似于网络编程中的服务端,而我们的浏览器就类似于客户端,它主要是为了用于与浏览器进行信息交互,获取浏览器的请求,并进行回应。 Tomcat服务器有两种安装方式,一种是安装的(.exe),一台电脑上只能安装一个服务器;一种是免安装的,解压直接点击bin目录下的startup.bat即可运行,可安装多个。 2、Tomcat服务器的目...转载 2018-03-09 14:25:49 · 430 阅读 · 0 评论 -
JavaWeb基础——XML
1、XML技术除用于保存有关系的数据之外,它还经常用作软件配置文件, 以描述程序模块之间的关系。 2、一个XML文件分为以下几部分内容: 文档声明 元素 属性 注释 CDATA区、特殊字符 处理指令 3、在编写XML文档时,需要先使用文档声明,声明XML文档的类型:<?x...原创 2018-03-08 19:43:45 · 243 阅读 · 0 评论 -
Java基础——IO流
1、IO流 IO流:输入、输出流(针对的是内存和外围设备(硬盘)的数据交换) 外围设备到内存:输入(读) 内存到外围设备:输出(写) 字符流的由来:其实就是字节流读取文字字节数据后,不直接操作而是先指定的编码表,获取对应的文字 再对这个文字进行操作。简单的说:字节流+编码表。字节流的两个顶层父类: 1、InputStream 2、OutputStream字符流的两个顶层父类: 1、R原创 2017-12-21 21:23:03 · 528 阅读 · 0 评论 -
Java基础——反射机制、正则表达式
1 反射机制 Person类package cn.itcast.bean;public class Person { private int age; private String name; public Person() { super(); // TODO Auto-generated constructor stub S原创 2017-12-25 14:55:10 · 276 阅读 · 0 评论 -
Java基础——网络编程
1、获取IPpackage cn.itcast.net.p1.ip;import java.net.InetAddress;import java.net.UnknownHostException;public class IPDemo { public static void main(String[] args) throws UnknownHostException {原创 2017-12-25 14:46:55 · 440 阅读 · 0 评论 -
Java基础——系统API
1、System类package cn.itcast.p1.otherapi.system;import java.util.Properties;import java.util.Set;public class SystemDemo { public static void main(String[] args) { // TODO Auto-generated meth原创 2017-12-25 14:14:47 · 372 阅读 · 0 评论 -
Java基础——集合
1、总述 集合类的由来: 对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定就使用集合容器进行存储。集合特点: 1、用于存储对象的容器 2、集合的长度是可变的 3、集合中不可以存储基本数据类型值集合容器因为内部的数据结构不同,有多种具体容器,不断向上抽取,就形成了集合框架。2、框架的顶层Collection接口(其他继承Collection集合类都具有以...原创 2017-12-13 11:30:58 · 443 阅读 · 0 评论 -
Java基础——多线程
1、线程 进程:正在进行中的程序 线程:就是进程中一个负责程序执行的控制单元(执行路径) 一个进程中可以多执行路径,称之为多线程 一个进程中至少要有一个线程 开启多个线程是为了同时运行多部分代码 每一个线程都有自己运行的内容,这个内容可以称为要执行的任务 多线程的好处:解决了多部分同时运行的问题 多线程的弊端:线程太多会导致效率的降低 其实应用程序的执行都是cpu在做着快速的切换原创 2017-11-20 10:50:22 · 231 阅读 · 0 评论 -
Java基础——String API
1、初识String类 package on.itcase.p1.string.demo;public class StringDemo { public static void main(String[] args) { /* * String 类的特点: * 字符串对象一旦被初始化就不会被改变 */原创 2017-11-20 10:37:00 · 395 阅读 · 0 评论 -
Java基础——异常
异常:是在运行时期发生的不正常情况 在Java中用类的形式对不正常情况进行了描述和封装对象 描述不正常的情况的类称为异常类,以前将正常流程代码和问题处理代码相结合 现在讲正常流程代码和问题代码分离,提高阅读性,其实异常就是Java通过面向对象的思想将问题封装成了对象 用异常类对其进行描述,不同的问题用不同的类进行具体的描述,比如角标越界、空指针等等 问题很多,意味着描述的类也很多,将其共...原创 2017-11-08 16:50:21 · 296 阅读 · 0 评论