![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
文章平均质量分 54
oh_EJiao
种一棵树最好的时间是十年前,其次是现在
展开
-
json数组字符串转集合
package com.zkn.newlearn.json; import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject; import java.util.List;import java.util.Map; /**...转载 2019-06-13 15:44:47 · 5995 阅读 · 0 评论 -
HashMap的实现原理
HashMap概述HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。HashMap的数据结构在Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMap实际上是一个“链表散列...转载 2018-05-07 16:43:04 · 280 阅读 · 0 评论 -
JAVA 迭代器(快速失败与安全失败)
快速失败与安全失败解释引用自牛客网问答https://www.nowcoder.com/questionTerminal/95e4f9fa513c4ef5bd6344cc3819d3f7?pos=101&mutiTagIds=570&orderByHotValue=1一:快速失败(fail—fast) 在用迭代器遍历一个集合对象时,如果遍历过程中对集合...原创 2018-05-07 15:12:57 · 2488 阅读 · 0 评论 -
详解java各种集合的线程安全
线程安全首先要明白线程的工作原理,jvm有一个main memory,而每个线程有自己的working memory,一个线程对一个variable进行操作时,都要在自己的working memory里面建立一个copy,操作完之后再写入main memory。多个线程同时操作同一个variable,就可能会出现不可预知的结果。根据上面的解释,很容易想出相应的scenario。 而用synchro...转载 2018-05-07 14:18:02 · 2832 阅读 · 0 评论 -
【java设计模式】单例模式
小结以下为转载内容:Java中单例(Singleton)模式是一种广泛使用的设计模式。单例模式的主要作用是保证在Java程序中,某个类只有一个实例存在。一些管理器和控制器常被设计成单例模式。 单例模式有很多好处,它能够避免实例对象的重复创建,不仅可以减少每次创建对象的时间开销,还可以节约内存空间;能够避免由于操作多个实例导致的逻辑错误。如果一个对象有可能贯穿整个应用程序,而且起到了全局...转载 2018-04-26 14:56:23 · 143 阅读 · 0 评论 -
【java设计模式】桥连接模式 ---JDBC
关于JDBC桥连接模式对应的角色想了很久,如果出错的地方希望大神能够指出,非常感谢!!!!一定要指出!!!举个JDBC小栗子步骤一:建立一个桥连接的接口public interface JDBC_API { public void connection() ;} 步骤二:建立多个类(模拟我们发起连接的类)实现该接口public class Mysql implements JDBC_API...原创 2018-04-20 18:50:51 · 678 阅读 · 1 评论 -
在自己的本机中访问某一个接口(访问别人的电脑时报错)
public static String postUrlContent(String url, String param) {PrintWriter out = null; BufferedReader in = null; String result = ""; try{ URL realUrl = new URL(url); // 打开和UR...转载 2018-04-24 16:58:46 · 659 阅读 · 0 评论 -
【Java设计模式】装饰者模式
步骤一:定义一个基类,里面放置需要装饰的方法,基类可以是类,也可以是接口public interface Sourceable { public void method();}步骤二:定义一个被装饰类,继承(实现)基类public class Source implements Sourceable{ @Override public void method() { System...原创 2018-04-20 11:38:11 · 130 阅读 · 0 评论 -
java浅克隆和深克隆(串行化)
小栗子实现浅克隆(对象中的都是基本类型变量才可以)实现Cloneable接口,重写clone()方法,通过super.clone()来实现克隆public class Student implements Cloneable { private String name; private int age; public Student(String name,int age) { ...原创 2018-04-19 23:31:33 · 401 阅读 · 0 评论 -
【java设计模式】建造者模式---StringBuilder讲解
在复习设计模式的时候,了解到StringBuilder使用了建造者模式,在此记录一下。首先我们要了解建造者模式的构成。建立一个建造者模式的小栗子。我们建造一个属性为Person的产品,同时创建Man 和Women.1.创建接口PersonBuilder,其中包含需要创建的 head body foot 即 Builder2.创建实现类WomenBuilder和ManBuilder来实现Per...原创 2018-04-19 14:42:52 · 5680 阅读 · 2 评论 -
JVM内存管理机制和垃圾回收机制
一个java程序的编译和执行过程如下:.java ——编译——> .class类加载器负责加载各个字节码文件(.class)加载完.class后,由执行引擎执行,在执行过程中,需要运行时数据区提供数据根据 JVM 规范,JVM 内存共分为虚拟机方法区、堆、栈、程序计数器、本地方法栈五个部分。PC寄存器(程序计数器):用于记录当前线程运行时的位置,每一个线程都有一个独立的程序计数器,线程的阻塞...转载 2018-05-08 15:22:21 · 2855 阅读 · 0 评论 -
查询多个关联表的数据输出到Excel
举个小栗子:查询student表中的数据,并且通过students中的关联字段cid查询classtable中的信息。步骤一:可以选择建立一个连接池。import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.util.LinkedList;publ...原创 2018-06-11 19:12:32 · 3084 阅读 · 0 评论 -
【Quartz】定时任务小练习
定时任务最主要的三个核心任务 Job调度器Scheduler触发器Trigger [Scheduler只有在调用start()方法后,才会真正地触发trigger(即执行job)]Job:中包含了任务执行的逻辑,Scheduler负责扫描需要执行的Job任务,Tragger负责定时。同样重要的几个成员JobDetail :客户端创建(我们自己),绑定Job的实例信息。一...原创 2019-03-28 19:38:58 · 508 阅读 · 0 评论 -
阿里云短信发送
建立一个发送短信的工具类 MessageUitlpublic class MessageUitl { // 必填:短信签名 private String signName; // 开发者自己的AK private String accessKeyId; // 开发者自己的AK(密钥) private String accessKeySecret; // 产品...原创 2018-11-18 16:43:43 · 387 阅读 · 0 评论 -
丰桥接口调用
API_SDK文档地址页面底下有一个丰桥API-JAVA-SDK下载,点击直接可以下载示例代码和一个包含核心对象: CallExpressServiceTools 的jar文件下载下来之后将改jar放入项目中的同时要修改pom文件,将改文件包含到项目中 ${project.basedir}和${basedir}是一样的,指代当前根目录 <dependency> ...原创 2018-11-18 15:10:34 · 5841 阅读 · 3 评论 -
oss图片上传的简单使用
http://www.cnblogs.com/wumian1360/p/8486726.html原创 2018-11-01 18:44:52 · 6593 阅读 · 0 评论 -
SpringBoot方法中获取Request和Response
很多时候方法中没有带参数HttpServletRequest 和HttpServletResponse ,但是我们需要用到这个参数。场景:我们将用户的登陆信息存入了redis以token作为Key,在某些地方需要获取用户信息,我们就需要获取请求头中的token。这时候我们需要获取HttpServletRequest来获取 请求头。public Integer getUserId(...原创 2018-10-30 18:16:55 · 3913 阅读 · 0 评论 -
MongoTemplate进行增删改查
1.首先pom.xml<!-- springboot 整合 mongodb --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</...原创 2018-10-29 19:08:36 · 40048 阅读 · 6 评论 -
MD5加时间戳加密验证签名
项目中App与系统进行数据交互(数据的存储,短信验证的发送)时需要对交互的数据进行签名校验,防止数据被篡改。自己单独写了个小例子第一步:pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sc...原创 2018-08-27 14:01:01 · 19718 阅读 · 10 评论 -
资源树的查询以及返回前端
部门,用户,角色,资源它们之间的表结构以及关系对应如下。部门菜单和 资源菜单 都是树形结构。现需要将资源的树结构信息进行查询然后以树形状态返回给前台。因为多处需要用到树形结构,所以我们建立一个树的工具类的这个一个实体对象(TreeUtil)。其中包含需要查询的level,以及可能用到树形结构需要传入的参数,如userId,resourceId,roleId等。传入userId的情况是:...原创 2018-06-22 13:03:12 · 1677 阅读 · 0 评论 -
java将数据库里的数据导出到excel
项目中很多都会用到将数据导出到excel,然后对数据进行整理分析,在之前的项目中,多处用到此功能,也走了很多弯路,从一开始的tableExcel到现在的poi,从一开始用HSSFWorkbook再到XSSFWorkbook,一步步优化,废话少说,直接开始.项目框架1,后台:spring+springmvc+mybatis2,前台: bootstrap+jQuery+ajax3,项目管理:maven...转载 2018-06-12 10:04:57 · 455 阅读 · 2 评论 -
【多线程】BlockingQueue阻塞队列
BlockingQueue继承Queue接口BlockingQueue加入了阻塞等待的操作,可以理解成如果队列满了,插入任务就在门口等着,不抛出错误信息,直到有元素从队列中取出,队列有空位了,再进行插入操作,相应的你还可以加入等待超时机制,如果过时了,就不等了。public class BlockingQueueTest { public static void main(String[] ...转载 2018-04-13 17:55:55 · 172 阅读 · 0 评论 -
【多线程】线程工厂模式创建多线程
通过实现ThreadFactory 来创建线程工厂public class TestingThreadFactory implements ThreadFactory{ //Executors 线程池的顶级接口,创建默认线程工厂 ThreadFactory factory=Executors.defaultThreadFactory(); @Override ...原创 2018-04-13 16:26:22 · 1035 阅读 · 0 评论 -
webservice注解配置wsdl文件
步骤一:建立服务需要返回的实体类User步骤二:注解的方式配置wsdl文件步骤三:我们看一下配置之前的wsdl文件默认生成格式返回类型 user对象步骤四:改过wsdl文件配置之后我们生成的文件结构如下,增强了我们的可读性...原创 2018-02-12 22:34:18 · 553 阅读 · 0 评论 -
webservice 发布服务
步骤一:首先建立一个返回类型的实体对象类步骤二:建立服务对象,并建立获取相关信息的方法(这里以获取用户信息为例)步骤三:运行发布后进入我们发布的IP地址wsdl地址:http://192.168.0.104:8080/ws/userService11?WSDL步骤四:我们使用jdk的bin目录下自带的wsimport.exe将其生成.java文件我们可以看到发布的服务xml文件中,该服务的访问方式...原创 2018-02-12 21:58:50 · 9485 阅读 · 3 评论 -
Socket简单通信
简单模拟服务器和客户端进行通信。Socket类代表一个客户端套接字,创建远程服务所需要的Socket;(套接字:TCP用主机的IP地址加上主机上的端口号作为TCP连接的端点,这种端点就叫做套接字(socket)或插口。套接字用(IP地址:端口号)表示。)ServerSocket与Socket不同,ServerSocket是等待客户端的请求,一旦获得一个连接请求,就创建一个Socket示例来与客户端...原创 2018-02-11 22:40:34 · 219 阅读 · 0 评论 -
tomcat端口冲突解决 Address already in use: JVM_Bind <null>:8080
java.net.BindException: Address already in use: JVM_Bind :80801.端口冲突解决措施如下:cmd命令模式下输入netstat -ano,然后找到占用8080端口的那个进程 如下图所示可以看到占用8080端口进程的PID号是5336,然后转载 2018-01-30 15:32:45 · 223 阅读 · 0 评论 -
jdbc访问oracle存储过程和存储函数
在Oracle中建立一个存储过程调用存储过程测试一下步骤二:在项目中src下导入c3p0-config.xml文件,用来连接数据库步骤三:建立获取连接的JdbcUtil类步骤四:调用存储过程测试原创 2018-01-25 23:42:08 · 192 阅读 · 0 评论 -
myeclipse放入项目按钮没反应的解决办法
进入MyEclipse的工作目录下/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.ast.deploy.core.prefs把com.genuitec.eclipse.ast.deploy.core.prefs文件删除原创 2018-01-30 18:26:40 · 365 阅读 · 0 评论 -
商城项目练习的注意点(数据的获取,hql查询 ,离线查询,分类判断,下拉列表框选中,隐藏字段传递数据等)
1.首页展示我们可以将需要在首页直接展示的数据存放在值栈中。然后在页面中进行提取时直接从值栈获取(不需要通过#)例如:这种只在首页显示 ,出现几率不大的 部分 查找出来可以放置 在值栈中我们也可以将一级分类查询的商品展示的信息存入到session中(整个项目中,几乎每个页面都原创 2017-12-21 19:30:20 · 222 阅读 · 0 评论 -
商城项目中商品图片的上传与更新
我们在练习商城项目中会涉及商品图片的上传与更新,记录一下。注意点一:提交的表单中要设置提交的方法为post,以及enctype(如下所示)上传的标签名为upload (可以随意取,但是要与后面对应)图片更新的操作中,图片所属的商品的id,以及图片要通过隐藏字段传递到action更新操作(这里的upload就是上文那个标签的name,要与之对应)原创 2018-01-13 21:16:27 · 2218 阅读 · 0 评论 -
Java邮件发送
在项目中的用户注册模块我们通常会用到通过邮件发送激活码来进行激活用户。 这样我们就需要学习到邮件的发送。原创 2017-12-19 11:54:46 · 194 阅读 · 0 评论 -
SpringBoot入门小栗子
1.创建一个maven项目在pom.xml中我们首先要写入依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.2.RELEAS...原创 2018-03-29 18:15:04 · 239 阅读 · 0 评论 -
集合中数据去重
原创 2018-03-23 22:58:06 · 309 阅读 · 0 评论 -
【多线程】java 线程中一些模糊概念的解释
1,并发与并行 并发---线程之间相互切换执行 并行---线程之间齐头并进,主要体现在多处理器的环境下 2。thread实例与创建的线程之间的关系 属于两个部门,即使线程结束了,实例依然存在。主程序结束的时,并不代表创建的线程也结束,如main方法 3。 Thread.sleep(2000),让当前线程休眠2秒,捕捉Interrupted exception 4。synchro...转载 2018-04-13 13:52:59 · 89 阅读 · 0 评论 -
【多线程】线程状态,线程组,线程锁,线程中断
进程拥有一个完整的虚拟地址空间,不依赖于线程而独立存在;线程是进程的一部分,没有自己的地址空间,与进程内的其他线程一起共享分配给该进程的所有资源。一个线程可以创建和撤消另一个线程,线程有时被称为轻量级进程(Lightweight Process,LWP)程序执行流的最小单元,一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。线程有创建,可运行,运行中,阻塞,死亡五种状态。1.创...原创 2018-04-13 13:46:14 · 428 阅读 · 1 评论 -
集合复习
集合是一个用来存放对象的容器。注意:①、集合只能存放对象。比如你存一个 int 型数据 1放入集合中,其实它是自动转换成 Integer 类后存入的,Java中每一种基本类 型都有对应的引用类型。 ②、集合存放的是多个对象的引用,对象本身还是放在堆内存中。 ③、集合可以存放不同类型,不限数量的数据类型。 集合主要分为两大类:Iterable接口 和 Ma...原创 2018-04-12 19:00:12 · 142 阅读 · 0 评论 -
Java反射
反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码))一、反射的概述JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖一个类,必须先要获取到该类的字节码文件对象。而解...转载 2018-04-17 19:24:12 · 121 阅读 · 0 评论 -
【IO流】序列化与反序列化
序列化与反序列化把Java对象转换为字节序列的过程称为对象的序列化。把字节序列恢复为Java对象的过程称为对象的反序列化。序列化的必要性Java中,一切都是对象,在分布式环境中经常需要将Object从这一端网络或设备传递到另一端。这就需要有一种可以在两端传输数据的协议。Java序列化机制就是为了解决这个问题而产生。如何序列化一个对象一个对象能够序列化的前提是实现Serializable接口,Ser...转载 2018-04-17 18:58:27 · 135 阅读 · 0 评论 -
【IO流】java IO输入输出复习
因为图太大截不下就分开截了。练习小栗子:创建文件夹file1,将该文件夹中的2.txt 复制到1.txtpublic class copyFile { public void copyTxt() throws IOException { int num=0; File file1=new File("D:/file1/1.txt"); File file2=new...原创 2018-04-17 18:42:47 · 131 阅读 · 0 评论