git基础操作-编程思维

一、分支 分支命名规则 开发分支: dev 功能分支:feature/功能名称 bug分支:bugfix/bug名称 预发布分支:release/预发布版本名称 列出本地分支: git branch 列出远程分支: git branch -r 切换分支: git checkout newB 删除本地分支: git branch -d newB 创建分支: git checkout

最强本地缓存caffeine-编程思维

Caffeine 是基于 JAVA 8 的高性能缓存库。并且在 spring5 (springboot 2.x) 后spring 官方放弃了 Guava,而使用了性能更优秀的 Caffeine 作为默认缓存组件 一、引入依赖  <dependency>     <groupId>com.github.ben-manes.caffeine</groupId>  

oppo 后端面试凉经(附详细参考答案)-编程思维

这篇文章的问题来源于一个读者之前分享的 OPPO 后端凉经,我对比较典型的一些问题进行了分类并给出了详细的参考答案。希望能对正在参加面试的朋友们能够有点帮助! Java String 为什么是不可变的? public final class String implements java.io.Serializable, Comparable<String>, CharSequence

引用赋值的原子性问题-编程思维

一、问题及来源 二、分析 2.1 官方引证 2.2 过程分析 一、问题及来源 对原始类型不包括(long,double)变量进行赋值是原子操作,但是没有找到资料对引用类型的变量的赋值操作的原子性进行说明.例如 Object var = otherObjectValue; 这是原子操作吗? 最近在看并发编程,此问题由int[] arr = new int[0]是不是原子操作而

java反射,看完就会用-编程思维

什么是反射 在说反射概念之前,我们先说另外2个概念:编译期和运行期。 编译期: 编译期是源代码从文本形式转换为字节码的过程,这发生在Java代码被JVM执行之前。 在编译期,编译器对源代码进行语法检查、类型检查、变量名解析等操作,确保代码符合Java的语法规则,并将其编译成字节码(.class文件)。 编译期间的操作基于静态类型信息。编译器只能使用它在编译时了解的信息,而不能知晓运行时的具体情

原来 lambda 这么简单-编程思维

目录前身 -- 匿名类lambda 表达式方法引用类名::静态方法类名::实例方法对象::实例方法总结 前身 -- 匿名类 何为匿名类? 没有类名,直接通过new关键字创建这个类的实例 比如:Comparator接口 这是一个单抽象方法的接口,这样的接口被称为函数式接口 public interface Comparator<T> { int compare(T o1, T

localdatetime与时间戳、日期字符串的转换-编程思维

摘要:介绍LocalDateTime与时间戳、日期字符串的转换。 目录需求背景LocalDateTime转字符串LocalDateTime转时间戳时间戳转LocalDateTime时间戳转日期字符串结束语 需求背景   服务器部署在不同时区,数据在业务使用过程中,需要进行时区切换,为了不影响数据效果,把各个时区的时间统一为UTC时区。故分享如何实现LocalDateTime与时间戳、日期字符串的

使用simpledateformat获取指定时区时间-编程思维

摘要:使用SimpleDateFormat把时间戳转换成指定格式的、指定时区的字符串。   SimpleDateFormat是Java中的一个日期格式化类,继承了DateFormat,可以实现日期时间和时间字符串的相互转换。为了把时间正确地转换成时间字符串,我们需要考虑当前所在时区,而SimpleDateFormat可以通过继承的方法setTimeZone(TimeZone zone)设置时区:

integer缓存机制随笔(清晰)-编程思维

总体主要分为两个方面 ①比较的是值 一、基本数据类型与引用数据类型进行比较时,引用数据类型会进行拆箱,然后与基本数据类型进行值的比较 举例: int i = 12; Integer j = new Integer(12); i == j 返回的是true 二、引用数据类型与基本数据类型进行比较(equals方法),基本数据类型会进行

美团面试拷打:concurrenthashmap 为何不能插入 null?hashmap 为何可以?-编程思维

周末的时候,有一位小伙伴提了一些关于 ConcurrentHashMap 的问题,都是他最近面试遇到的。原提问如下: 整个提问看着非常复杂,其实归纳来说就是两个问题: ConcurrentHashMap 为什么 key 和 value 不能为 null? ConcurrentHashMap 能保证复合操作的原子性吗? 下面我会以此提供这两个问题的详细答案,希望对你有帮助。 Concurr

system.currenttimemillis()与时区无关-编程思维

摘要:System.currentTimeMillis()获取的时间戳与时区无关。 综述   System.currentTimeMillis()经常被用来获取当前时间戳,单位是毫秒,可以用来计算当前年月日或者星期几等,可以方便地与Date进行转换,可以计算某个方法的耗时: long curTime = System.currentTimeMillis(); doSth(); System.ou

五种方法获取当前时间戳-编程思维

摘要:分享获取当前时间戳的五种方法。例如,通过系统时间System.currentTimeMillis() 或日期类Instant.now().toEpochMilli()来获取当前时间戳。 什么是时间戳   在Java语言中,时间戳(timestamp)是一种重要的概念,它是指一个能够表示某个时间点的单一数字,用于精确记录和计算时间,单位是毫秒,类型是long。它通常表示从固定的起始时间点(1

system.currenttimemillis()高并发性能优化-编程思维

摘要:System.currentTimeMillis()性能问题的研究、测试与优化。   性能优化使用的测试环境: jdk版本jdk8   操作系统: macOS 版本:13.2.1 芯片: Apple M1 CPU核数:8核   System.currentTimeMillis()是Java极其常用的 API,广泛地用来获取时间戳或统计代码执行耗时等,在我们的印象中应该快如闪电。但实

简单介绍list和数组转list集合-编程思维

目录综述如何创建List六种数组转List的方法for循环遍历Arrays.asList()new ArrayList<>(Arrays.asList(array))Collections.addAll()stream流collect方法Stream.of结束语 摘要:介绍List接口和创建List对象的三个常用方法,介绍数组转换List的几种方法。 综述   线性列表List是一个

stream流中map与flatmap区别|转-编程思维

  map和flatMap都是对流中的每一个元素,执行入参中的函数式方法,只是在函数式方法的返回值上有区别: map中函数式方法返回值为对象,也就是原始流中有n个元素,处理之后的流中元素个数也是n。即使你在返回的时候返回了多个元素如数组,它也会把数组当成一个对象处理。 flatMap中函数式方法返回值为流,flat为扁平的意思,也就是说,我们可以通过flatMap改变原始流中对象的个数,fla

封装和继承-编程思维

第一节:方法的参数传递、返回值 Java语言在给被调用方法的参数赋值时,采用传值的方式: 基本类型数据传递的是该数据的值本身。 引用类型数据传递的也是这个变量的值本身,即对象的地址(引用),而非对象本身。 1.1 基本数据类型传递 //类 public class PassValue{ public void change(int x){ x = 100;

迟来的秋招面经,17家公司,java岗位-编程思维

一位朋友秋招面试了17家公司(都是中小公司或者银行),Java 后端岗。下面是他的个人情况、求职经验已经这17家公司的面经。 个人情况和求职经验 其实现在是挺后悔大学没有好好的学习的,因为基本上都会提到一些成绩相关的事情,每次填成绩都只能填个50%(实际上更低),并且还有挂科,没有奖学金,没有学生经历,没有竞赛经历,没有实习经历,简历上真的是空空如也,自我介绍的时候也是一分多钟就全部讲完了(有时