java
haijiao12138
走向大佬!放纵能满足低级欲望,克制能满足高级欲望!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SpringAop应用二之Aop实现Redis缓存(自定义注解实现切入)
一.首先实现自定义注解@AutowireRedis,实现该注解的方法会自动实现切面 package com.haijiao12138.demo.spring.util; import java.lang.annotation.*; /** * @author haijiao12138 * @date 2021/8/12 20:57 * @description */ @Documented @Retention(RetentionPolicy.RUNTIME) @Target(Element原创 2021-08-13 01:25:24 · 607 阅读 · 0 评论 -
Cookie和session的区别
cookie数据存放在客户的浏览器上,session数据放在服务器上 ; 所以将登陆信息等重要信息存放为SESSION;其他信息如果需要保留,可以放在COOKIE中。 cookie 和session的区别是:cookie数据保存在客户端,session数据保存在服务器端。 两个都可以用来存私密的东西,同样也都有有效期的说法,区别在于session是放在服务器上的,过期与否取决于服务期的设定,cookie是存在客户端的,过去与否可以在cookie生成的时候设置进去。 ..原创 2021-08-09 17:00:43 · 637 阅读 · 0 评论 -
浅谈ThreadLocal
ThreadLocal是什么? --线程局部变量是局限于线程内的变量,属于线程自身所有,不在多个线程间共享。 java提供ThreadLocal类来支持线程局部变量,是一个实现线程安全的方式。 是否线程安全? --线程安全; 如何保证线程安全的? --ThreadLocal是一种以空间换时间的做法,在每一个Thread里面维护了一个ThreadLocal.ThreadLocalMap把数据进行隔离,数据不共享,自然就没有线程不安全方面的问题了; ThreadLocal中的值存在了哪里? --原创 2021-07-28 21:28:01 · 133 阅读 · 0 评论 -
百万数据中取前100个最大的构建小顶堆
步骤: 1-取100万个数据的前一百个最大的,需要构建小顶堆, 2-先取100个数据构建成小顶堆,每次和最小的元素比较,比最小的元素小,直接舍去, 3-比最小的元素大,将最小的元素舍去,然后就如新元素重新构建。 ...原创 2021-07-25 22:54:39 · 380 阅读 · 0 评论 -
LeetCode算法之53-最大子序和
给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例 1: 输入:nums = [-2,1,-3,4,-1,2,1,-5,4] 输出:6 解释:连续子数组[4,-1,2,1] 的和最大,为6 。 示例 2: 输入:nums = [1] 输出:1 示例 3: 输入:nums = [0] 输出:0 示例 4: 输入:nums = [-1] 输出:-1 示例 5: 输入:nums = [-100000] 输出:-100000 提示:...原创 2021-07-25 21:29:18 · 178 阅读 · 0 评论 -
LeetCode算法之217-存在重复元素
给定一个整数数组,判断是否存在重复元素。 如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。 示例 1: 输入: [1,2,3,1] 输出: true 示例 2: 输入: [1,2,3,4] 输出: false 示例3: 输入: [1,1,1,3,3,4,3,2,4,2] 输出: true 亮点:集合Set有去重的功能 class Solution { public boolean containsDuplicate(int[.原创 2021-07-25 21:21:57 · 130 阅读 · 0 评论 -
引用与对象
Java的四种引用类型 每种编程语言都有自己操作内存中元素的方式,例如在 C 和 C++ 里是通过指针,而在 Java 中则是通过“引用”。在 Java 中一切都被视为了对象,但是我们操作的标识符实际上是对象的一个引用(reference)。 例如: //创建一个引用,引用可以独立存在,并不一定需要与一个对象关联 String s; 通过将这个叫“引用”的标识符指向某个对象,之后便可以通过这个引用来实现操作对象了。 String str = new St...原创 2021-07-15 10:49:03 · 272 阅读 · 0 评论 -
JVM相关
1-Java内存区域与内存溢出异常 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。 1.1-运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域 有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是 依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范》的规定,Java虚拟机所管理的内存 将会包括以...原创 2021-07-13 16:56:54 · 104 阅读 · 0 评论 -
红黑树的特性
红黑树定义与描述: 近似平衡的二叉树 心是黑的-->根是黑的 要么红 要么黑 两颗红心不能靠近--> 不能有连续的两个红色节点 所有的叶子节点都是黑色的 从任意一个节点开始 到其所有的叶子节点经过的黑色的节点数量一致 图解如下:黑色代表黑节点,红色代表红节点; ...原创 2021-07-12 23:50:57 · 126 阅读 · 2 评论 -
java基础-数组扩容
数组与链表的比较: 数组通过下标访问的话是O(1) 数组一旦声明 长度就是固定的 数组的数据是物理逻辑均连续的 链表增删要快一些, 数组遍历快一些 长度一定的话, 数组的存储空间比链表要小 ArrayList: ArrayList是List接口的实现类,它是支持根据需要而动态增长的数组;java中标准数组是定长的,在数组被创建之后,它们不能被加长或缩短。这就意味着在创建数组时需要知道数组的所需长度,但有时我们需要动态程序中获取数组长度。Ar...原创 2021-07-12 21:39:29 · 632 阅读 · 1 评论 -
java-代理机制
1-代理模式 代理(Proxy)是一种设计模式。提供了对目标对象另外的访问方式,即通过代理对象访问目标对象,这样的优点是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。 编程思想:不随意去修改别人已经写好的代码或者方法,如果需要修改,通过代理的方式来拓展该方法。 例子:比如邀请一位明星,那么并不是直接连线邀请明星,而是联系明星的经纪人来达到同样的目的,明星就是一个目标对象,他只要负责活动中的节目,而其他琐碎的事情就交给他的代理人(经纪人)来解决,这就是生活中的一个代理的例子;原创 2021-07-12 01:38:19 · 195 阅读 · 1 评论 -
Java接口实现与继承
1---extends与implements的区别 1.extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承, 2.JAVA中不支持多重继承,但是可以用接口来实现,这样就要用到implements, 3.继承只能继承一个类,但implements可以实现多个接口,用逗号分开就行了 , 比如 class A extends B implem...原创 2019-11-05 16:02:27 · 227 阅读 · 0 评论 -
SpringBoot创建失败
1---创建SpringBoot应用程序时,显示报错,无解,如下图所示: 解决如下: 2--一般从网上直接copy的文本代码好多格式会有问题,例如: 1---大括号或者小括号丢失 2--括号或者标点的英文状态不符合; 将文本改为英文状态的符号即可; ...原创 2019-10-28 14:11:48 · 897 阅读 · 0 评论 -
Java集合
Collection: collection接口中的常用方法 boolean add(E e)----向集合中添加一个元素,E 是元素的数据类型 1111 boolean addAll(Collection c) ---向集合中添加集合 c 中的所有元素 1111 vo...原创 2019-10-25 10:10:11 · 143 阅读 · 0 评论 -
打印水仙花数
题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如: 153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 package java经典例题; /** * 打印水仙花数 * @author houyuanbo * */ import ...原创 2019-01-07 14:28:26 · 166 阅读 · 0 评论 -
JAVA基础编程(一)
1-静态static:只在静态方法区占用一块内存,会相互覆盖:(相互共享,静态成员只保留一份) 存在多个相同的变量内存时,转换定义静态成员节省内存: 2-静态方法:只能访问静态变量,对应多个对象,可以通过对象访问: ...原创 2019-04-08 09:38:40 · 149 阅读 · 0 评论 -
SpringMvc(一)
原创 2019-04-11 18:40:15 · 112 阅读 · 0 评论 -
JAVA基础编程(二)
System.out.println(Math.PI); System.out.println(Math.E); System.out.println(Math.round(3.5)); System.out.println(Math.sqrt(6)); System.out.println(Math.pow(3,6)...原创 2019-04-08 17:27:52 · 153 阅读 · 0 评论 -
JAVA基础编程(三)
可变参数: 效率比对:函数: F5:刷新 F2:重命名原创 2019-04-09 17:00:57 · 116 阅读 · 0 评论 -
Java编程基础(四)String相关比较
1.String 不可变数组序列 比较String对象时,我们一般比较的是它的值,所以用equals方法; "=="是用来判断两个对象是否相同的 2.StringBuilder 可变的字符序列,数组内容可以修改 线程不安全 效率高 一般常用 StringBuilder 定义的对象调用的方法大都是从他继承的父类AbstractStringBuilder中实现的方法。 ...原创 2019-08-24 16:11:37 · 118 阅读 · 0 评论 -
Java编程基础(四)日期类相关
日期操作: 格式化日期制作:原创 2019-08-24 19:44:28 · 123 阅读 · 0 评论 -
java求素数
程序2】 FindPrimeNumber.java 题目:判断101-200之间有多少个素数,并输出所有素数。 1.程序分析:判断素数的方法:用一个数分别去除2~sqrt(n)或者2~n/2,常用2~n/2,因为一个数的一半的平方大于其本身是从5开始的,解方程:n/2的平方>n .如果能被整除, 则表明此数不是素数,反之是素数。 package java经典例题; /** * 找素...转载 2019-01-07 13:53:29 · 3063 阅读 · 0 评论
分享