Java
文章平均质量分 65
java学习
河海哥yyds
正经人谁写代码吖!哦对了,我没说我是正经人。
展开
-
亲测且好用系列:jdk 1.8 源码debug问题->无法step into 源码方法内 以及 variables debug info not available局部变量无法查看问题
大家好,我是河海哥,专注于后端,如果可以的话,想做一名code designer而不是普通的coder,一起见证河海哥的成长,您的评论与赞是我的最大动力,如有错误还请不吝赐教,万分感谢。一起支持原创吧!纯手打有笔误还望谅解。版本:jdk1.8.0_3111:问题描述无法step into进方法。无法看见局部变量,debug栏里面出现了如下的情况。1-1:step into问题☘️把这里的java.* 和 javax.* 去掉就行。1-2:variables debug info no.原创 2021-12-19 23:51:10 · 1032 阅读 · 1 评论 -
JDBC-批处理-rewriteBatchedStatements=true,让你的批处理速度增长无数倍,自制一个数据导入工具
前言今天学习了JDBC预编译的批处理,预编译批处理适用于单个sql语句,不同值的多次处理。关键字段连接的时候,默认是不会重写你的Batch的,这个时候就要在连接的后面添上。 url=jdbc:mysql://localhost:3306/day14_customer?useSSL=true&rewriteBatchedStatements=true ,这样它就会重写你的批处理...原创 2018-08-14 15:36:57 · 5722 阅读 · 0 评论 -
JDK8中好用的日期处理-LocalDate类-LocalTime-LocalDateTIme,mysql解决时区相差13小时的问题,日期格式器DateTimeFormatter
介绍LocalDate是一种更为高效的日期类,比起Date的复杂具有相当高的简洁性,吸取了企业级别的joda.time时间处理的优点,避免了传统的Date和Calendar复合起来计算的难处LocalDate写在最前面 两个特性务必记住!!!!线程安全所有修改返回皆为新对象,对之前的对象没有影响示例代码:package LocalDate;import ja...原创 2018-07-30 21:27:55 · 12916 阅读 · 0 评论 -
认识一下preparedStatement
在执行SQL命令时,有二种选择:可以使用PreparedStatement对象,也可以使用Statement对象。而熟悉JDBC编程的大侠们都会选择使用PreparedStatement对象,主要因为使用预编译对象PreparedStatement时,有以下几个优点:1、效率高PreparedStatement可以尽可能的提高访问数据库的性能,我们都知道数据库在处理SQL语句时都有一个...转载 2018-07-30 15:01:33 · 316 阅读 · 0 评论 -
JDBC-提高代码的灵活性,自己写一个连接,关闭小工具
目的代码复用灵活性提高程序的灵活性,不能将使用的数据库信息写死,如果使用的是另外一种数据库就需要修改源代码.当多次执行增改的时候,直接调用方法.表结构工具类配置文件: 记得做实验的时候,需要加入时区,ssl,后面的两个可用可不用,没有时区会出异常哟.package cn.xiao.utils;import java.io.IOException;i...原创 2018-07-29 19:44:13 · 288 阅读 · 0 评论 -
用maven修改webapp项目名称,解决重构无法更改项目名称的问题
环境IDEAmaven 3.5步骤1.一个maven项目,由几个东西决定? 更改前图: artifactId是这里的关键,顺便把其它的也改吧 更改后图: 2.导入changes 3.重构名字 4.关键一步 更改之后的项目名称没变啊,只是后面多了一个[],这个时候应该怎么办呢?,说明失败了对吧?文件中重命名 5.重新打开项目 后...原创 2018-07-15 18:54:30 · 2572 阅读 · 0 评论 -
在servlet中生成验证码
验证码验证码的作用就是防止机器人的无限注册,导致本地数据库瞬间爆炸.今天学习servlet中生成验证码.思路后台servlet专门生成验证码前台,img中src指向这个servlet的映射链接,从servlet中获取这个图片资源代码后台代码: protected void doGet(HttpServletRequest request, HttpS...原创 2018-07-15 16:10:36 · 1036 阅读 · 0 评论 -
maven中生成文件时缺少proprieties文件解决,输入流读取properties文件 总是为null
文件目录: 在pom.xml文件中添加<resources> <resource> <directory>src/main/java</directory> <includes> <include>*.原创 2018-07-14 19:18:45 · 811 阅读 · 0 评论 -
chrome 浏览器HTTP method GET is not supported by this URL报错
一次在IDEA中运行报错原因用maven生成webapp 重构模板出了问题 把super去掉就行了原创 2018-07-14 15:49:31 · 1002 阅读 · 0 评论 -
http知识小集合-常见状态码-get/post区别,浏览器访问网页的过程(url访问)
常见状态码响应类别一共有5种:1XX Informational(信息性状态码) 2XX Success(成功状态码) 3XX Redirection(重定向状态码) 4XX Client Error(客户端错误状态码) 5XX Server Error(服务器错误状态码)2XX Success200 OK 表示从客户端发来的请求在服务器端被正常处...原创 2018-07-13 22:02:51 · 742 阅读 · 0 评论 -
servlet第一坑:getOutputStream() has already been called for this response
今天用eclipse试着弄个web环境,我想着 不能光会IDEA,万一以后eclipse呢?然后就美滋滋地配置起来,然后就遇到了这个情况.一切都是这个web模板惹的祸 这里的response 输出流出现了两个,一个Writer,一个outpustream.冲突了呗- -.我已开始没有注意这个模板.记录一下...原创 2018-07-13 19:06:30 · 1930 阅读 · 0 评论 -
记一次maven的坑- -,为生成的web项目添加lib,为maven添加插件时,声明了plugin,但是plugins里面却显示不出来
前言maven的功效大家都知道了,用来构建项目,下载依赖都是很好的选择,但是今天生成项目的时候,发现里面没有lib,这个就比较尴尬了,没有lib你咋把项目跑得起来呢?于是就有了这篇博文,一个坑2个小时,网上很难搜到答案声明的位置这个太关键了!很多博文教你怎么用插件啪啦啪啦,说了一堆,就是没说,这个插件声明的位置!乖乖,巨坑.很多人,比如我就直接在现有的plugins一加,一运行,一...原创 2018-07-13 14:17:08 · 3706 阅读 · 8 评论 -
el标签库,jstl标签库备忘,示例
<%@ page import="cn.xiao.bean.User" %><%@ page import="java.util.Map" %><%@ page import="java.util.HashMap" %><%@ page import="java.util.List" %><%@原创 2018-07-24 21:07:36 · 250 阅读 · 0 评论 -
在ubuntu中安装Maven,配置IDEA,生成webapp项目
前言看见maven好想学啊zzz,于是就有了这篇文章环境ubuntu 18maven 3.5.4安装下载,解压 pass设置环境变量环境变量图: maven安装成功图: IDEA1.配置本地仓库,配置文件,版本等 本地配置图: 2.利用maven创建webapp 创建webapp图: 3.设置坐标等 设置坐标图 ...原创 2018-07-12 15:11:16 · 796 阅读 · 0 评论 -
JQuery Ajax后台无刷新验证用户名重复,前台验证两次密码一致,后台创建并验证 验证码
写在前面写web 的人,我想最先要解决的就是注册登录的界面了,一个小小的界面却包含着各种基本的知识,让我这个新手摸了一天。效果图知识1.bootstrap渲染表单 2.JQuery ajax验证用户名 3.两次密码输入要一致 4.后台密码验证 5.点击图片刷新代码前台test.html<!DOCTYPE html><html la...原创 2018-08-12 20:29:45 · 3460 阅读 · 2 评论 -
学习一下强大的druid,看看druid 连接池部分的源码-创建,使用,销毁。
前言druid是阿里爸爸的开源数据库连接池,据说其性能算是位于领先的水平,从连接的创建和销毁这个性能方面优于其它连接池,但是觉得和HikariCP,的速度比起来还是差点。但是两者各有好处,一个是扩展性比较优秀功能比较全,一个是速度比较块。以下是性能对照图:图片出处:https://github.com/brettwooldridge/HikariCP 图片出处:druid Githu...原创 2018-08-20 12:37:14 · 17229 阅读 · 0 评论 -
Filter小应用/ 动态jsp页面不缓存,静态文件缓存,Firefox如何去查看和清除缓存
前言今天学习了Filter的小作用,这个缓存还是比较重要的一门技术,能够加快你网页的访问。往往动态的jsp页面,是不需要缓存的,一个动态的玩意儿你缓存了干嘛。但是往往那些持久的,不变的静态资源你需要进行缓存。这样可以加快浏览器的访问速度。代码缓存静态资源:@WebFilter(filterName = "StaticCachedFilter")public class Stati...原创 2018-08-23 15:00:11 · 509 阅读 · 0 评论 -
PO/POJO/VO/BO/DAO/DTO的一些理解
PO PO(Persistant Object)可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。好处就是可以把一条记录作为一个对象处理,可以方便的转为其他对象。VOVO(Value Object)VO值对象,通常用于业务层之间的数据传递,与PO一样仅包含数据,根据业务的需要与抽象...转载 2019-01-19 13:37:30 · 560 阅读 · 0 评论 -
Spring Boot(三): 在Spring Boot中使用log4j2,让你的console端丰富起来。
maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusio...原创 2018-11-27 19:48:37 · 1311 阅读 · 0 评论 -
Spring Boot (二):关于Spring Boot的pom 配置。spring-boot-starter-parent.pom
关于依赖简介 Spring Boot 自带了一个它能够支持的依赖表,在用的时候不需要提供这些依赖的版本信息,Spring Boot会帮你管理好,更新Spring Boot的时候,依赖也会跟着更新,从而保持一致。 这个依赖list包含了Spring Boot能够包含的所有module模块,每一个发行版Spring Boot都对应着一个基础版本的Spring框架,不建议去定义版本号。spr...原创 2018-11-23 09:08:34 · 15660 阅读 · 1 评论 -
SpringBoot 2.1.0.RELEASE (一):IDEA构建 SpringBoot项目 实现Hello World,兼容jsp
前言SpringBoot 用的第一次,你就会发现,世界真美妙,下面开始第一步。IDEA搭建环境项目结构:右上角运行一把:到这里就配置成功了。第一个Application@SpringBootApplicationpublic class SpringbootApplication { public static void main(String[] args) ...原创 2018-11-20 20:14:00 · 2210 阅读 · 1 评论 -
Cookie加密处理
在保存用户信息阶段,主要的工作是对用户的信息进行加密并保存到客户端。加密用户的信息是较为繁琐的,大致上可分为以下几个步聚:① 得到用户名、经MD5加密后的用户密码、cookie有效时间(本文设置的是两星期,可根据自己需要修改)② 自定义的一个webKey,这个Key是我们为自己的网站定义的一个字符串常量,这个可根据自己需要随意设置③ ...转载 2018-11-05 12:44:50 · 11282 阅读 · 0 评论 -
用Quartz+Mysql+Spring+SpringMVC,写一个自己的小调度器
前言 本来想写一个Quartz系列的,然前人之述备矣,于是就有了这篇实战,自己动手写一个小调度器。经过几天的努力终于完成了。PS: 笔者学习java未满一年,写的代码可能很烂。最后会给出详细的资料可以进一步了解。环境quartz: 2.3.0spring系列: 5.1.0.RELEASE开发工具: maven + IDEA内容描述 整合了调度器的持久化数据库,从CURD的小操作完...原创 2018-10-31 15:54:12 · 575 阅读 · 0 评论 -
SSM框架整合:完成登录,解释配置文件为何这么使用,父子容器问题
前言 简单学习了SSM框架,现在开始完成第一个任务:SSM框架整合,以及搞明白为什么要这么配置文件~第一次整合,搞明白里面如何运作是很关键的。项目目录名称作用mappermybatis映射文件springspring家族配置文件=context为父(全局性)+mybatis整合+transaction事务+mvcjdbc-druid-configdr...原创 2018-10-01 11:06:14 · 537 阅读 · 0 评论 -
设计原则(三):依赖倒置原则
https://blog.csdn.net/zhengzhb/article/details/7289269定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如修改...转载 2018-09-06 09:43:18 · 182 阅读 · 0 评论 -
设计原则(一):单一职责
定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决...转载 2018-09-06 09:41:00 · 211 阅读 · 0 评论 -
基于Servlet4的文件上传下载功能,原生态。
效果展现maven依赖为了让同学们直接引入依赖,我这里贴出了dependencies <dependencies> <!-- https://mvnrepository.com/artifact/jstl/jstl --> <dependency> <groupId>jstl</groupId...原创 2018-09-08 11:39:19 · 1411 阅读 · 0 评论 -
Filter+redis-做一个简单的缓存入门,解决redis超时问题
需求为了提高数据的访问速度,我们经常会把有一些数据放进缓存里面,读取磁盘的速度要比读取内存的速度慢很多,说到缓存我便想到了redis,于是便有了把一段jsp页面的内容缓存进redis里面的想法。顺便解决了TCP,TIME_Wait的问题思路1、来了一个访问请求,filter进行拦截。先判断redis里面有没有需要的数据。 2、如果有,就读出缓存的数据,写给浏览器,将请求拦截。 3、...原创 2018-08-25 19:21:08 · 1623 阅读 · 0 评论 -
IDEA是如何部署tomcat项目的,了解一下它的实现原理
前言 在最初认识tomcat的时候,我知道部署web项目,就是把自己的项目打包成war然后往webapp里面一扔,tomcat就会自动将项目部署起来了,但是用IDEA的时候我总是很奇怪,它不是直接放到webapp面的,而是生成一个target目录,外加一个war文件。今天偶然间总算明白过来了,且听我慢慢道来。tomcat部署项目的几种方式1、war文件直接扔进webapp里面。这个方...原创 2018-08-29 19:13:25 · 6351 阅读 · 3 评论 -
从源码看ThreadLocal 实现原理及其内存泄露分析
前言ThreadLocal的作用: ThreadLocal提供的实际上就是一种线程隔离,不同的线程的变量归属不同的线程,线程之间不能想问访问各自的变量,当线程生命周期结束的时候,线程会被销毁。 之前只知道它的作用,大概还了解一点原理知道内部用的是Map,今天又遇见了,于是有了这篇源码分析.几个变量 //线程hashcode值来标识线程,nextHashCode()是获...原创 2018-08-21 21:01:55 · 2923 阅读 · 1 评论 -
自己写一个JDBC持久化框架,各种知识运用起来~
引言作为一个初学jdbc的人,你一定会被大量的语句编码所烦恼,一个连接就得啪啪啪写上10多行语句就是单单的为了仅仅执行一条sql语句,然后从结果集中写上了大量的get方法,苦的一笔啊~今天看了我这个,你讲告别烦恼,以后只需要使用简简单单的一条语句就行,其它框架帮你搞定。ps其实就是dbUtils的简单自制版所用知识数据库连接池: druid,这个是我直接用的现成的,功能很强大,这边有...原创 2018-08-20 20:24:09 · 459 阅读 · 1 评论 -
JDK9 +tomcat9.0.10 + idea + ubuntu18 从0部署tomcat,在idea中配置tomcat
前言写在最前面,本文的配置是针对jdk9的!jdk9和8是有区别的!明显的区别就在于jdk9没有jre目录!这一点比较重要,会影响tomcat的配置环境tomcat 9.0.10jdk 9idea 2018.1.5ubuntu 18安装1.下载tar.gz的包,解压 2.修改配置文件 只需要一步就行!没错只要一步!cd apache-tomcat-9.0....原创 2018-07-12 12:23:05 · 858 阅读 · 0 评论 -
YCM+eclim VIM和eclipse的强强联合
前言经过上次安装YCM之后,发现不能支持java语言,于是自己摸索了一下,发现eclim能够和YCM配合起来使用,而需要的操作也是很少的。工具YCMeclipseeclim注意:eclim和eclipse的版本以及VIM的版本要对应,VIM 我的是7.4下载官方下载教程 http://eclim.org/install.html安装此处我们直接...原创 2018-05-03 19:10:55 · 1517 阅读 · 0 评论 -
JAVA基础__接口、抽象类
前景今天还看了java核心技术的接口部分,一点点,但是感觉这部分上面记载的东西有点不太懂,于是在网上找了个小练习来加深下自己的理解接口接口主要来描述类具有的功能。可以看做是一个抽象的类型接口的特性1、接口不能被实例化,这点和抽象类是一样的 2、接口的方法会被指定为public stract 接口里面的变量只能使用常量也就是public static final 3、...原创 2018-04-06 19:48:49 · 251 阅读 · 0 评论 -
hashCode与equals的不解之缘
前言之前学习java核心技术的时候有一节是将hashCode和equals的,在我的印象里面,hashCode是返回对象的内存地址的,equals方法重写的时候,hashCode方法也要重写,认识的程度也仅限于此,前两天学习集合普遍用到hashCode,回来再好好学学,这个还是比较重要的HashCode为什么要用hashCode?查一下官方文档hashcode方法返回该对象...原创 2018-04-22 14:28:40 · 297 阅读 · 0 评论 -
java三大特性梳理_继承、封装、多态
前景今天终于把java的封装,继承,多态看完了,哈哈哈,说实话还行吧。突然想到一个面试官会问的问题,讲一讲封装、继承、多态这三个特性把,基础不打劳真的不行啊。所以我准备放慢自己的速度,认真多学学封装封装比较简单了,封装的目的1、隐藏内部逻辑的实现,给调用者提供最大的方便,即使重构,对调用者也并没有影响。 2、保护了内部的数据,最简明的就是提供get和set方法对外提供访问pr...原创 2018-04-06 14:39:15 · 283 阅读 · 0 评论 -
java基础__迭代器iterator/iterable接口
前景一直在说python大法好~里面迭代器生成器好用啊~哈哈,今天看《thinking in java》正巧遇到了,我的知识面是,好像只有iterator就是迭代器,并没有generator生成器为什么要用迭代器开篇第一问!为什么要用它?它到底好在了哪里?答案: 迭代器实际上就是在原来的上面增加了一层隔离,就拿集合来说,我们都知道集合可以直接遍历把?迭代器加上去的作用就在于不...原创 2018-04-12 16:43:02 · 366 阅读 · 0 评论 -
java字符串连接问题
前景在java核心技术 卷1上有这样一段话构建字符串的时候,每次使用+号都会产生一个新的String对象,会浪费资源,最好用StringBuilder。因为那本书的版本是JDK8的,所有这句话是对的,并且网上关于它的讲解也很对,下面附上一个很好的连接 https://blog.csdn.net/m0_37589327/article/details/78605268 就JDK 8而言,它的...原创 2018-04-04 19:26:19 · 1156 阅读 · 0 评论 -
java__基础--泛型(较为全面的)
前景今天学到了泛型,说实话,泛型是我遇到的又一个难点,真的有点难呢,书上的例子过于激进,不太适合我这种小白学,于是到网上又找了一个例子来加深理解泛型为什么要用泛型?哈哈,学习一个新知识点的时候总会问自己一个为什么。泛型泛型在于这个泛字,一段代码适用于不同类型的对象所重用核心概念:告诉编译器你想使用什么类型,然后编译器去帮你实现各种细节–>thinking in jav...原创 2018-04-16 16:41:57 · 274 阅读 · 0 评论 -
字符串学习之Scanner,Console两个类以及构建字符串
前景想不到时隔两年了,我还是最终回来学java了,也没啥把,慢慢学习,多一项技能总归是好的Console引入目的,为了隐式地从控制台读取密码。因为Scanner读取的时候,密码会直接写在屏幕上 代码小练习:package test;import java.io.Console;public class welcome { public static void...原创 2018-03-28 14:42:00 · 292 阅读 · 0 评论