- 博客(1674)
- 资源 (14)
- 收藏
- 关注
原创 MySQL之SQL优化实战记录
点击上方“Java大数据修炼之道”,选择“置顶公众号”技术文章第一时间送达!背景本次SQL优化是针对javaweb中的表格查询做的。部分网络架构图业务简单说明N个机台将业务数据发送至服务...
2019-01-24 19:00:00
396
1
原创 记录一次mybatis动态新增拼接sql语句出现的异常(主要是数据库SQL Server与jdbcType数据类型之间的对应关系)
源码如下:因为前端页面并不是所有的项均为必填项, 故insert 新增sql语句需动态拼接, 刚开始通过tomcat后台发现报如下错误: 经过查阅mybaits官网才知道以下事实: 1、mybatis insert语句中 jdbcType 后面跟的类型字母必须全部都大写; 2、JdbcType所拥有的数据类型和Java类型以及SQL Server语言所拥有的数据类型存...
2018-12-21 14:36:38
1586
原创 Java基础进阶小结
面向对象1.继承:是类和类之间的关系,继承与对象无关。子类无条件拥有父类中所有“可继承”的属性和方法。(构造方法不可继承)Override方法重写:重写也叫覆盖 (面试中有的会问到Ove...
2018-11-29 08:00:00
349
原创 Java开发必知的代码片段
代码调试增强for循环*jdk1.5以上才能支持*增加for循环实现equals()classPerson{Stringname;intbirthYear;byte[]...
2018-11-16 08:00:00
245
原创 学习Java需吃透这些基本概念
学习好比盖房子,打地基好很重要,房了能盖多高关键看地基;学习同样道理,基础知识是以后学习一切技术的必要条件,我们在准备学习一门开发语言时,首先要学习它的基础,不仅要会,更要融会贯通;万变...
2018-10-21 07:00:00
367
原创 使用Mybatis框架时怎样可以让程序在tomcat日志中打印出执行的SQL语句
我们都知道,如果是直接使用mysql我们是看不到项目运行过程中执行了哪些对应的SQL语句, hibernate可以直接加一一条配置就搞定, mybatis其实也大同小异, 废话不多说, 直接上代码只需要在mybatis的配置文件中加入 <settings> <setting name="logImpl" value="LOG4J" />...
2018-07-23 18:54:38
5296
原创 面试真题之递归算法
题目是这样的: 使用递归算法找出指定路径下所有的文件夹及文件 包括子文件夹目录下的文件...private static List<String> getAllFilePaths(File filePath, List<String> filePaths) { File[] files = filePath.listFiles(); if (files == nu...
2018-05-11 09:51:15
1411
原创 mybatis如何在控制台或者tomcat日志中打印出执行的sql语句
第一步:在mybatis的配置文件中添加以下代码<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"...
2018-02-22 17:35:37
12967
原创 linux下修改tomcat默认访问主页为自己项目的页面
其实很简单,具体操作步骤如下:首先找到tomcat下的webapps文件夹,然后删除除了WEB-INF文件夹外的所有文件,紧接着加入一个index.jsp文件,代码如下: top.location='fuzz'; //fuzz表示项目的名字,此处需要将fuzz更改为你项目对应的名字关闭并重启tomcat就行了,打开浏览器就不再需要输入ht
2018-02-05 09:24:50
5908
4
原创 修改tomcat默认的欢迎首页,将tomcat默认的欢迎页面改成自己项目的页面
推荐阅读: IT编程语言百度网盘学习资源汇总 !!!前言: 安装好tomcat以后,我们输入网址(或者ip),访问到tomcat,浏览器当中出现的是tomcat的欢迎界面,如下:那么如何能够输入地址以后能够访问到我们自己发布的默认欢迎界面呢?方法如下:第一步:找到tomcat的server.xml(在conf目录下),找到:代码如下:<H...
2018-01-25 19:25:42
92556
13
原创 java调用Python脚本文件的同时,并向其中传入参数
我的项目部署到linux环境中的tomcat中,使用java调用的是已经编译后的Python二进制文件,在此只贴出关键代码,以前不知道怎么在调用命令的时候同时向其中传递所需参数,现在这个问题终于解决了String ip1 = request.getParameter("ip1");//旧ipString ip2 = request.getParameter("ip2");//新ip
2018-01-24 16:39:04
1110
原创 上传文件需求: 文件名称不可包含中文正则表达式的正确写法
数据包(上传文件名不可包含中文)直接贴出关键代码functioncheckfile(){var file=document.getElementById("upload").value;//上传文件名var re = /[\u0391-\uFFE5]+/g; //是否为中文的 正则表达式if(file.match(re) != null){aler
2018-01-16 18:55:34
1028
原创 Java 定时器(Timer,TimerTask)基础入门实例代码
实现的功能:距离当前系统时间,在指定多少分钟后,执行一件事(方法),此处简单的在控制台打印一句话,具体代码如下大家根据自己项目的实际情况导入相应的包(特别是最上面的包路径),TimerTaskTest01类中的代码如下:java定时器timer执行一次后就停止,我需要达到的要求就是只执行一次,如果不停止jvm虚拟机会一直运行,时间久了势必会消耗CPU资源,占用内容,正如上面
2017-12-29 11:44:38
804
原创 java中获取当前系统时间以及过半小时之后的时间的实现
我就不过多的使用文字描述了,大家直接看代码就行:package cn.zj.project;import java.text.SimpleDateFormat;import java.util.Date;public class TestSystem {public static void main(String[] args){Long time = System
2017-12-19 10:51:27
19719
原创 读取Spring配置文件获取bean的几种情况
情况一:spring的配置文件applicationContext.xml在src路径下(配置文件放在class目录下:)直接使用 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); 情况二:spring的配置文件applicat
2017-12-05 15:24:08
1518
原创 完全java实现一款开源的报表工具简表(JOR)
简表(JOR),是一款开源的报表工具,完全java实现,核心代码来自于国内一线报表工具品牌杰表.2008 。 提起开源的报表工具,不能不说说jaspereport,jasperreport作为著名的开源报表工具,在java程序员中一直享有盛名。但由于其设计主要是针对西式的简单报表,设计起复杂的中式报表来,有点力不从心,所以,在国内的项目中能成功应用的例子并不多。JOR,作为能做复杂报表的开源
2017-12-03 20:49:23
15676
原创 mysql建表常用sql语句个人经验分享
连接:mysql -h主机地址 -u用户名 -p用户密码 (注:u与root可以不用加空格,其它也一样) 断开:exit (回车) 创建授权:grant select on 数据库.* to 用户名@登录主机 identified by \"密码\" 修改密码:mysqladmin -u用户名 -p旧密码 password 新密码 删除授权: revoke select,ins
2017-11-19 19:48:39
408
原创 面试中单例模式有几种写法
纠结单例模式有几种写法有用吗?有点用,面试中经常选择其中一种或几种写法作为话头,考查设计模式和coding style的同时,还很容易扩展到其他问题。这里讲解几种猴哥常用的写法,但切忌生搬硬套,去记“茴香豆的写法”。编程最大的乐趣在于“know everything, control everything”。大体可分为4类,下面分别介绍他们的基本形式、变种及特点。饱汉模式
2017-11-14 14:41:59
382
原创 同一台电脑教你配置多个Tomcat的环境变量
装两个tomcat 分别是6.0和7.0 可想运行tomcat6.0 但是实际上却运行tomcat7.0 两个版本都是用解压缩包 其实就是不能运行tomcat6.0 只能运行7.0 两个环境变量都配置了。端口也改了 还是不行我遇到这种情况了,不知大家遇到没有,如下是我的解决方法: 当第一个tomcat启动后,后面tomcat的server.xml中的端口不管怎么改,仍然会报端口冲突。后来
2017-11-13 20:25:32
7958
3
原创 浅谈Java中的反射机制以及Class、Constructor、Field、Method简单框架原理
"font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">------"http://www.itheima.com" target="blank" style="font-family: Arial, Helvetica, sans-serif; background-color: rgb
2017-11-02 13:01:42
820
原创 Java中io流的一些简单操作(包含文件复制,向硬盘中写入文本文件,以及io流高级应用序列化和反序列化)
package cn.io.demo;import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream;import org.junit.Test;import cn.io.entity.Stud
2017-10-30 17:17:45
429
原创 深入分析Java规范中JVM的内存布局模型
Java是一门结合了编译执行与解释执行的语言。首先,Java编译器把Java源码编译成Java字节码(byte-code),然后,Java字节码在Java虚拟机(JVM)上解释执行。实际上,Java虚拟机在执行Java代码的过程中,会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时机,有些区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立
2017-10-21 16:31:54
509
1
原创 Java Web 简单的分页显示实例代码
这篇文章主要介绍了Java Web 简单的分页显示实例代码的相关资料,本文通过,计算总的页数和查询指定页数据两个方法实现分页效果,非常不错,具有参考借鉴价值,需要的朋友可以参考下本文通过两个方法:(1)计算总的页数。 (2)查询指定页数据,实现简单的分页效果。思路:首先得在 DAO 对象中提供分页查询的方法,在控制层调用该方法查到指定页的数据,在表示层通过 EL 表达式和 JS
2017-10-10 19:59:15
1447
转载 Java 泛型的本质:类型擦除与边界通配符
类型擦除的意思是:当你写 List<String>、List<Integer> 这样的泛型代码时,编译器在生成字节码之前,会把所有类型参数替换成它们的边界(默认是 Object),然后在需要的地方插入强制类型转换。假设有一个父类 Animal 和子类 Dog,父类里有一个方法 List<Dog> getDogs(),子类重写这个方法时,类型擦除会把父类的方法变成 List getDogs(),而子类如果直接写 List<Dog> getDogs(),在 JVM 看来两个方法的签名就一样了,不构成重写关系。
2026-04-16 20:31:07
5
转载 彻底搞懂 equals() 和 hashCode() 的契约关系
假设你把两个内容相同的User对象put进HashMap,由于它们的hashCode不同(Object默认用内存地址计算),HashMap会把它们放到不同的桶里。下次写实体类时,别偷懒,两个方法一起生成。如果两个对象通过equals()比较相等,那么它们的hashCode()必须返回相同的值。如果对象放入HashMap后,修改了参与hashCode计算的字段,它的哈希值会变,导致再也找不到这个key。哈希表的工作原理是:先通过hashCode确定桶的位置,如果桶里有多个元素,再用equals逐个比较。
2026-04-13 20:39:16
28
转载 Java异常体系:Checked vs Unchecked 的设计哲学
Error 代表 JVM 层面的严重错误,比如 StackOverflowError 和 OutOfMemoryError,这类问题程序员基本无能为力,程序能做的最多就是感知到并优雅退出,通常不推荐捕获。这类异常代表「预期内的异常路径」,调用者有明确的应对策略,强制处理是合理的。Java 的 Checked Exception 是语言设计史上一个大胆的实验,出发点是好的——希望强制开发者正视错误、不能忽略。但在实践中,它的局限性也很明显:过度强制导致开发者绕过它,破坏封装,影响代码的可维护性。
2026-04-11 20:30:55
10
转载 Stream API 原理:惰性求值与并行流陷阱
比如你写 list.stream().filter(x -> x > 0).filter(x -> x % 2 == 0),两次 filter 会导致 Pipeline 中有多个 Stage,虽然惰性机制保证元素不会多次遍历整个操作链,但每次 filter 都会产生一个新的中间对象,有一定的内存和调用开销。更重要的是,Stream 的中间操作是惰性的。并行流还要求操作是无状态的。如果你在 forEach 中修改共享变量,并行流下的行为是未定义的——元素处理的顺序完全不确定,共享变量的值也会出现竞态条件。
2026-04-10 20:31:32
12
转载 Lambda 与函数式接口:不只是语法糖
建议在复杂的 Lambda 中加入适当的日志,或者把复杂 Lambda 提取为普通方法再用方法引用。Java 选择了一种安全的实现方式:Lambda 捕获的是变量的副本,而不是引用。真正影响性能的是 Lambda 内部的逻辑,而不是 Lambda 本身。Lambda 的优势是简洁,太长的 Lambda 反而降低可读性。记住,Lambda 是为了表达简单的行为,不是用来写复杂逻辑的。理解函数式接口的本质、Lambda 的实现机制、闭包的限制、以及适用的场景,才能用好这个强大的特性。
2026-04-09 20:30:22
13
转载 注解的本质:从定义到运行时解析全流程
理解注解的生命周期(SOURCE/CLASS/RUNTIME)、元注解的作用(@Retention/@Target/@Inherited/@Documented),以及运行时通过反射读取注解的机制,是深入理解 Spring、MyBatis 等主流框架的基础。当编译器处理带有注解的代码时,注解信息会被写入 .class 文件的特定属性区域。注解的成员方法:注解中定义的方法称为"成员",它们没有参数,没有方法体,返回类型只能是基本类型、String、Class、枚举、注解,或这些类型的数组。
2026-04-07 20:34:42
13
转载 Java 反射机制:原理、性能代价与最佳实践
正常情况下,我们写代码时就知道要调用的类和方法,但有了反射,可以在运行时才决定要操作哪个类、哪个方法,甚至可以绕过访问修饰符的限制。JVM 的即时编译器会对热点代码做优化,但反射调用的代码模式不固定,难以被 JIT 识别并优化,所以即使代码运行了很久,性能也可能不如普通方法调用。第一次通过 Class.forName() 加载类时,JVM 要进行类的加载、验证、准备、解析、初始化等步骤,这是一次性的开销,但不可忽视。通过反射获取方法对象后,可以绕过编译期检查,直接在运行时调用任意方法,包括私有方法。
2026-04-05 20:30:38
11
转载 Iterator 与 fail-fast 机制:你不知道的细节
它的迭代器遍历的是创建迭代器时的快照,所以遍历过程中其他线程的修改不会影响当前遍历,也不会抛 ConcurrentModificationException。先用 iterator 找到要删除的元素,然后调用 iterator.remove(),这样 modCount 和 expectedModCount 会保持同步,不会触发 fail-fast。第二,如果要按条件删除多个元素,强烈推荐使用 removeIf() 方法,这是 JDK 8 引入的,底层帮你处理了 Iterator 的正确使用方式。
2026-04-02 20:30:15
15
转载 ArrayList vs LinkedList:不只是数据结构的区别
实际上,只有在已经持有目标节点引用的情况下(比如通过迭代器遍历时),LinkedList 的删除操作才是真正 O(1) 的。对于 ArrayList,查找是 O(1),但插入需要移动后续元素,是 O(n)。ArrayList 的底层数组在内存中是连续的,访问一个元素时,相邻的元素也会被加载到缓存中。因为数组的内存是连续的,给定索引 i,可以直接计算出元素的内存地址:基地址 + i 乘以 元素大小。实际测试表明,顺序遍历相同数量的元素,ArrayList 的速度可能是 LinkedList 的数倍。
2026-04-01 20:30:21
16
转载 ConcurrentHashMap 为什么比 HashMap 安全?
ConcurrentHashMap 通过 CAS + synchronized 的组合,将锁粒度细化到单个桶,读操作完全不加锁,写操作只锁单个桶,在保证线程安全的同时实现了高并发性能。两个线程同时执行 put 操作,如果两个 key 的 hash 值相同,都判断该位置为空,然后都往同一个位置写入,后写入的会覆盖先写入的,导致数据丢失。HashMap 的 size 字段没有任何同步保护,多线程并发 put 时,size 的自增操作不是原子的,最终 size 的值会比实际元素数量少。
2026-03-31 21:03:29
14
原创 HashMap 源码深度解析:从数组+链表到红黑树
之所以选择 8 而不是更小的数字,是因为红黑树虽然查询效率高(O(log n)),但它的节点占用内存是普通链表节点的两倍,而且维护树结构(旋转、变色)也有额外开销。这就是链表的基础结构。两个线程同时执行 put 操作,如果它们的 key 映射到同一个桶,且桶为空,两个线程都判断桶为空并各自创建节点,最终只有一个节点会被保留,另一个被覆盖,导致数据丢失。JDK 8 在这里做了一个巧妙的优化:由于容量是 2 的幂次,扩容后每个元素的新桶位置只有两种可能——要么保持原位,要么移动到"原位置 + 旧容量"的位置。
2026-03-29 20:31:05
563
转载 深拷贝 vs 浅拷贝,你踩过这个坑吗?
这样 person.clone() 得到的新对象,基本类型字段是独立的,但 Address 对象是共享的。浅拷贝之后,两个 Person 对象的 name 是独立的,但 address 字段指向同一个 Address 对象。如果要深拷贝数组,可以使用 Arrays.copyOf() 或 System.arraycopy(),但这两个方法对于对象数组来说也只是浅拷贝(只复制了引用)。当你复制一个对象时,只复制了对象本身的基本类型字段,而对于引用类型字段,只复制了引用地址,并没有复制引用指向的对象本身。
2026-03-28 20:31:16
18
转载 求求你别再手动部署jar包了,太low了!动态上传热部署真的太爽了!
如果用户上传的jar包含了spring的上下文,那么就需要扫描jar包里的所有需要注入spring容器的bean,注册到当前系统的spring容器中。接下来系统要把上传的jar包加载到当前线程的类加载器中,然后通过完整类名,加载得到该实现的Class对象。近期开发系统过程中遇到的一个需求,系统给定一个接口,用户可以自定义开发该接口的实现,并将实现打成jar包,上传到系统中。考虑到用户实现接口的两种方式,使用spring上下文管理的方式,或者不依赖spring管理的方式,这里称它们为注解方式和反射方式。
2026-03-27 20:31:48
20
转载 再见 Maven!
mvnd的守护进程能够在构建之间保持活跃,减少了资源的浪费,特别是在持续集成/持续部署(CI/CD)环境中,频繁的构建会更加受益于此优化。Maven 的缺点是,对于大一点的项目来说,构建太慢了。,是Apache Maven团队借鉴了Gradle和Takari的优点,衍生出来的更快的构建工具,maven的强化版,解决Maven构建慢的问题,又不需要重新学习,懂Maven你就能驾驭。旨在提供一个更高效、更快速的构建体验,同时保持与现有Maven工作流的兼容性,从而为开发团队带来更高的生产力和更快的迭代速度。
2026-03-26 21:33:53
12
转载 Java 小白到高手:一篇吃透语法、集合、并发、Web 全流程!
今天这篇内容,就是把 Java 学习路线拆成四个阶段,从语法基础 → 集合 → 并发 → Web,把你带到能独立做项目的程度。,覆盖了 Java技术、面试题精选、操作系统基础知识、计算机基础知识、Linux教程、计算机网络等等。学到这里,你已经能写“程序”,而 Web 阶段则能让你写“产品”。掌握到这里,你已经可以写结构清晰的 Java 小程序了。至此,一个可运行的 Java Web 后端就完成了。第四阶段:Web 开发(Java 最闪亮的地方)掌握集合,你就能写 90% 的业务逻辑。
2026-03-25 21:23:29
9
转载 String、StringBuilder、StringBuffer 的本质区别
a == b 结果是 true(常量池复用),a == c 结果是 false(new 在堆上创建新对象),a.equals(c) 结果是 true。StringBuffer 比 StringBuilder 早出现,API 几乎一模一样,最大的区别是所有方法都加了 synchronized 关键字,保证多线程安全,但也带来了性能开销。你以为是在修改 s,实际上是创建了一个新的 String 对象 "hello world",然后让 s 指向这个新对象。底层也是 char 数组,但这个数组是可变的。
2026-03-25 21:23:29
11
mymusic.rar
2020-12-17
hamcrest-core-1.3.jar
2020-12-28
ssh框架 + bootstrap + mysql 公司员工信息管理系统,完整版
2017-10-12
非maven项目ssm项目需要的jar包集合
2020-12-15
springboot整合mybatis完整版代码示例
2020-12-15
quickui-free_4.0.6 去水印js
2019-03-13
Redis-x64-3.2.100.msi
2020-12-16
springboot全面整合mybatis
2020-12-02
使用javaScript或jquery实现页面时钟走动效果(包含秒表计时), 和系统时间同步
2018-04-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅