java基础
有趣的难受
你对这个世界有多大的认知,就决定你能挣多少钱。
展开
-
mysql 存储ip 且 ip 分段
mysql ip 黑白名单+白名单段原创 2022-04-03 20:31:28 · 1315 阅读 · 0 评论 -
future method
ListenableFuture<SendResult<String, Object>> future = kafkaTemplate.send(tojoyKafkaTopic, JSON.toJSONString(behaviorMessage)); future.addCallback(new ListenableFutureCallback<SendResult<String, Object>>() { ...原创 2021-08-05 11:23:15 · 145 阅读 · 0 评论 -
java 反射取值和重新赋值
package com.tojoy.customer.behaviorcollector.utils;import com.tojoy.customer.behaviorcollector.domain.BehaviorMessage;import java.lang.reflect.Field;public class BehaviorMessageUtil {public static BehaviorMessage behaviorMessageChange(BehaviorMessage .原创 2021-07-27 11:52:25 · 162 阅读 · 0 评论 -
86400000*29为啥是负数
public class Test2 { public static void main(String args[]){ int startTime = 86400000 * 29; System.out.println(startTime); Long startTime1 =86400000L*29; System.out.println(startTime1); }}必须使用L 否则整数的话超过了 int .原创 2021-01-17 22:11:07 · 202 阅读 · 0 评论 -
list集合转换成,隔开
List<String> list = new ArrayList<String>(); Collections.sort(list);String join = String.join(",", list); List<Integer> list = new ArrayList<Integer>(); Collections.sort(list); String join = StringUti...原创 2020-05-09 20:08:14 · 787 阅读 · 0 评论 -
controller 允许跨域访问
第一种方式:response.setHeader(“Access-Control-Allow-Origin”,"*");第二种方式:.在controller 上加上@CrossOrigin(origins = {“http://localhost:7777”, “http://someserver:8080”})eg:localhost 意思是允许本地跨域访问7777:允许访问的端...原创 2020-01-16 09:55:29 · 2883 阅读 · 0 评论 -
小写法
跳出当前循环。原创 2019-04-26 16:00:51 · 153 阅读 · 0 评论 -
IO NIO AIO
IO大致分为两类:面向磁盘和面向网络。在 Java 中有3种 I/O 类型:BIO 同步阻塞NIO 同步非阻塞AIO 异步非阻塞原创 2019-04-20 11:04:03 · 271 阅读 · 0 评论 -
java 数据加载到内存jvm中
为什么需要将java 数据加载到内存?1 将数据加载到jvm运行内存中,会占用运行内存,一些对象,初始化数据,枚举等缺点:如果值有修改,需要重新部署项目才能生效。2 一些不想放到redis 缓存的数据可以放到jvm中使用方式:每次使用的查询为null 就走数据查询刷新到内存。3 刷到内存也是可以通过定时任务去刷新内存的值,既使用jvm 内存 又是变动的值...原创 2019-06-19 11:42:46 · 3149 阅读 · 0 评论 -
switch 赋值为 null
原创 2019-07-02 17:49:08 · 2642 阅读 · 0 评论 -
HashMap面试题
1 为什么hashmap 扩容是2的倍数hashmap put 的时候直接去key的hash值方法public V put(K key, V value) {return putVal(hash(key), key, value, false, true);}key的hashcode 异或 key的hashcode的位移static final int hash(Object key)...原创 2019-08-29 09:54:27 · 220 阅读 · 0 评论 -
hash 和 object 的关系
map 自己去取值和打印值都是没有错但是map后的基本类型 是先去取 map (通过key 去找map 中的值)引用在前,new HashMap 实例化再后原创 2019-09-04 09:51:10 · 335 阅读 · 0 评论 -
Map 和 object
map put 遵循map的所有特性没有错误原创 2019-09-05 08:41:41 · 503 阅读 · 0 评论 -
Node
最简单的node当前node的值和下一个node的值一个一个串联起来就是数组 链表 或者 队列只有当前node的类型可以是数值 可以是 T也可以是其他的最简单的例子:...原创 2019-04-13 18:04:07 · 106 阅读 · 0 评论 -
CAS
CASCAS(Compare and Swap 即比较并交换) ,设计并发算法时常用到的一种技术, java.util.concurrent.atomic 包下的原子操作类都是基于 CAS 实现的。CAS 有三个操作数:内存值 V、旧的预期值 A、要修改的值 B,当且仅当预期值 A 和内存值 V 相同时,将内存值修改为 B 并返回 true,否则什么都不做并返回 false。CAS 操...原创 2019-02-27 14:08:31 · 365 阅读 · 0 评论 -
Java 继承
继承的概念继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。继承的特性子类拥有父类非 private 的属性、方法。子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。子类可以用自己的方式实现父类的方法。Java 的继承是单继...原创 2019-02-27 16:27:44 · 199 阅读 · 0 评论 -
CountDownLatch
Sync类 继承aqs 抽象类Sync(int) 参数构造,其中继承aqs类的setStatus(count)getCount() 继承aqs 类的getStatus()tryAcquireShared(int)重写了aqs 的方法tryReleaseShared(int)重写了aqs 的方法sync public final 参数CountDownLatch(int) 类的参数构...原创 2019-02-28 16:04:36 · 204 阅读 · 0 评论 -
Object
方法:hashCode():默认情况下,对象的哈希码是通过将该对象的内部地址转换成一个整数来实现的。equals:比较两个对象是否相等(比较 2 个对象的引用是否相同)。toString():对象的名字 @ hashCode 的 16 进制。notify(): final 修饰。唤醒一个在此对象监视器上等待的线程。wait(): final 修饰。 放弃监视器(锁)并进入阻塞状态,直到...原创 2019-02-25 17:00:28 · 214 阅读 · 0 评论 -
HashMap
hashmap 是一个entry对象的数组 数组中的每一个entry元素 又是一个链表的头节点HashMap 是数组 + 链表 数据结构默认初始化容量 16 ,因子 0.75 元素12个然后rehash 每次2 的次方时间复杂度 0(1) 链表 0(n) jdk1.8 阈值 0(lgn)...原创 2019-02-25 18:02:56 · 572 阅读 · 1 评论 -
static
(一)关键字1 static修饰变量、方法、静态块、静态内部内、静态导包。随着类的加载而加载,只执行一次,并优先于主函数。存在于方法区中。 在《Java编程思想》P86页有这样一段话: “static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方...原创 2019-02-20 16:27:48 · 231 阅读 · 0 评论 -
final
1.final 修饰的部分类、 方法、 域、 方法参数2.作用a.设计上: 被 final 修饰的类不能被继承;被 final 修饰的方法不能被重写;被final 修饰的变量的引用不能被修改。b.效率上: 被 final 修饰后,内联(inline 在 Java 中就是编译器为程序做的一种优化操作) 会起作用。备注: 内联是发生在编译期的一个优化操作。 所做的优化操作的意义在于两个字...原创 2019-02-20 17:51:00 · 105 阅读 · 0 评论 -
StringBuffer 和 StringBuilder 区别
1、StringBuffer 与 StringBuilder 中的方法和功能完全是等价的,2、只是StringBuffer 中的方法大都采用了 synchronized 关键字进行修饰,因此是线程安全的,而 StringBuilder 没有这个修饰,可以被认为是线程不安全的。3、在单线程程序下,StringBuilder效率更快,因为它不需要加锁,不具备多线程安全而StringBuffer...原创 2019-02-20 18:07:12 · 192 阅读 · 1 评论 -
如何判断链表有环?
hashmap原创 2019-02-26 10:37:29 · 218 阅读 · 0 评论 -
ConcurrentHashMap
ReentrantLock 是一个可重入的互斥锁, 拥有与 synchronized 相同的并发性和内存语义,但是添加了类似锁投票、定时锁等候和可中断锁等候的一些特性。默认采用非公平锁。底层基于抽象类 Sync 实现,它继承了 AQS,是公平锁、非公平锁的基础,子类实现了 lock()。 它模仿了 synchronized 的语义, 有一个与锁相关的获取计数器,如果拥有锁的某个线程再次得到...原创 2019-02-26 11:58:57 · 253 阅读 · 0 评论 -
java 反射
反射的概念原创 2019-02-26 12:14:53 · 206 阅读 · 0 评论 -
InputStream用法
读取text文本内容原创 2019-03-08 17:13:20 · 1969 阅读 · 0 评论 -
动态代理
JDK动态代理和Cglib动态代理的区别:1.JDK动态代理是实现了被代理对象的接口,Cglib是继承了被代理对象。2.JDK和Cglib都是在运行期生成字节码,JDK是直接写Class字节码,Cglib使用ASM框架写Class字节码,Cglib代理实现更复杂,生成代理类比JDK效率低。3.JDK调用代理方法,是通过反射机制调用,Cglib是通过FastClass机制直接调用方法,Cgli...原创 2019-02-27 12:28:06 · 109 阅读 · 0 评论 -
uuid
原创 2019-02-15 10:40:08 · 230 阅读 · 0 评论