java
yly20150203
这个作者很懒,什么都没留下…
展开
-
论斐波那契函数
最近在看数据结构与算法,其中有关于斐波那契数列使用递归实现的描述,文章里面说n超过40的,性能急剧下降。测试了一波,卡的不行 public static Long fib(Long n) { if (n <= 1) return 1L; return fib(n - 1) + fib(n - 2); }public static void ma...原创 2020-04-24 11:45:54 · 192 阅读 · 0 评论 -
关于jstack检测线程的死锁、等待、cpu耗时
背景最近在项目中碰到一个问题,tomcat怎么都起不来,但是没有报任何的错误,当时请教了师兄,师兄一下就解决的,咨询之后,依赖的外部服务挂掉了,解决方法就jstack,然后看阻塞在哪个线程。所以为了下次不要犯这个错误,这里记录一下jstackjstack是jdk自带的线程堆栈分析工具,使用该命令可以查看或者导出线程的堆栈信息。jstack -l :进程挂起,强制打印堆栈信息,一般情况不...原创 2019-12-19 11:57:52 · 406 阅读 · 0 评论 -
spring源码思考--自己实现一个spring框架的思考过程
思路推导的过程最重要目标结果导向spring的认知以及疑惑,1:为什么对象不需要自己创建2:为什么通过注解可以注入DI/IOC3:controller是怎么被触发的一句话:计算机是科学 意味着可以被推到和验证1:要加载读取xml文件?(配置信息写在xml里面)2:spring会自动创建对象,(java一切皆是对象)3:应该有一个注入的功能,4:请求肯定是从d...原创 2019-07-20 15:17:33 · 121 阅读 · 0 评论 -
实战:不同库 SpringAOP 和java反射调用方法进行动态塞值
业务场景:如下表结构, 订单表中:id user_id 用户表中:id name, 当业务需要通过订单号查询出用户的id和姓名,这时候我们可以连表查询,select u.name,u.id,o.id from t_user u,t_order o where o.user_id =u.id ,这时候我们如果架构变了呢? 演变成了微服务架构,商品库和订单库,这个时候,我们该用哪种比较好的...原创 2019-07-30 10:10:04 · 247 阅读 · 0 评论 -
自己手写一个线程池
线程池原理(底下附源码):仓库:接收任务,卡车:工作线程,从仓库中取任务当没有任务的时候,工作线程阻塞,当有任务的时候,唤醒工作线程执行仓库可以使用blockQueue表示这些上面是在wangyiyun上面听的课程线程池,就是一个放任务线程的地方。工作线程会不断的从线程池中取任务,手写线程池:...原创 2019-07-26 10:27:25 · 109 阅读 · 0 评论 -
线程状态的扭转
第一种:new-runnable-terminated第二种:新建-运行-等待-运行-终止第三种:新建-运行-阻塞-运行-终止package com;public class ThreadStatusDemo1 { public static void main(String[] args) throws InterruptedException { T...原创 2019-07-31 12:07:43 · 226 阅读 · 0 评论 -
java-thread的互相通讯比较
// suspend/resume对调用顺序有要求,也要开发自己注意锁的释放。这个被弃用的API, 容易死锁,也容易导致永久挂起。//wait/notify要求再同步关键字里面使用,免去了死锁的困扰,但是一定要先调用wait,再调用notify,否则永久等待了//park/unpark没有顺序要求,但是park并不会释放锁,所有再同步代码中使用要注意...原创 2019-07-31 18:22:46 · 75 阅读 · 0 评论 -
java-线程池的使用,以及思考
java-线程池的使用,以及思考我比较喜欢贴代码,代码里面都写了注释,直接都可以运行的,自己也琢磨了好久,反正这个也是自己学习的一个记录,里面有我自己的一些见解,有不足可以提出我比较喜欢贴代码,代码里面都写了注释,直接都可以运行的,自己也琢磨了好久,反正这个也是自己学习的一个记录,里面有我自己的一些见解,有不足可以提出package com.example.wangyi;import j...原创 2019-08-01 18:23:44 · 81 阅读 · 0 评论 -
spring事务的思考
对于spring的事务,我们一般了解到是加上@Tranactional 就能实现事务的管理那么为什么加上了@Tranactional注解就能实现数据库了?1:自己写了一个注解,@MyTranactional2:当一个方法加上了这个MyTranactional注解,那么就进行取消事务自动提交,并且在业务方法前后进行事务的处理和提交回滚操作,解决方案:使用spring的aop切片,业务...原创 2019-07-28 16:38:24 · 63 阅读 · 0 评论 -
分布式锁原理与实现
为什么需要分布式锁?场景:唯一订单编号如果同一时刻很多人下单,并发请求,此处订单号是否能否唯一?模拟:加锁lock(但是影响效率)如果单台服务器无法撑起并发量 怎么办?1:集群如何做到订单号唯一1:将订单编号生成独立共享的服务此时订单号会唯一吗?1:还是会重复,为什么?加锁了吗?1:是不是同一把锁,虽然有锁,但是tomcat使用的...原创 2019-07-19 21:32:41 · 51 阅读 · 0 评论 -
spring设计模式实现不同会员不同折扣
直接附源码://订单生成类public interface OrderService { public void createOrder();}//订单生成业务类package com.huanwu.sp.salecard.web.controller.ordertest;import org.springframework.beans.factory.annotat...原创 2019-07-29 10:49:44 · 275 阅读 · 0 评论 -
java不规则地址解析
java不规则地址解析最近公司有个业务,说是要根据不规则的地址进行识别到地址的省市区出来,搞得我头发掉了一地,还好最终写出来了,能识别公司业务地址中的90%,就算成功,目前测试了一下,100条有2-3条识别不出,也还行吧,提供地址的时候,最好实现约定,让业务人员提供的地址上面包含省市区。最近公司有个业务,说是要根据不规则的地址进行识别到地址的省市区出来,搞得我头发掉了一地,还好最终写出来了,能识...原创 2019-07-16 19:34:19 · 432 阅读 · 0 评论 -
JAVA线程(升级)
同步方法package com.thread.ticket3;/** * 同步代码块中的对象针对多个线程必须是同一个, * 其实这个对象被称为同步锁对象 * * 同步代码块的锁对象是谁呢? * 任意对象 * * 如果一个方法,一进去我们就看到代码被同步了,所以,我就想,这个同步能不能加在方法上面呢? * 能:这个东西被称为同步方法:就是把同步关键字加在同步方法上。 *原创 2016-12-04 19:00:11 · 243 阅读 · 1 评论 -
初级(上) 二维码的生成
吼吼,阳仔的第一篇博客开写啦,以下的内容都是我从imooc上面听课的总结,当然是只针对二维码,作为一个初级程序媛,也是要坚持学习的。首先,谢谢imooc网上的老师发放的免费视频,让我自己有了一些简单的了解,接下来,就把我的总结贴出来吧:第一 二维码的分类: 线性堆叠式二维码:建立在一条维码基础之上,按需要堆积成两条或多条,主要有:pdf417 ult原创 2016-11-13 17:01:42 · 308 阅读 · 0 评论 -
JAVA网络编程(UDP入门篇)
网络编程:通过计算机语言实现资源的共享网络编程模型数据一层层的封装打包应用层:eg:应用程序,qq表示层:会话层:传输层:网络层:数据传输数据链路层:数据帧,使用交换机传递数据物理层 : 将数据转化为1,0数据应用程序:网络编程+IO+多线程 此博客的主角是网路层java针对网络编程提供的类都在java.net下面 网络编程的要素 A:IP地址 找到对应的应用程序 B:端原创 2016-11-21 21:14:50 · 420 阅读 · 0 评论 -
JAVA网络编程(TCP篇入门)
此次博客主要以代码为主,其中包含了丰富的注释简单的tcp 简单介绍tcp是如何发送数据,以及接受数据代码一:客户端package com.net.tcp;import java.io.IOException;import java.io.OutputStream;import java.net.Socket;/** * TCP协议发送数据的步骤 * A:创建发送数据的socket对象。原创 2016-11-24 22:45:11 · 282 阅读 · 0 评论 -
JAVA线程(补充)
线程优先级package com.thread.priority;/** * 线程优先级:每个线程都有一个优先级,高优先级的线程执行优先于低优先级线程 * 默认优先级:5 * 范围:1-10 * 这个只有在次数特别多的情况下,效果才可能比较明显 * * public final int getPriority() 返回线程的优先级。 * public final void setP原创 2016-12-06 21:57:04 · 266 阅读 · 0 评论 -
设计模式(单例模式,工厂模式,适配器模式)
1:设计模式是什么? 前人总结的一些经验和思想,给我们提供了从抽象到具体的方法总共有23种 分类: 创建型模式: 创建对象。(其实创建对象比较耗内存的动作) 结构型模式: 对象的组成。 行为模式: 对象能够做什么。 工厂模式: 通过一个工厂类来帮我们创建对象 单例模式: 要求:类在内存中的对象只原创 2016-12-07 21:40:24 · 1438 阅读 · 0 评论 -
JAVA网络编程总结
TCP传输图片 客户端package com.net.tcp8;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.原创 2016-11-25 23:02:46 · 272 阅读 · 0 评论 -
最简单的Rpc框架的实现
代码什么的,可以发个链接:http://www.cnblogs.com/ChrisMurphy/p/6550184.html上面链接所用到的技术:java原生序列化,socket通信,动态代理,反射机制。平时用到接触的都很少,每次用过之后就忘记,所以要想真正的达到拿来就用的境界那就:#刻意练习#吧 下面介绍。。写不动。。。 就写写自己的理解:主要的角色有一下几种:服务提供者: 运行在服原创 2017-03-18 15:40:48 · 402 阅读 · 0 评论 -
Spring项目中新增log4j日志框架
1:日志级别FATAL 0ERROR 3WARN 4INFO 6DEBUG 7原创 2018-05-08 15:42:35 · 135 阅读 · 0 评论 -
Thread中的interrupt(),isInterrupted(),interrupted();
interrupt()源码:public void interrupt() { if (this != Thread.currentThread()) checkAccess(); //判断此线程是否为当前线程,不等于,则进行检查,此处有可能抛出SecurityException异常。 synchronized (blockerLock...原创 2019-01-12 14:20:43 · 120 阅读 · 0 评论 -
synchornized原理
最近在学习synchornized的关键字的讲解。发现了有很多不懂的地方,随即在网上看了很多的文章,其中比较好的有https://blog.csdn.net/javazejian/article/details/72828483https://www.cnblogs.com/paddix/p/5367116.htmlhttps://www.jianshu.com/p/78be70fad9a9这几...原创 2019-01-14 10:46:30 · 439 阅读 · 0 评论 -
JAVA线程(简单)
多线程:就是应用程序有多条执行路径 线程:是进程的执行单元,执行路径。 如果一个应用程序只有一条只有执行路径,那么,该程序就是单线程程序 如果一个应用程序有多条执行路径,那么,该程序就是多线程 进程:正在运行的应用程序, 每个进程具有独立的空间。 我们目前的操作系统都是支持多进程的。 举例:360,迅雷原创 2016-11-27 21:25:52 · 236 阅读 · 2 评论