java基础
文章平均质量分 62
集合,多线程,反射等
二斤理想
保持在路上...
有问题欢迎一起探讨,可私信/评论区留言 ,欢迎关注,让我们一起成长,共同进步 ~
展开
-
java基础2:拷贝对象方式: 从a到b
拷贝对象 从apple 到orange方案一 【use java8 Syntactic Sugar】demo使用java8的对象互转形式小结方案二 【use mapstruct】demo使用mapstruct小结方案一 【use java8 Syntactic Sugar】基于jdk1.8。你的idea要下载一下lomlock插件demo添加依赖<dependency> <groupId>org.projectlombok</groupId> &l原创 2021-02-12 14:46:56 · 885 阅读 · 4 评论 -
java基础1:处理list
Deal Listlamda表达式处理List数据1、不改变原值,但可返回处理结果2、可直接改变原List值。3、filter过滤得到一个list | 一个元素lamda表达式处理List数据iniListData @Test public void test1() { Apple a = new Apple("red1", BigDecimal.valueOf(1.1d)); Apple a1 = new Apple("red2", BigDecimal.v原创 2021-02-11 14:47:08 · 1070 阅读 · 1 评论 -
非主要功能降级方案
降级对降级的认知非主要功能降级案例对降级的认知一般对服务降级的认知,我大概了解两小点:1、 在业务流量比较大的情况,处理不过来了,要做降级处理, 比如开关降级,流量降级,熔断降级。 2 、关于降级,经常会有2、次要功能频繁出错,或非主要功能性能有问题, 在不影响主业务线的情况,对该功能可以采取降级处理。以下案例针对第2种降级情况,提供降级解决方案。非主要功能降级案例支付完成后,会有一个红包分享的接口,然后接口内部是要调用其他接口,比如生成红包分享的图片的接口,生成小程序二维码,文案等等,这原创 2021-01-03 15:31:14 · 622 阅读 · 2 评论 -
线程的几种状态
线程的几种状态线程的几种状态线程的生命周期线程的几种状态new,runnable ,waiting , timedwaiting , blocked ,terminated线程的生命周期线程启动进入运行态,首先就绪,cpu为了提高效率,会轮流切换线程并发执行指令,叫流水线式工作。所以在线程调度器内部,就绪状态转为运行态,表示被线程调度器选中执行,从运行态running到ready表示线程挂起,cpu切换其他线程执行。还有一种情况是从running态到ready就绪状态,即线程内部调用了一下t原创 2020-08-18 13:50:31 · 518 阅读 · 0 评论 -
透过案例--了解循环栅栏
循环栅栏循环栅栏一、案例-司令跟士兵的日常1、上demo1)、代码实现2)、测试结果以及小结①测试结果导读小结:外层线程最后调用循环栅栏,还能否起到阻塞作用?2、草图导读番外篇案例-游乐场之行~更直白循环栅栏一、案例-司令跟士兵的日常别的线程和循环栅栏这俩货要合作,所以他们先进行了简单的沟通:别的线程:一听栅栏,肯定就是有限制,据说这里的限制是阻塞我(别的线程)的,而且阻塞的个数由你(循环栅栏)来定(假定阻塞个数是7,那么这里循环栅栏的计数器大小为7)循环栅栏:是的。别的线程:哦哦,那要是原创 2020-08-12 09:11:15 · 457 阅读 · 0 评论 -
自定义线程池:简单demo(+自定义ThreadFactory)实现
自定义线程池:简单demo(+自定义ThreadFactory)实现线程池作用简述一、上demo(自定义线程池)二、ThreadFactory源码简述1、方法定义2、接口定义线程池作用简述线程池主要作用是为了线程复用,避免线程频繁创建。线程池里的线程是 ThreadFactory帮助创建的。一、上demo(自定义线程池)可以跟踪线程池究竟在何时创建了多少线程,也可以自定义线程名称,组,优先级,甚至直接设定所有线程为守护线程。可以通过自定义线程池更加自由的设置池子里所有线程的状态。下面案例一方面记录原创 2020-08-11 23:28:11 · 1999 阅读 · 0 评论 -
bio,nio,aio是什么以及它们的区别
bio,nio,aio是什么以及他们的区别同步,异步,阻塞,非阻塞简述初识bio,nio,aio同步,异步,阻塞,非阻塞简述了解bio,nio,aio的前置条件要了解下面的概念:同步:java自己处理io读写异步:java把io操作委托给os处理,且要把数据缓冲区大小和地址传给os,os要支持异步io操作的api.阻塞:java调用会一直阻塞直到读写完成。非阻塞:如果不能进行读写,java调用会立即返回,当io事件分发器通知可读写时再继续进行io读写,一直循环直到读写完成。初识bio,nio,原创 2020-06-12 12:17:53 · 1998 阅读 · 0 评论 -
根据ip做客户端GPS定位
我的小需求:根据ip做客户端gps定位一、使用场景简述1、跟运维同事请教一些关于公网ip相关的基本常识2、针对高德,百度,腾讯开放平台分别做了几组模拟测试,根据ip获取地理位置的api3、需求了解清楚,开撸代码1)、获取request里的真实ip2)、根据ip做gps定位二、 网络环境怎么搞呢?三、然接口测试是个问题一、使用场景简述获取前端request里的真实ip(即公网ip),根据ip调用...原创 2020-03-25 15:32:01 · 1669 阅读 · 0 评论 -
java高并发(一)基本概念:3 临界区
临界区特点:属于公共资源或者共享数据。同一时间只能被一个线程占用如果该临界区资源被占用,其他想使用临界区资源的线程只能等待。在并行(多核)程序中,临界区资源是保护的对象。思考:1 临界区是否是通过给它加锁来实现线程独占资源的?2 cpu是一种资源,临界区也是一种资源(都是站在线程的角度来说的),如果cpu可以通过多核解决性能问题,那临界区是否可以通过什么方案来解决性能瓶颈?因为...原创 2018-11-11 22:03:33 · 1050 阅读 · 0 评论 -
java高并发(一)基本概念:2并发和并行
并发和并行以前总是被我弄混,甚至以为是一样的,但是现在发现并不是这样并发:实质为多任务交替执行。微观看为串行;因为cpu执行太快,宏观看,被认为是多个任务一起执行的。如图:实线和虚线代表两个不同的任务微观上串行的执行着。如果系统为单核cpu,这时若有多个进程或线程的任务要执行,一个cpu一次只能执行一条指令,这种场景为并发,非并行。并行:多核,是真正的多个任务同时执行。如图:不同颜色表示不...原创 2018-11-11 21:39:49 · 280 阅读 · 0 评论 -
java高并发(一)基本概念:1同步和异步
同步(即synchronous)异步(即asynchronous)原创 2018-11-07 22:51:16 · 1013 阅读 · 0 评论 -
优化 读取的异步文件过多问题
适用场景: 第三方公司会有很多异步通知文件上传到我的 ftp 服务器上,当解析的时候会依次遍历,时间久了需要遍历的会越来越多,这时就需要优化一下,下面是我的优化方案: 移除文件到指定备份路径下,可以查看文件:testFileRemove.java原创 2018-08-31 11:18:04 · 232 阅读 · 0 评论 -
txt数据文件 批量导入mysql
批量数据导入mysql,1 数据样例如下user表,数据形式为第一行 标题行,第二行及之后为数据行: 2 navicat工具,在数据库上右键,选中”导入向导“ 3 选中你要导入的数据文件 4 选择数据间隔 5 第一个数据行为第二行开始,我的数据时间格式分隔符为- 6 可以选择新建,也可以导入已经存在的表,前提是表字段名称一样,数据结构一样。 7 数据库...原创 2018-08-31 12:03:32 · 7089 阅读 · 0 评论 -
善用eclipse代码模板功能(放编程技巧专栏)
eclipse中代码模板功能,乍一眼感觉不知道,但绝不是冷门哦,其实我们每天都可能会用到,举一些常见的实践应用例子: 1 main函数,我们是不是手动敲完快捷键补全就可以了; 2 sysout 依然可以手动补全,而且光标就在括号中,输入要打印的信息,就可以把信息打印到控制台了; 3 try/catch 不用手动全部书写,也不用管缩进,只需要选中要处理的代码,然后按Alt+...原创 2018-08-30 10:22:07 · 1599 阅读 · 0 评论 -
java基础梳理
以下针对json转化,有:1 字符串转json数组,遍历json数组内容2 字符串转json数组,遍历json数组内容 ,将json对象依次转化成bean形式3 bean转换成json对象数据4 bean转换成json字符串数据5 json串转bean6 json对象转bean7 获取json字符串里嵌套的json串的一个值8 字符串和map互转测试demo如下:...原创 2018-08-30 10:24:35 · 142 阅读 · 0 评论 -
java常用元素:1.bigdecimal 基本使用
常用类型1) 、BigdecimalBigdecimal类型赋值为0两种方式:① =new Bigdecimal(“0”)②BigDecimal.ZERO取舍方式RoundingMode.HALF_UP 四舍五入bigdecimal的详细取舍可参看: https://blog.csdn.net/well386/article/details/53945796...原创 2018-08-30 10:34:40 · 5378 阅读 · 0 评论 -
mybatis批量删除java sql
mybitas批量删除java sql在*mapper.java文件里,执行批量删除有两种:①在*mapper.java里这样写:@Delete(“delete from capital where id in( ${ids})”) int deleteBatchCapital(@Param(“ids”) String ids);②在*mapper.java里先定义:...原创 2018-08-30 13:44:30 · 1272 阅读 · 0 评论