-
增强for循环的用法
所属栏目:[Java] 日期:2020-12-15 热度:143
一、增强for循环 增强for循环的作用:?简化迭代器的书写格式。(注意:增强for循环的底层还是使用了迭代器遍历。) 增强for循环的适用范围:?如果是实现了Iterable接口的对象或者是数组对象都可以使用增强for循环。 增强for循环的缺点:增强for循环和iterator[详细]
-
if-else和if if的对比
所属栏目:[Java] 日期:2020-12-15 热度:191
?[详细]
-
Java(2)多线程
所属栏目:[Java] 日期:2020-12-15 热度:81
@ 目录 一、基本概念的理解 1、程序、进程、线程 2、单核CPU与多个CPU 3、串行、并行、并发 二、多线程 1、java中的多线程举例 2、多线程优点 3、何时需要多线程 三、多线程的创建和使用★★★★★ 1、方式一:继承Thread类(JDK1.5之前的两种之一) 2、方式[详细]
-
Java(4)枚举类
所属栏目:[Java] 日期:2020-12-15 热度:129
@ 目录 一、枚举类简介 二、自定义枚举类 1、方式一:jdk5.0之前,自定义枚举类 2、方式二:jdk5.0,用enum关键字定义枚举类 三、Enum类的主要方法 1、toString() 2、values() 3、valueOf(String str) 四、使用enum关键字定义的枚举类去实现接口 1、情况一 2[详细]
-
Java(6)集合
所属栏目:[Java] 日期:2020-12-15 热度:93
一、Java集合框架概述 1、什么是集合 集合框架 :用于存储数据的容器。 数组、集合等存储数据的结构,叫 Java容器 。 此时的存储,是指内存层面的存储,不涉及持久化的存储。 任何集合框架都包含三大块的内容:对外的接口、接口的实现、对集合运算的算法。 2[详细]
-
IDEA for Mac 快捷键整理
所属栏目:[Java] 日期:2020-12-15 热度:62
一、Mac键盘符号和修饰键说明 ? Command ?Shift ? Option ? Control ?? Return/Enter ? Delete ? 向前删除键(Fn+Delete) ↑ 上箭头 ↓ 下箭头 ← 左箭头 → 右箭头 ? Page Up(Fn+↑) ? Page Down(Fn+↓) Home Fn + ← EndFn + → ? 右制表符(Tab键)[详细]
-
Java(5)注解
所属栏目:[Java] 日期:2020-12-15 热度:108
@ 目录 一、注解的理解 二、注解应用示例 1、示例一:生成文档相关的注解 2、示例二:在编译时进行格式检查(JDK内置的三个基本注解) 3、示例三:跟踪代码依赖性,实现替代配置文件功能 三、自定义注解 四、JDk中的元注解 1、理解 2、元注解 五、利用反射获取[详细]
-
设计模式之建造者设计模式
所属栏目:[Java] 日期:2020-12-15 热度:174
这是设计模式系列的第二篇——建造者设计模式,我希望推送的文章是一个系列的,尽量保持一样的写作风格,尽量把我理解的阐述清楚,关于建造者设计模式主要从以下几个方面来学习,具体如下: 概述 本质 关键概念 具体实现 总结 概述 建造者设计模式(Builder P[详细]
-
Java系列之内部类
所属栏目:[Java] 日期:2020-12-15 热度:131
今天温习一下 Java 中的内部类,内部类一般有如下几种:静态内部类、成员内部类、匿名内部类和方法内部类,下文中将主要介绍静态内部类和成员内部类,主要内容如下: 概述 静态内部类 成员内部类 匿名内部类和方法内部类 总结 概述 顾名思义内部类就是在一个[详细]
-
设计模式之观察者设计模式
所属栏目:[Java] 日期:2020-12-15 热度:102
原文首发于微信公众号: jzman-blog ,欢迎关注交流! 最近补一下设计模式相关的知识,关于观察者设计模式主要从以下几个方面来学习,具体如下: 什么是观察者设计模式 关键概念理解 通知观察者的方式 观察者模式的实现 观察者模式的优缺点 使用场景 下面来一[详细]
-
Java系列之数组
所属栏目:[Java] 日期:2020-12-15 热度:161
原文首发于微信公众号:jzman-blog,欢迎关注交流! 本来打算温习一下 注解 方面的内容作为今天的推送,但是来不及写了,那就一起来看一下数组,数组是用来存放一组具有相同类型数据的数据结构,通过 下标 来访问数组中的元素。 数组的定义 数组的定义主要有[详细]
-
Java系列之泛型
所属栏目:[Java] 日期:2020-12-15 热度:143
自从 JDK 1.5 提供了泛型概念,泛型使得开发者可以定义较为安全的类型,不至于强制类型转化时出现类型转化异常,在没有反省之前,可以通过 Object 来完成不同类型数据之间的操作,但是强制类型转换(向下转型)在不确定具体类型的情况下会出错,泛型机制的引[详细]
-
关于HashCode和equals方法在HashSet中的使用
所属栏目:[Java] 日期:2020-12-15 热度:116
Object类是类层次结构的根类,故所有的类都是先该类的方法,其中HashCode()和equals()方法也是该类的方法。 1.HashCode()方法 Object类中HashCode()方法实现如下: public native int hashCode (); 返回:该对象的哈希值,可提高哈希表的性能。 HashCode: 1.[详细]
-
JVM性能调优(1) —— JVM内存模型和类加载运行机制
所属栏目:[Java] 日期:2020-12-15 热度:69
一、JVM内存模型 运行一个 Java 应用程序,必须要先安装 JDK 或者 JRE 包。因为 Java 应用在编译后会变成字节码,通过字节码运行在 JVM 中,而 JVM 是 JRE 的核心组成部分。JVM 不仅承担了 Java 字节码的分析和执行,同时也内置了自动内存分配管理机制。这个[详细]
-
JSP自定义标签/自定义标签打包
所属栏目:[Java] 日期:2020-12-15 热度:183
有这样一个业务需求: 当我们在编辑某个用户时,需要设置该用户的角色,在转到编辑页面时,就需要自动勾选上该用户已经选择的角色,如下图: 当我们点击编辑时,会查询用户详细信息,以及角色集合传到编辑页面。 用c:forEach 标签将所有角色显示出来,那如何[详细]
-
基于 Javassist 和 Javaagent 实现动态切面
所属栏目:[Java] 日期:2020-12-15 热度:129
一、背景介绍 1、需求说明 需求是在程序运行期间,向某个类的某个方法前、后加入某段业务代码,或者直接替换整个方法的业务逻辑,即业务方法客制化。注意是运行期间动态更改,做到无侵入,而不是事先在代码中写死切入点或逻辑。 拿到这个需求,首先想到的是[详细]
-
自己封装的一个java图片验证码
所属栏目:[Java] 日期:2020-12-15 热度:56
验证码生成器: ? 1 package com.lz.Tools; 2 3 import java.awt.Color; 4 java.awt.Font; 5 java.awt.Graphics; 6 java.awt.Graphics2D; 7 java.awt.image.BufferedImage; 8 java.util.Random; 9 10 /** 11 * 验证码生成器 12 * 13 * @author bojiangzhou 1[详细]
-
java文件上传下载
所属栏目:[Java] 日期:2020-12-15 热度:63
文件上传首先要引入两个核心包 commons-fileupload-1.2.1.jar commons-io-1.4.jar ? 下面是对文件上传和下载的一些代码做的一个简单封装,可以方便以后直接使用【使用时将封装好的jar包直接导入工程中即可使用】 ? 上传文件核心代码 1 package com.lizhou.fi[详细]
-
session没有过期,其保存的数据无故丢失的原因
所属栏目:[Java] 日期:2020-12-15 热度:58
问题: 我们经常会做到的一个功能,将登录用户信息保存到session中,在页面上显示登录用户名。但是,如果很短时间内甚至几秒没有刷新这个页面的话,这个用户名就消失了,其实就是session中保存的用户数据丢失了。 百度过很多,大部分说是session过期时间设置[详细]
-
多租户个性化服务路由
所属栏目:[Java] 日期:2020-12-15 热度:109
场景描述 不同租户访问同一个地址,tenant100租户有一个个性化服务 service-b-100 ,在API层需要将其路由到 service-b-100 服务,其它租户则路由到 service-b ,达到个性化需求。 在服务间, service-a 调用 service-b ,tenant100租户访问时需要调用他的个[详细]
-
基于SpringBoot搭建应用开发框架(二) —— 登录认证
所属栏目:[Java] 日期:2020-12-15 热度:161
零、前言 本文基于《基于SpringBoot搭建应用开发框架(一)——基础架构》,通过该文,熟悉了SpringBoot的用法,完成了应用框架底层的搭建。 在开始本文之前,底层这块已经有了很大的调整,主要是SpringBoot由之前的 1.5.9.RELEASE 升级至?2.1.0.RELEASE 版本[详细]
-
并发编程 —— 深入理解线程池
所属栏目:[Java] 日期:2020-12-15 热度:118
概述 在程序中,我们会用各种池化技术来缓存创建昂贵的对象,比如线程池、连接池、内存池。一般是预先创建一些对象放入池中,使用的时候直接取出使用,用完归还以便复用,还会通过一定的策略调整池中缓存对象的数量,实现池的动态伸缩。 由于线程的创建比较[详细]
-
谈谈常量和变量
所属栏目:[Java] 日期:2020-12-15 热度:190
什么叫常量和变量: 常量:程序在运行过程中不会发上改变的量叫做常量。 变量:程序在运行过程中会发生改变的量叫做变量。 变量的声明: 在java中,声明一个变量需要以下三要素:变量名称,变量类型,作用域。 变量名称很简单,只要不是java关键字即可,但是[详细]
-
io流总结
所属栏目:[Java] 日期:2020-12-15 热度:188
java流的分类: 1,按照流向分: ? 怎么区分输入流和输出流呢,输入输出流是相对于计算机内存来说的,为不是相对于源和目标,比如说通过java去读取一个文件里面的内容就是需要把文件的内容通过流读取到内存中, 对于内存来说,是输入,所以叫输入流,反之亦[详细]
-
lambda表达式
所属栏目:[Java] 日期:2020-12-15 热度:85
Lambda表达式的特性: 可以把Lambda表达式理解为简洁地表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表。 ?匿名——我们说匿名,是因为它不像普通的方法那样有一个明确的名称:写得少而想[详细]