步步扎进Java
文章平均质量分 68
MC赵小叔
很高兴结交更多高手
展开
-
String类详解01
Java。lang.String :字符串类型* Strings are constant; their values cannot be changed after they * are created.String是个常量,不可变。String类被final修饰,官方注释说明创建后不能被改变,但是为什么String要使用final修饰呢? public class StringTest {...原创 2018-05-27 15:50:41 · 356 阅读 · 15 评论 -
Maven-核心概念2
续接上篇未完内容!POM: 含义 project Object Model 项目对象模型 ,我们会联想到DOM(Document Object Model)意义:pom.xml是Maven工程的核心配置文件,与构建过程相关的一切设置都是在这文件中进行配置。意味着没有pom的话,Maven毫无意义-pom是Maven的核心所在。坐标: ①数学中坐标:原创 2018-01-28 10:16:54 · 392 阅读 · 22 评论 -
Maven-核心概念
开端 终止一切重复的工作!任何一款产品的出现若是增加了用户的负担、降低了用户效率,则此产品需要重新定位。我们考虑这样的问题:一个庞大的项目, 数百人开发,怎样划分才能更好的利于协作,此时需要借助某种工具将这个庞大项目进行拆解,并且拆分的越小越好,最好是每一个模块对应着一个工程。但是接着出现的问题就是这么多项目工程会出现大量重复的jar包,不仅浪费存储空间,而且让项目变得比较臃肿,把这些公共需要原创 2018-01-28 08:18:03 · 418 阅读 · 18 评论 -
JDK8堆内存划分变化
JVM中内存:堆内存、栈内存。栈内存主要用执行线程方法存放本地临时变量与线程中方法执行时候需要的引用对象地址。JVM所有的对象信息都存放在堆内存中,相比栈内存,堆内存可以所大的多,所以JVM一直通过对堆内存划分不同的功能区块实现对堆内存中对象管理。堆内存不够最常见的错误就是OOM(OutOfMemoryError),栈内存溢出最常见的错误就是StackOverflowError,程序有递归调用时候原创 2017-12-17 21:35:47 · 1743 阅读 · 21 评论 -
IO 与 NIO :其本质就是阻塞和非阻塞的区别
阻塞概念:应用程序在获取网络数据的时候,如果网络传输数据很慢,那么程序就一直等着,知道传输完毕为止。非阻塞概念:应用程序直接可以获取到已经转备好的数据,无需等待。IO为同步阻塞形式,NIO为同步非阻塞形式、NIO并没有实现异步,在JDK1.7之后,升级了NIO库包,支持异步阻塞通信模型即NIO2.0(AIO)同步与异步:同步与异步一般是面向操作系统和应用程序对IO操作的层面上来区别原创 2017-12-30 20:13:51 · 4485 阅读 · 16 评论 -
Hash底层源码分析
Hsah:散列将一个任意长度通过某种(函数函数算法)转换成一个固定值,通过hash出来的值,通过只定位到map,key-value 基本原理。/** * Hashtable是基于Map接口的实现。这个版本的实现提供了所有map操作的实现并且允许null值和null键 * 除了允许空值(null)和不支持同步,HashMap和hashtable没有什么区别 *原创 2017-12-24 16:36:42 · 614 阅读 · 23 评论 -
MySQL单行函数
概念:类似于Java的方法,将一组逻辑语句封装在方法体中,对外暴露方法名好处;隐藏了实现细节,提高代码的重用性调用:select 函数名 from 表特点: ①叫什么 ②干什么 分类: 单行函数(concat\length\ifnull):字符函数 数字函数 日期函数 其他函数 流程配置函数 if else 一、字符函数: sh原创 2017-11-26 16:39:42 · 2631 阅读 · 22 评论 -
项目实践学习-list!=null和list.size()>0 list.isEmpty的区别
项目中由于需要对list集合进行判空处理这就涉及到NULL和isEmpty的使用。因此在这里查了一些资料整理了一下,帮助理解。 首先先了解一下list==null,它其实是根本没有在堆内是不存在的,没有存储的地址。但是list.size()=0是已经存在地址,但是并没有存相应的元素,当元素的数量增加是,size随之变化。 null说明了没有进行初始化,此时原创 2017-12-03 19:31:35 · 14375 阅读 · 22 评论 -
MySql数据引擎-MyISAM与InnoDB区别
Innodb存储引擎由于实现了行级锁定,虽然在随订机制的实现方面所带来的性能损耗可能比表级锁会更高一些,但是在整体并发处理能力方面要远优于MyISAM的表级锁定的,当系统并发量较高时,Innod整体性能和MyISAM相比就会有比较明显的优势了。 但是,InnoDB的行级锁同样也有脆弱的一面,当我们使用不当的时候,可能会让InnoDB 的整体性能表现不能比MyISAM高,甚至可能会更差。原创 2017-11-19 16:44:19 · 335 阅读 · 20 评论 -
Maven-核心概念3
续接上篇未完内容!生命周期 1)各个构建环节执行的顺序,不能打乱,必须按照既定的正确顺序来执行。2)Maven的核心程序中定义了抽象的生命周期,其中各个阶段的具体任务书有插件来完成。3)Maven核心为了实现自动化构建,按照这一特点执行生命周期中的各个阶段:不论现在要执行生命周期中那一个阶段,都会从生命周期的最初的位置开始执行。原创 2018-02-04 11:58:15 · 198 阅读 · 16 评论 -
通用Mapper注解使用
常用注解1.1@Table 注解 注解作用:建立实体类和数据库表之间的对应关系。默认规则:实体类类名首字母小写作为表名。Employee 类→employee 表。用法:在@Table 注解的 name 属性中指定目标数据库表的表名1.2@Column 注解 注解作用:建立实体类字段和数据库表字段之间的对应关系。默认规则:实体类字段:驼峰式命名数据库表字段:使用“_”区分各个单词用法:在@Colu...原创 2018-05-20 19:48:15 · 8267 阅读 · 13 评论 -
Java后端实现短信验证码
整体流程:客户填入手机号,通过客户端点击获取验证码按钮,验证手机号是否有效,有效则客户端发送请求到后台服务器,客户端开始倒计时60s,不通过则返回;服务器,验证手机号是否被注册或有效,通过则调用第三方的短信通信接口并发送相关数据(包括手机号和验证码),然后回调结果,成功则将验证码存入session,失败则返回提示,不通过则返回。客户收到验证码后在有效时间内,填入并发送请求。服务器端,收到请求后,用...原创 2018-04-22 12:05:41 · 4693 阅读 · 19 评论 -
JSp中四个作用域的区别
首先了解何为作用域?简单一句是信息共享的范围,也就是信息在多大的范围内是有效的。application:服务器启动到停止这段时间。session:HTTP会话开始到结束这段时间。request:HTTP请求开始到结束这段时间。page:当前页面从打开到关闭这段时间。request 请求对象 类型javax.servlet.ServletRequest ...原创 2018-04-08 09:30:46 · 1045 阅读 · 9 评论 -
深度剖析Http1.1协议
1)请求(客户端->服务端[request]) GET(请求的方式) /books/java.html(请求的目标资源) HTTP/1.1(请求采用的协议和版本号) Accept: */*(客户端能接收的资源类型) Accept-Language: en-us(客户端接收的语言类型) Connection: Keep-Alive(维护客户端和服务端的连接关系) ...原创 2018-03-25 14:25:21 · 868 阅读 · 19 评论 -
Git权威指南-学习
1.Github有一个主库,每个人自己也有一个库,称为分支。 2.Github的协作流程:先从主库fork出自己的分支,然后进行代码的修改等操作,操作完之后从本地库上推到自己的服务器分支,然后 服务器分支Pull Request到主库。 3.本地仓库由git维护的三棵“tree"组成:第1个是工作目录,它持有实际文件(即可以直接打开修改的文件);第2个是缓存区(index),它像个缓存区域,临时保...原创 2018-03-04 16:38:55 · 410 阅读 · 11 评论 -
分分钟搞清final关键字
关键字final对我们来说并不陌生,我们都知道String类就是个final类,通过表面英文意思可以料及最终的、最后的。意思是绝版没有再延续的意思,已经定了不能再修改了。但是很多拼写相同容易混淆的单词,诸如try{}catch{}finally{};一、final基本使用 final关键字在Java中经常被可以用来修饰类、方法和变量(其中变量包括成员变量和局部变量)。1、修饰类 ...原创 2018-03-11 17:21:21 · 429 阅读 · 15 评论 -
安装版本对应的spring IDE插件
eclipse 中spring项目的创建xml配置时没有出现如下的向导:记得之前看刚哥Spring4教学视频那个视频里的eclipse 版本是4.3的kepler,他安装的Spring IDE插件springsource-tool-suite-3.4.0.RELEASE-e4.3.1-updatesite.zip1.查看你的eclipse版本help-->About Eclipse E...原创 2018-02-24 16:26:56 · 1980 阅读 · 28 评论 -
Maven常用命令
前言:对于Maven在之前的几篇博客中做了相关的介绍,接下来看看maven的 常用命令。常用命令:1.clean:清理 mvn clean 将项目根目录下target目录清理掉2、compile:编译 mvn compile将项目中的.java 文件编译为.class文件3、test:单元测试 mvn test将项目根目录下src/test/java目录下的单元测试 类都会执行。4、...原创 2018-02-12 16:01:39 · 219 阅读 · 24 评论 -
Mybatis出现Mapped Statements collection already contains value for
Mybatis出现Mapped Statements collection already contains value for 错误原因:1.mapper中存在id重复的值2.mapper中的parameterType或resultType为空。例如:原创 2017-11-12 21:36:45 · 2278 阅读 · 15 评论 -
SpringMVC处理模型数据
MVC设计模式:发送请求到目标处理器,目标处理器去调业务方法,方法可能返回值(对象或集合),再转发到页面,需要把方法返回的对象或结合现实到页面,就有个问题(如何把模型数据放到一个域对象里,域对象通常指的是请求域) 四种方法解决此问题: 一、 ModelAndView: 处理方法返回值类型为ModelAndView时,方法体既可通过该对象添加模型数据目标方法的返回值可以是Mod原创 2017-10-15 19:07:25 · 354 阅读 · 22 评论 -
【DRP】JavaWeb-Filter(过滤器)
简介: 基本功能是对Servlet容器调用Servlet的过程进行拦截,实现在Servlet进行响应处理的前后进行一些特殊处理。在ServletAPI中有三种接口类来供我们编写Filter程序(Filter、FilterChain、FilterConfig’),但是需要在web.xml文件中进行设置拦截的资源-JSP、Servlet、静态图片文件和静态html文件。 1)简单概括: ①. JavaWEB 的一个重要组件, 可以对发送到 Servlet 的请求进行拦截, 并对响应也进行拦原创 2017-04-09 21:42:25 · 492 阅读 · 22 评论 -
【SSH网上商城】框架
SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层(实体层)。 SSH框架是目前J2EE领域里最热门而且用得较为成熟的一套开源框架,它是基于MVC设计模式之上,在充分发挥MVC设计模式优点的同时,也创造出了自己的开发特点,降低了应用程序的耦合性,更进一步提高了应用程序的复用性、移植性、灵活性、扩展性和应用性能。分为表现层、中间层和数据访问层。三层体系将数据表现原创 2017-03-12 21:05:32 · 3238 阅读 · 34 评论 -
【DRP】ResultSet使用 getxxx() 方法检索查询结果
当我们使用SQL语句查询出来数据后进行检索获取。将列编号作为参数提供给这些方法。该示例程序使用 getInt() 方法分别从第一列和第二列检索商品 ID 和经销商,并使用 getString() 方法从第三列检索产品名称。在该方法从ResultSet对象中获取不同类型的数据。可以在使用时多看看到底有多少这样的方法。 getxxx(xxx columnIndex) 或者getxxx(xxx原创 2017-04-07 16:55:51 · 3931 阅读 · 21 评论 -
EL表达式 与ONGL表达式
在SSH商城学习中我们在使用struts2,大大简化了我们对视图页面的编写,struts的标签、页面导航、模板都提供了极佳的扩展性,实现了更好的代码复用。当页面显示复杂时还可以在页面中自定义组件,满足多变的需求。这里着重介绍标签库taglib,它不依赖于任何表现层技术,可以再各种页面显示当然包括jsp 准备:(1)在要使用标签的jsp页面引入标签库: (2)在web.x原创 2017-03-19 11:45:08 · 1997 阅读 · 25 评论 -
SSH-Hibernate:hql与criteria
hql:(Hibernate Query Languge,Hibernate 查询语言)查询是一种面向对象的查询语言,其中没有表和字段的概念,只有类、对象和属性的概念,HQL 是应用较为广泛的方式. 语法:[select/update/delete……] from Entity [where……] [group by……] [having……] [order by……]public原创 2017-03-05 21:34:30 · 1453 阅读 · 19 评论 -
步步扎进Java-面向对象
面向对象的三条主线: 1.类及类的成分 2.面向对象的三大特性 3.其他的关键字:this super import package abstract static final interface等 1.java程序是关注于类的设计。类从代码的角度:并列关系! 从执行、设计的角度:关联关系、继承关系、聚合关系 class A{原创 2017-01-15 20:57:28 · 605 阅读 · 13 评论 -
步步扎进Java-多线程
有必要在最前讲讲程序、进程、线程之间的关系。计算机角度出发考虑的话,一个进程是一个程序,多个进程(例如浏览器的多个进程)对计算机来说就是多个不同的程序,而不会把他们当做一个完整的“程序”。进程之间是互不影响且独立,具有父子关系,没有主从关系。线程之间公用进程中的资源(包括程序、数据、堆栈 )一个程序(program)就是一个正在执行的进程,而每个进程,可以是单线程的,也可以是多线程的。一个应用程序原创 2017-01-21 21:04:50 · 520 阅读 · 16 评论 -
Java十三-JSP
1.whyJSP是简Servlet编写的一种技术,他将Java代码和HTML语句混合在同一个文件中编写。支队网页中的要动态产生的内容采用Java代码来编写而对固定不变的静态部分采用普通静态HTML,页面的方式编写2.helloworld新建一个JSP,在body节点内的即可编写Java代码。 Date date = new Date();原创 2017-01-14 21:52:51 · 667 阅读 · 19 评论 -
Java学习-概念及配置
Java语言是简单的:Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用。另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,而是引用。并提供了自动的废料收集,使得程序员不必为内存管理而担忧。原创 2016-08-21 22:13:57 · 541 阅读 · 31 评论 -
【SSH商城】Http中的转发和重定位
一、转发:一站式服务(服务端) Servlet中:request.getRequestDispatcher("cart.jsp").forward(request,reponse); Jsp: 当使用转发时,JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程。 过程: 当你发送一个请求到服务器端,服务器端原创 2017-03-25 11:49:53 · 781 阅读 · 39 评论 -
【DRP】一阶段
小编最近在学习DRP分销系统,通过一段时间的学习,整理一下学习的内容,对内容进行拿捏概括。最开始温习了Web开发的流程,从需求分析、分析设计、到数据库设计,再到环境的搭建 、开发和测试。初次接触DRP概念及其业务流程和业务的详细分析。再次熟悉HTML、CSS、JS、Servlet、JSP等BS相关的知识。 整个项目中设计的知识很多、很详细,学过的还有很多未知的技术,在学习中不仅复习了原创 2017-04-04 20:22:25 · 1012 阅读 · 20 评论 -
JPA-Java Persistence API
JPA是什么 JavaPersistenceAPI:用于对象持久化的API JavaEE5.0平台标准的 ORM规范,使得应用程序以统一的方式访问持久层 JPA和Hibernate的关系 •JPA 是hibernate的一个抽象(就像JDBC和JDBC驱动的关系):–JPA 是规范:JPA本质上就是一原创 2017-10-22 19:10:49 · 390 阅读 · 23 评论 -
Mybatis:Parameter 'list' not found. Available parameters are [termIds, eventIds, param1, param2]
我的EsdTemplateSealMapper.java里面定义的接口是这样的ListSchoolCalendarEntity> selectForSchoolCalendar(@Param("termIds") ListString> termIds, @Param("eventIds") ListString>eventIds); 然后我的EsdTemplateSe原创 2017-09-10 19:11:24 · 791 阅读 · 16 评论 -
ng 架构预览
1 核心模块介绍angluar的六大重要部分: 1. 组件 2. 模版 3. 指令 4. 服务 5. 依赖注入 6. 路由下面分别简单介绍。1.1 组件页面由组件渲染呈现组件可层层嵌套,形成组件树,父子组件双向数据流动(Input:属性绑定,Output:事件绑定)组件和模版之间的数据交互成为数据绑定。(组件-模版:属性绑定,模版-组件:事件原创 2017-09-17 22:11:55 · 726 阅读 · 21 评论 -
==和equals方法区别究竟在哪?
开始说之前咱们先单独把一个东西说清楚,然后在弄清楚下一个,对比着学习自然能把区别搞出来,一起描述的话感觉越描越乱。 ==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。 如果一个变量指向的数据是对象类型的,那么,这时候涉及了两块内存,对象本身占用一块内存(原创 2017-09-24 19:33:24 · 337 阅读 · 25 评论 -
Json web token-基于JSon在网络应用之间传递声明的开放标准
JWT特别适用于单点登录(SSO),一般被用来在身份提供者与服务者之间传递需要被认证的用户身份信息,以便于其用户能够从资源服务器获取相应资源,此token既可被用于认证,也可被加密。对比Token和传统session: 一次请求认证在服务端创建一个session 对象,同时在客户端的浏览器端创建一个Cookie独享,通过客户端带上来的Cookie对象来与服务端的session原创 2017-08-27 21:49:33 · 351 阅读 · 23 评论 -
shiro简单学习
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans原创 2017-08-20 19:29:54 · 285 阅读 · 16 评论 -
轻量级框架-没有侵入性
如果使用某个框架需要继承或者实现框架里面的类和接口,就说这个框架具有侵入性。反之则说那个框架具有“低侵入性” 简单说一下我的理解吧。假设大家都想要把用户代码塞到一个框架里。侵入式的做法就是要求用户代码“知道”框架的代码,表现为用户代码需要继承框架提供的类。非侵入式则不需要用户代码引入框架代码的信息,从类的编写者角度来看,察觉不到框架的存在。 例如: 使用str原创 2017-05-31 20:14:39 · 1583 阅读 · 17 评论 -
【DRP】解决相对路径的问题
在JSP中如果使用“相对路径”,则有出现问题 例如页面的CSS样式发生改变。主要是因为相对路径是相对于URL请求的地址去寻求资源这就会发生css路径的改变。,客户端跳转与服务器跳转的相对路径是不一样的。服务器的跳转相对于http://localhost:8080/DRP/,客户端的跳转则是相对于页面所在文件夹的位置。举个例子: 如果register.jsp是通过客户端跳转到edit.原创 2017-04-15 10:53:27 · 787 阅读 · 24 评论 -
【DRP】学习快乐
今天阅读博客时看到一篇介绍Spring核心的文章,可谓是生动形象的描述了两个核心的原理及其特点。 所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。这是什么意思呢,举个简单的例子,我们是如何找女朋友的?常见的情况是,我们到处去看哪里有长得漂亮身材又好的mm,然后打听她们的兴趣爱好、qq号、电话号、ip号、iq号………,想办法认识她们,投其原创 2017-04-30 20:01:33 · 446 阅读 · 24 评论