JAVA
森林森
java学习
展开
-
手动实现IOC与事务控制-基于JDBC-3-将会用到的类全部使用xml配置
ConnectionUtilsTransactionManager 依赖ConnectionUtilsTransactionProxyFactory依赖TransactionManagerAccountDaoImpl 依赖ConnectionUtils改造ConnectionUtils去掉单例模式public class ConnectionUtils { /** * 单例 */// private ConnectionUtils(){//////.原创 2020-06-24 16:15:43 · 160 阅读 · 0 评论 -
手动实现IOC与事务控制-基于JDBC-2-动态代理改造Service事务
手动实现IOC与事务控制-基于JDBChttps://blog.csdn.net/ko0491/article/details/106939211之前实现了,IOC与事务,但是在Service中有很大一段try-catch代理,事务代码与业务代码混合在一起使用动态代理改造Service对所有的Service使用动态代理思路:在Servlet中不再直接调用ServiceImpl,而是调用了使用动态代理增加了事务控制后的代理对象创建动态代理工厂package com.liu.sprin原创 2020-06-24 15:54:00 · 168 阅读 · 0 评论 -
手动实现IOC与事务控制-基于JDBC-1
手动实现IOC与事务控制基于JDBCsqlDROP TABLE IF EXISTS `account`;CREATE TABLE `account` ( `name` varchar(50) NOT NULL COMMENT ' 姓名', `cardNo` varchar(50) NOT NULL COMMENT '卡号', `money` int(11) NOT NULL COMMENT '金额') ENGINE=InnoDB DEFAULT CHARSET=utf8;-- --原创 2020-06-24 11:49:42 · 235 阅读 · 0 评论 -
@WebServlet注解无效访问servlet报404
@WebServlet(name = "transferServlet",urlPatterns = "/transferServlet")public class TransferServlet extends HttpServlet {tomcat正常启动,页面正常运行,当访问servlet时出现无响应的情况,控制台报错404,未访问到servlet。解决方案version是否大于3.0因为web-app标签3.0以上版本才可以使用servlet的注解的,这是必要条件。如果web-原创 2020-06-24 10:47:58 · 10155 阅读 · 0 评论 -
java class局部变量表
每个栈帧内部都包含一组称为局部变量表的变量列表,局部变量表的大小在编译期音就已经确定了,对应class文件中方法Code属性的max_locals字段,Java虚拟机会根据max_locals字段来分配方法执行过程中需要分配的最大局部变量表的容量例一public class MyJvmTest { public void foo(int d ,String name){ String tmp ="A"; }}class文件javap -c -v -l MyJv原创 2020-06-03 20:40:54 · 480 阅读 · 0 评论 -
javap查看类文件
public class Hello { public static void main(String[] args) { System.out.println("Hello, World"); }}不加任何参数javap Hello.classCompiled from "Hello.java"public class com.ghgcn.jvm.chapter01.Hello { public com.ghgcn.jvm.chapter01.Hel..原创 2020-06-02 20:09:23 · 301 阅读 · 0 评论 -
Java Class类文件结构
class 文件结构https://www.viralpatel.net/tutorial-java-class-file-format-revealed/A Java class file is consist of 10 basic sections:Magic Number: 0xCAFEBABEVersion of Class File Format: the minor and major versions of the class fileConstant Pool: Pool of原创 2020-06-02 19:59:42 · 441 阅读 · 0 评论 -
JVM的一般参数设置
内存区域大小XX:+UseG1GC:用于指定 JVM 使用的垃圾回收器为 G1,尽量不要靠默认值去保证,要显式的指定一个。-Xmx:设置堆的最大值,一般为操作系统的 2/3 大小。-Xms:设置堆的初始值,一般设置成和 Xmx 一样的大小来避免动态扩容。-Xmn:表示年轻代的大小,默认新生代占堆大小的 1/3。高并发、对象快消亡场景可适当加大这个区域,对半,或者更多,都是可以的。但是在 G1 下,就不用再设置这个值了,它会自动调整。-XX:MaxMetaspaceSize:用于原创 2020-05-20 11:17:58 · 1002 阅读 · 0 评论 -
对象字节码看并发编程的底层实现
线程模型对于 Hotspot 来说,每一个 Java 线程,都会映射到一条轻量级进程中(LWP,Light Weight Process)。轻量级进程是用户进程调用系统内核所提供的一套接口,实际上它还需要调用更加底层的内核线程(KLT,Kernel-Level Thread)。而具体的功能,比如创建、同步等,则需要进行系统调用。这些系统调用的操作,代价都比较高,需要在用户态(User Mode)和内核态(Kernel Mode)中来回切换,也就是我们常说的线程上下文切换( CS,Context Swi原创 2020-05-20 10:42:28 · 124 阅读 · 0 评论 -
字节码结构
https://docs.oracle.com/javase/specs/jvms/se11/html/magic:魔数,用于标识当前 class 的文件格式,JVM 可据此判断该文件是否可以被解析,目前固定为 0xCAFEBABEmajor_version:主版本号。minor_version:副版本号,这两个版本号用来标识编译时的 JDK 版本,常见的一个异常比如 Unsupported major.minor version 52.0 就是因为运行时的 JDK 版本低于编译时的 JDK 版本.原创 2020-05-20 10:27:07 · 251 阅读 · 0 评论 -
jstat 常用参数
jstat -gcutil $pid 29365 1000 S0 S1 E O M CCS YGC YGCT FGC FGCT GCT 0.00 2.07 72.02 26.86 97.25 96.29 27 0.436 3 0.558 0.994 0.00 2.07 72.02 26.86 97.25 96.29 27 0.436 .原创 2020-05-20 09:44:16 · 1026 阅读 · 0 评论 -
转载 -Apache Tomcat 源码分析环境搭建
Apache Tomcat 源码分析环境搭建 原创 ...转载 2020-04-17 11:59:53 · 205 阅读 · 0 评论 -
Servlet API
原创 2019-05-11 19:44:19 · 97 阅读 · 0 评论 -
Redis锁的简单实现-java
介绍Redis 2.8 版本中加入了 set 指令的扩展参数,使得 setnx 和 expire 指令可以一起执行,彻底解决了分布式锁的乱象set lock:codehole true ex 5 nxOK... do something critical ...> del lock:codehole上面这个指令就是 setnx 和 expire 组合在一起的原子指令,它就是分布...原创 2019-04-16 20:20:14 · 871 阅读 · 0 评论 -
hibernate-validator6.0.12.Final 引发的一个错误
hibernate-validator6.0.12.Final 引发的一个错误2019-01-23 16:23:18,352 WARN o.s.w.c.s.XmlWebApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springf...原创 2019-01-23 17:46:04 · 5013 阅读 · 0 评论 -
java二叉树
java二叉树节点package com.ghg.data_structure.tree;public class Node { public Integer value; public Node leftChild; public Node rightChild; public Node() { super(); } public Nod原创 2017-12-15 12:11:50 · 205 阅读 · 0 评论 -
JAVA 手动实现LinkedList
### JAVA 手动实现LinkedList节点package com.ghg.data_structure.link;public class Node<T> { /** * 数据 */ public T data; /** * 前一个 */ public Node pre; /** * 后一个原创 2017-12-04 17:34:01 · 333 阅读 · 0 评论 -
Java手动实现简单 ArrayList
接口package com.ghgcn.chapter03.data;public interface MyList<T> { /** * 是否为空 * @return */ public boolean isEmpty(); /** * 获取大小 * @return */ public int size();原创 2017-12-03 14:53:02 · 433 阅读 · 0 评论 -
枚举ordinal与name
枚举ordinal与name区别定义一个枚举public enum HttpMethod { GET, POST, PUT, DELETE}获取ordinal System.out.println(HttpMethod.GET.ordinal()); System.out.println(HttpMethod.POST.ordinal());原创 2017-07-04 15:11:31 · 969 阅读 · 0 评论 -
使用Nexus搭建Maven私服
aven默认提供的中央仓库是在远程网络服务Appache提供的,这对于我们开发时不合理的。如果我们没网了或者什么情况,我们怎么办?也就是说我们队中央仓库的依赖性太大。而Nexus私服则可以解决我们这个问题。先看下这张图应该大家就非才明白了:这样就相当于在我们本地的局域网搭建了一个类似中央仓库的服务器,我们开始将中央仓库的一些资料下载到私服务器上,然后平时我们的maven项目就是直接访问局域网内的私服原创 2017-01-22 16:22:04 · 281 阅读 · 0 评论 -
MAVEN常用命令学习
MAVEN学习清理target目录下的所有文件mvn clean项目构建与编译mvn clean compile 在targe目录下生成文件构建测试mvn clean test 在targe目录下生成文件,在执行test之前会先执行compile打包mvn clean package 在targe目录下生成jar,原创 2016-10-08 15:54:19 · 274 阅读 · 0 评论 -
Bitmap和Base64的相互转换
Bitmap和Base64的相互转换public class Base64Util { public static void gcBitmap(Bitmap bitmap) { if (bitmap != null && !bitmap.isRecycled()) { bitmap.recycle(); // 回收图片所占的内存原创 2016-10-08 15:58:15 · 12089 阅读 · 0 评论 -
myeclipse10.7 破解后不能导出war包处理
不能导出WAR包的原因是破解没有完全导致的。解决办法:找到MyEclipse安装目录下MyEclipse\Common\plugins文件夹中的com.genuitec.eclipse.export.wizard_9.0.0.me201211011550.jar这个jar包,链接:http://pan.baidu.com/s/1o76BcSi下载这个jar替换plugins文件夹中的jar,替换之后原创 2016-12-28 15:08:40 · 424 阅读 · 0 评论 -
微信支付订单工具类
订单工具package com.ghgcn.antifakeApp.wxpay.util;import java.io.IOException;import java.io.InputStream;import java.io.StringReader;import java.io.UnsupportedEncodingException;import java.net.URLEncoder原创 2016-12-28 17:15:09 · 1280 阅读 · 0 评论 -
激活Maven profile同时打包
pom<profiles> <!-- 开发环境 --> <profile> <id>dev</id> <properties> <env>dev</env> </properties> <activation>原创 2016-12-29 11:45:17 · 620 阅读 · 0 评论 -
日志组件slf4j介绍及配置详解(转)
1 基本介绍每一个Java程序员都知道日志对于任何一个Java应用程序,尤其是服务端程序是至关重要的,而很多程序员也已经熟悉各种不同的日志库如java.util.logging、Apache log4j、logback。但如果你还不知道SLF4J(Simple logging facade for Java)的话,那么是时候去在你项目中学习使用SLF4J了。SLF4J不同于其他转载 2016-12-29 14:13:36 · 1481 阅读 · 0 评论 -
maven scope含义
依赖范围控制哪些依赖在哪些classpath 中可用,哪些依赖包含在一个应用中。让我们详细看一下每一种范围:compile (编译范围)compile是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范围。编译范围依赖在所有的classpath 中可用,同时它们也会被打包。provided (已提供范围)provided 依赖只有在当JDK 或者一个容器已提供该依赖之后才使用。例如, 如果你原创 2017-01-06 18:29:03 · 276 阅读 · 0 评论 -
Java常用数学运算
public class Arith { // 默认除法运算精度 /** The Constant DEF_DIV_SCALE. */ private static final int DEF_DIV_SCALE = 10; // 这个类不能实例化 /** * Instantiates a new arith. */ private原创 2016-12-20 09:26:12 · 519 阅读 · 0 评论 -
spring事务配置
<!-- 数据源配置 --> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <property name="url" value="${jdbc.url}" /> <p原创 2016-12-20 15:41:59 · 399 阅读 · 0 评论 -
DruidDataSource
#mysql配置jdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://10.18.200.52:3306/ls_release_20160409jdbc.username=dbuserjdbc.password=321321#druiddruid.initialSize=5druid.minIdle=1drui原创 2016-12-20 15:44:09 · 402 阅读 · 0 评论 -
maven 制作 alipay-sdk-java包到本地仓库
下载SDKhttps://doc.open.alipay.com/doc2/detail?treeId=54&articleId=103419&docType=1存放SDKalipay-sdk-java20161129201425 放在D盘下alipay目录下,目录自己指定其它都可以执行以下命令mvn install:install-file -DgroupId=com.alipay -Darti原创 2016-12-21 10:04:50 · 1044 阅读 · 1 评论 -
MAVEN转web项目
新建普通maven项目建立webapp/WEB-INF与web.xml在src/main下建立webapp/WEB-INFsrc/main/EB-INF下建立web.xml web.xml<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"原创 2017-01-09 10:01:50 · 297 阅读 · 0 评论 -
动态代理proxy与CGLib
静态代理定义一个接口/** * 定义一个账户接口 * * @author Administrator * */ public interface Count { // 查看账户方法 public void queryCount(); // 修改账户方法 public void updateCount(); } 接口实现类p原创 2017-01-17 14:47:57 · 271 阅读 · 0 评论 -
属性文件读取工具类
package com.ghg.smrtframwork.util;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.util.Properties;import org.slf4j.Logger;import org.slf4j.Log原创 2017-01-13 10:06:07 · 331 阅读 · 0 评论 -
java读取指定package下的所有class
package com.ghg.smrtframwork.util;import java.io.File;import java.io.FileFilter;import java.io.IOException;import java.net.JarURLConnection;import java.net.URL;import java.net.URLDecoder;import j原创 2017-01-13 10:07:08 · 4119 阅读 · 0 评论 -
JAVA判断空工具类
package com.ghg.smrtframwork.util;import java.io.Serializable;import java.security.MessageDigest;import java.text.NumberFormat;import java.text.ParseException;import java.text.SimpleDateFormat;imp原创 2017-01-13 10:17:57 · 3368 阅读 · 1 评论 -
maven-source-plugin打包源码
maven-source-plugin提供项目自动将源码打包并发布的功能,在需要发布源码项目的pom.xml文件中添加如下代码即可: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>/maven-source-原创 2017-01-22 14:28:26 · 561 阅读 · 0 评论 -
Android 环境变量
JDK环境变量配置JAVA_HOME JDK的安装路径C:\Program Files (x86)\Java\jdk1.8.0_25 CLASSPATH .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jarPATH %JAVA_HOME%\bin;%JAVA_HOME%\jre\binAndroid SDK环境变量ANDROID_HOMED:\An原创 2016-10-08 15:53:40 · 1795 阅读 · 0 评论
分享