![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 65
Eve慕
这个作者很懒,什么都没留下…
展开
-
Spring Security + JWT 前后端分离 调用外部登录接口 登录进阶
本文章适合对Spring Security有一定了解的同学阅读。1. 登陆流程项目中需要后端进行登陆–>生成token–>鉴权等一系列操作,使用Spring Security完成。和网上大部分资料不同的是,这里的用户名和密码并不是存在数据库中,而是调用其他服务以及封装好的RPC接口来实现的。...原创 2019-12-18 15:41:34 · 5514 阅读 · 0 评论 -
Spring创建对象的几种方式
Spring的核心思想是IOC,即所有对象的创建都是通过Spring,而不需要自己手动生成。Spring创建对象有以下几种方式:无参构造器有参构造器工厂模式 静态方法非静态方法构造器创建对象applicationContext.xml<beans xmlns="http://www.springframework.org/schema/beans" x...原创 2018-03-26 11:04:59 · 6733 阅读 · 0 评论 -
thymeleaf使用onclick传递参数
Springboot中使用thymeleaf,在用户列表中希望点击删除按钮就删除当前用户,需要传递当前用户的id。<table class="table table-bordered table-hover"> <thead> <tr> <th>id</th>...原创 2018-06-10 15:28:19 · 34975 阅读 · 18 评论 -
bootstrap模态框——使用一个模态框完成两个功能
在用户列表中希望能用同一个模态框完成添加用户和修改用户两个功能。 添加用户 修改用户这两个功能在提交表单之后都会返回原页面,所以使用ajax进行处理 主要的难点在于: 1、在点击不同按钮时调用不同函数。 在点击修改页面时,需要将当前用户的信息传入模态框中,并设置用户名字段为不可修改,点击模态框中提交时调用后台修改的方法;在点击添加页面时,需要清空之前模态框中数据,点击...原创 2018-06-29 17:07:58 · 8800 阅读 · 1 评论 -
前后台$.post交互并返回JSON对象(包括JSONObject没有fromObject解决方法)
后台传入参数,前端接收进行处理并执行相应的函数前端代码 //删除用户 function deleteUser(id) { alert(id); if(!id){ alert('id不存在'); return false; } $.ajax({ ...原创 2018-06-10 20:32:49 · 2826 阅读 · 1 评论 -
创建线程的三种方式(包括例子和源码解释)
一般来说创建线程的方法有三种,分别是:1.继承Thread类来创建一个线程第一步:定义一个类继承Thread类,并实现run()方法,run()方法中的内容即为线程需要完成的功能class MyThread extends Thread{ String name; public MyThread(String name) { this.name = name; System.out.p...原创 2018-07-08 20:55:09 · 1973 阅读 · 0 评论 -
【线程池】深入理解ThreadPoolExecutor类
Java并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务? 在Java中可以...转载 2018-07-02 16:23:34 · 503 阅读 · 0 评论 -
Java中的volatile关键字
Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模...转载 2018-07-16 21:13:27 · 151 阅读 · 0 评论 -
双重检查锁定与延迟初始化
原文地址:http://www.infoq.com/cn/articles/double-checked-locking-with-delay-initialization 在java程序中,有时候可能需要推迟一些高开销的对象初始化操作,并且只有在使用这些对象时才进行初始化。此时程序员可能会采用延迟初始化。但要正确实现线程安全的延迟初始化需要一些技巧,否则很容易出现问题。比如,下面是非线程...转载 2018-07-16 21:16:43 · 311 阅读 · 0 评论 -
【线程池】深入理解Executors类
在前面一篇文章线程池——深入理解ThreadPoolExecutor中,讲解了线程池的一种实现方法ThreadPoolExecutor类。而在Java中,Executors类也是一种常用的创建线程池的方式。 Executors类可以用于方便的创建线程池。它为Executor,ExecutorService,ScheduledExecutorService,ThreadFactory...原创 2018-07-04 10:57:48 · 2581 阅读 · 0 评论 -
Java中几种常量池比较
目录class常量池什么是字面量和符号引用字符串常量池字符串常量池的设计思想字符串常量池的位置字符串常量池内部结构字符串常量池里放的是什么?运行时常量池总结Java中主要有三种常量池,分别是class常量池、字符串常量池和运行时常量池。我们对这三个常量池进行对比。class常量池我们写的每一个Java类被编译之后都会生成一个对应的Class文件。Cl...原创 2018-07-24 19:55:32 · 2303 阅读 · 2 评论 -
【线程池】Executors中的newSingleThreadExecutor和newFixedThreadPool(1)的区别
在上一篇【线程池】深入理解Executors类时,提到了newSingleThreadExecutor和newFixedThreadPool(1)的区别,查阅了大量资料,自己也做了一些实验,但是还是有很多不清楚的地方,这篇文章主要是用作讨论,如果有大佬有好的回答,拜托请多多指教。大部分博客中都提到两点:1、Single方法可以保证线程执行顺序,采用FIFO,先提交的任务先执行,而Fixed(1)不...原创 2018-07-07 15:47:38 · 10899 阅读 · 4 评论 -
Spring AOP注解失效问题
需求需要自定义注解,但是在实际应用中发现注解并没有生效,查询之后发现原因如下:同一个类X中有方法A和方法B,其中方法B上加了注解,方法A又调用了方法B,此时注解无效。如果是另一个类Y中的方法调用类X中的方法B,此时注解生效。因为在类Y中是通过类X的对象调用方法B的,因为此时Spring会判断方法B上有注解,所以会动态生成类X的代理对象,并使用这个代理对象来调用方法B。但是在同一个类中的方法A...原创 2019-07-16 11:49:51 · 1399 阅读 · 0 评论 -
HashCode和HashMap
来自https://www.cnblogs.com/szlbm/p/5504623.html前言Object提供给我们了一个Native的方法“public native int hashCode();”,本文讲讲Hash是什么以及HashCode的作用Hash先用一张图看下什么是Hash Hash是散列的意思,就是把任意长度的输入,通过散列算法变换成固定长度的输出,...转载 2018-03-19 16:04:14 · 2233 阅读 · 0 评论 -
事务的传播行为
来自事务的传播行为我们都知道事务的概念,那么事务的传播特性是什么呢? 在我们用SSH开发项目的时候,我们一般都是将事务设置在Service层 那么当我们调用Service层的一个方法的时候它能够保证我们的这个方法中执行的所有的对数据库的更新操作保持在一个事务中,在事务层里面调用的这些方法要么全部成功,要么全部失败。那么事务的传播特性也是从这里说起的。 如果你在你的Service层的这个方法中,除了转载 2018-03-15 17:29:50 · 207 阅读 · 0 评论 -
ssm分页方法
最近写SSM的项目,需要用到分页,但是使用PageHelper插件的分页老是出现问题,于是使用了老师发的demo里面的分页方法。Page.javapackage com.zhc.util;public class Page { int start=0; int count = 5; int last = 0; public int getStart() { retur原创 2018-01-11 20:16:28 · 430 阅读 · 0 评论 -
JAVA的包装类
Integer integer = 10;System.out.println(integer.MAX_VALUE); System.out.println(integer.MIN_VALUE); System.out.println(integer.SIZE); Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决转载 2017-08-16 21:16:51 · 287 阅读 · 0 评论 -
JAVA基本数据类型
Java中有8种基本类型,boolean、byte、short、int、long、float、double、char,类型分为:布尔型、数值型、字符型,其中,数值型:整型、浮点型。布尔型(boolean)、整型(byte、short、int、long)、浮点型(float、double)、字符型(char)。每种基本都对应有复合包装类,javase5的自动包装功能将自动地将基本转载 2017-08-16 20:44:36 · 218 阅读 · 0 评论 -
面向对象
转自http://www.cnblogs.com/seesea125/archive/2012/04/03/2431176.html作者:赵学智一、 面向对象,这个对象到底是什么? 这个对象不是C#中的实例,C#中我们把一个类的实例也叫做对象,这种对象严格的说应该是面向对象的编程实现(OOP)中的对象,面向对象编程,也不是面向类的实例编程。对象的定义是人们要转载 2017-09-22 20:17:32 · 204 阅读 · 0 评论 -
StringBuffer类
StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。 所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。 在Strin原创 2017-09-15 15:21:59 · 184 阅读 · 0 评论 -
String类详解
一、String两种实例化方法的区别:String实例化有两种方法:1、直接赋值String str = "abc";此方法是在栈内存中开辟一个叫“str”的空间,在堆内存中开辟一个内容为“abc”的空间,然后让str指向abc如果再定义一个String str2 = "abc";那么str2和str是指向同一个堆内存,而不会重新开辟一个空间。2、构造方法String str = new Strin原创 2017-09-09 16:56:57 · 232 阅读 · 0 评论 -
面向对象——封装性
1、封装的作用面向对象的封装性的主要作用是解决程序的可扩展性。可以在不影响其他部分的情况下修改或者被封装的部分达到对整个程序的扩展。2、怎么样去封装一般使用类进行封装,在类中将属性用private修饰,原创 2017-09-22 21:48:27 · 634 阅读 · 0 评论 -
面向对象——继承
一、什么是继承继承为面向对象三大特性之一。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。主要目的是提高代码的重用性、维护性和扩展性。二、为什么要使用继承很多不同的对象会有相同的属性。比如学生的属性有姓名、性别、学号、年龄、成绩,而工人的属性有姓名、性别、工号、年龄、工龄等。那么我们就需要这样定义: c原创 2017-09-24 15:14:39 · 267 阅读 · 0 评论 -
Java方法的可变参数个数
原文:Java方法的可变参数类型许多Java新人在看到下面的这段代码的时候,都会问一个问题:dealArray方法里那三个小点点是什么啊?[java] view plaincopypublic class TestVarArgus { public static void dealArray(int...转载 2017-12-04 19:04:28 · 202 阅读 · 0 评论 -
JDBC为什么要使用PreparedStatement而不是Statement
本文由 ImportNew - 刘志军 翻译自 Javarevisited。欢迎加入翻译小组。转载请见文末要求PreparedStatement是用来执行SQL查询语句的API之一,Java提供了 Statement、PreparedStatement 和 CallableStatement三种方式来执行查询语句,其中 Statement 用于通用查询, PreparedStatement转载 2017-12-16 13:36:26 · 199 阅读 · 0 评论 -
Java初始化块
原文:初始化块初始化块是什么?在Java中就是在构造器之前执行的一段代码,它的用处是,如果一段初始化处理代码对所有对象完全相同,且无须接受任何参数,就可以把这段提取到初始化块中.在C#中,没有初始化块[java] view plain copypublic class Person { //定义一个初始化块转载 2017-12-07 15:54:48 · 177 阅读 · 0 评论 -
jsp中<fmt>格式化数字标签
最近写分页代码时,需要在jsp中显示“共3页 第3页”的内容,但是参数进行除法运算后自动保留一位小数,显示结果为“共3.0页 第3.0页”。后来找到了标签,代码如下 共 页 第 页一定要添加第一行taglib的引用!type为格式化的类型,可取值有number、currency、percent。value即显示的值。maxFranctionDigits为保留的小数位数。原创 2018-01-11 20:02:36 · 1102 阅读 · 0 评论 -
安装eclipse过程
学习Java第一步就是装eclipse 我每学习一门语言都会先死在安装程序上 这个也一样一、去eclipse官网下载eclipse程序(www.eclipse.org) 最开始我直接点击首页的download下载的只是一个应用程序eclipse-inst-win64.exe点开之后会说缺少什么文件,然后浏览器跳转到JRE Missing的网页去。后来点击download的下面的Other Pack原创 2016-09-01 20:54:06 · 98058 阅读 · 11 评论