PerKins Zhu

Le vent se lève,il faut tenter de vivre.
随笔 - 86, 文章 - 0, 评论 - 45, 阅读 - 21万

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

2018年10月11日

摘要: 今天遇到一个问题:在cmd命令行中,用javac编译java文件可以成功,但是用java执行却提示“找不到或无法加载主类”。现将该问题的原因以及解决办法记录一下。 先理解一下系统变量path和classpath的作用。 path:可执行命令的搜索路径,在该路径下搜索可以运行的程序或批处理文件。 命令 阅读全文

posted @ 2018-10-11 19:34 PerKins.Zhu 阅读(20227) 评论(1) 推荐(1) 编辑

2018年9月28日

摘要: 请求安全性: 服务器端在接收到请求的时候,要主动鉴别该请求是否有效,是否可接受。 token:已登陆用户的识别码 解决的问题:用户调用接口时,不用每次都带上用户名和密码,避免了频繁在网络中传输密码被截获的风险。 使用场景:用户登录系统时传入用户名和密码,服务器校验成功之后,根据uuid等参数生成to 阅读全文

posted @ 2018-09-28 09:01 PerKins.Zhu 阅读(6780) 评论(1) 推荐(2) 编辑

2018年8月9日

摘要: 用scala有一年多了,对于scala中的Option和Try使用的较为频繁,对其应用场景相对熟悉一些。而对于Either,仔细回想一下却发现几乎(完全)没有使用过,其实并不是没有遇到过Either的使用场景,只是遇到的时候不知道能够使用Either来解决此问题。 昨天在网上偶然看到一篇介绍Eith 阅读全文

posted @ 2018-08-09 22:28 PerKins.Zhu 阅读(1471) 评论(0) 推荐(0) 编辑

2018年7月13日

摘要: 工作中偶然发现Scala构造方法中的参数,无论是否有val/var修饰都可以顺利编译运行,如下: 那么两者的区别在哪里呢?对于case class呢?其区别又在哪里?其应用场景又在哪里呢?下面就辨析一下如下几个类的区别 单纯的从代码中来看,发现不了什么区别,只是简单的多了一个val的修饰符。为了一探 阅读全文

posted @ 2018-07-13 23:34 PerKins.Zhu 阅读(7722) 评论(1) 推荐(1) 编辑

2018年3月18日

摘要: 在scala中是没有原生线程的,其底层使用的是java的Thread机制。但是在scala中对java Thread进行了封装,实现了更便于操作线程的Future。 官方文档: Futures provide a way to reason about performing many operati 阅读全文

posted @ 2018-03-18 16:19 PerKins.Zhu 阅读(3659) 评论(1) 推荐(2) 编辑

2017年11月22日

摘要: 相对于java的类型系统,scala无疑要复杂的多!也正是这复杂多变的类型系统才让OOP和FP完美的融合在了一起! Nothing: 如果直接在scala-library中搜索Nothing的话是找不到了,只能发现一个Nothing$的类(后面再说Nothing$和Nothing的关系)。要想看到N 阅读全文

posted @ 2017-11-22 10:33 PerKins.Zhu 阅读(12838) 评论(1) 推荐(4) 编辑

2017年9月22日

摘要: 在处理业务的时候,有时候需要根据情况使用不同的线程处理模型来处理业务逻辑,这里演示一下常见的线程模型使用技巧。 1、Future模型 前面的章节中提到过Future模型,该模型通常在使用的时候需要结合Callable接口配合使用。Future:未来的、将来的,再结合Callable大概可以明白其功能 阅读全文

posted @ 2017-09-22 10:16 PerKins.Zhu 阅读(10422) 评论(2) 推荐(6) 编辑

2017年9月4日

摘要: 如同数据库连接一样,线程的创建、切换和销毁同样会耗费大量的系统资源。为了复用创建好的线程,减少频繁创建线程的次数,提高线程利用率可以引用线程池技术。使用线程池的优势有如下几点: 1、保持一定数量的线程,减少了线程频繁创建和销毁资源消耗。 2、使用线程的时候直接由线程池中取出线程,省去了创建线程的时间 阅读全文

posted @ 2017-09-04 19:48 PerKins.Zhu 阅读(1430) 评论(0) 推荐(2) 编辑

2017年8月30日

摘要: 系统要实现某个全局功能必定要需要各个子模块之间的协调和配合,就像一个团队要完成某项任务的时候需要团队各个成员之间密切配合一样。而对于系统中的各个子线程来说,如果要完成一个系统功能,同样需要各个线程的配合,这样就少不了线程之间的通信与协作。常见的线程之间通信方式有如下几种: 1、wait和notify 阅读全文

posted @ 2017-08-30 14:32 PerKins.Zhu 阅读(7584) 评论(3) 推荐(2) 编辑

2017年8月19日

摘要: 在多线程中,每个线程的执行顺序,是无法预测不可控制的,那么在对数据进行读写的时候便存在由于读写顺序多乱而造成数据混乱错误的可能性。那么如何控制,每个线程对于数据的读写顺序呢?这里就涉及到线程锁。 什么是线程锁?使用锁的目的是什么?先看一个例子。 调用testSimple()方法开启两个线程执行账户金 阅读全文

posted @ 2017-08-19 13:33 PerKins.Zhu 阅读(2463) 评论(1) 推荐(2) 编辑

2017年8月13日

摘要: 在Thread类中提供了可以停止线程的方法(包括杀死和挂起): @Deprecated public final void stop(){} @Deprecated public final void suspend(){} stop 和 suspend 添加的有Deprecated注释,也即是该方 阅读全文

posted @ 2017-08-13 16:47 PerKins.Zhu 阅读(2247) 评论(0) 推荐(1) 编辑

2017年8月11日

摘要: java中,启动线程通常是通过Thread或其子类通过调用start()方法启动。 常见使用线程有两种:实现Runnable接口和继承Thread。而继承Thread亦或使用TimerTask其底层依旧是实现了Runnabel接口。考虑到java的单继承的限制,所以在开发过程中大部分情况在使用线程的 阅读全文

posted @ 2017-08-11 21:38 PerKins.Zhu 阅读(1631) 评论(0) 推荐(1) 编辑

摘要: 一、为什么要使用多线程? 【使计算机所有资源在执行任务的时候能够全部利用上,以提升计算机资源利用率的方式来提升系统执行效率】 CPU的单核运行速度由于硬件技术问题已经遇到瓶颈,而概念性的“光脑”貌似离我们还很遥远,现在的计算机性能提升方向是向多核发展。多核同时工作,协同完成任务。大家熟知的神威·太湖 阅读全文

posted @ 2017-08-11 15:30 PerKins.Zhu 阅读(2610) 评论(2) 推荐(3) 编辑

摘要: “高并发和多线程”总是被一起提起,给人感觉两者好像相等,实则 高并发 ≠ 多线程 多线程是完成任务的一种方法,高并发是系统运行的一种状态,通过多线程有助于系统承受高并发状态的实现。 高并发是一种系统运行过程中遇到的一种“短时间内遇到大量操作请求”的情况,主要发生在web系统集中大量访问或者socke 阅读全文

posted @ 2017-08-11 11:35 PerKins.Zhu 阅读(33689) 评论(2) 推荐(13) 编辑

2017年7月22日

摘要: 原文链接: java异常处理机制 转载请注明出处! 一款高质量系统不仅仅要考虑到其功能的完备性,同时也要兼顾正确性、健壮性、可靠性、易用性、可读性(可理解性)、可扩展性、可复用性、兼容性、可移植性……而说到这里面的“健壮性”就不得不提到java的异常系统。 在开发过程中见多一些不合理使用Except 阅读全文

posted @ 2017-07-22 15:03 PerKins.Zhu 阅读(450) 评论(0) 推荐(0) 编辑

2017年7月19日

摘要: 原文链接: 为什么覆写equals必须要覆写hashCode? 转载请注明出处! 《Effective java》Chapter Three Item 9:Always override hashCode when you overried equals. (下载链接: Effective_java 阅读全文

posted @ 2017-07-19 22:28 PerKins.Zhu 阅读(1031) 评论(0) 推荐(0) 编辑

2017年5月29日

摘要: 原文链接: Scala对MongoDB的增删改查操作 转载请注明出处! 依赖环境:jdk1.8、Scala 2.12、idea mongodb Driver:3.1.1。注意,mongo for scala的驱动涉及多个jar(如下图),依赖于mongo-java-driver.jar 这里使用的s 阅读全文

posted @ 2017-05-29 00:32 PerKins.Zhu 阅读(6863) 评论(2) 推荐(0) 编辑

2017年5月8日

摘要: 原文链接: 通俗理解数据库隔离机制 转载请注明出处! 在理解数据库隔离机制的时候发现网上很多文章都是千篇一律,解释语言太过于标准书面化,描述的晦涩难懂,因果关系模糊。在这里将自己对隔离机制的理解描述一下,力争做到能够通过浅显的语言描述出来。 数据库隔离机制是对于多线程同时操作数据库而言的。对于单线程 阅读全文

posted @ 2017-05-08 22:03 PerKins.Zhu 阅读(3380) 评论(1) 推荐(2) 编辑

2017年4月3日

摘要: 原文链接: JDK动态代理实现机制 转载请注明出处! 本文只对JDK动态代理的底层实现进行分析,如需了解代理模式和动态代理的使用请移步:设计模式—代理模式 动态代理的两种实现方式(JDK/Cglib) 在读代码之前先清楚两个概念: 1、Class类存储的是类的所有信息,包括类的所有方法、属性、实现接 阅读全文

posted @ 2017-04-03 01:54 PerKins.Zhu 阅读(1672) 评论(2) 推荐(0) 编辑

2017年3月14日

摘要: 原文链接: 动态代理的两种实现方式(JDK/Cglib) 转载请注明出处! 什么是代理模式?(设计模式—代理模式) 代理模式:在调用处不直接调用目标类进行操作,而是调用代理类,然后通过代理类来调用目标类进行操作。在代理类调用目标类的前后可以添加一些预处理和后处理操作来完成一些不属于目标类的功能。为什 阅读全文

posted @ 2017-03-14 16:32 PerKins.Zhu 阅读(3604) 评论(0) 推荐(0) 编辑

2017年3月5日

摘要: 原文链接: spring源码浅析——IOC 转载请注明出处! 在读之前应该明白其重点:读spring读的不是其具体的技术实现,读的是其系统层面的结构和设计! spring漂亮就漂亮在她的结构,包括接口和抽象类的灵活使用! IOC模块只是spring框架中的一个模块,这里只对该模块进行分析(使用版本: 阅读全文

posted @ 2017-03-05 20:57 PerKins.Zhu 阅读(2050) 评论(2) 推荐(1) 编辑

2017年3月4日

摘要: 数据库资料: MySQL 5.1参考手册(中文) MySQL5.1手册(官方英文CHM) java资料: Java Language and Virtual Machine Specifications(JVM规范) 类图: spring-IOC相关类图 电子书: spring源码深度解析 Effe 阅读全文

posted @ 2017-03-04 23:02 PerKins.Zhu 阅读(312) 评论(0) 推荐(0) 编辑

2017年2月24日

摘要: 与一个简单的算法不同,一个合格的系统不仅仅要求具有运行的高效和计算的准确,同时又必须兼顾稳定性、可靠性。其次,对于开发人员来说,又必须具有可拓展性和可维护性。各方面都必须很完善,这样的一个系统才能称得上是一个合格完美的系统。简单的站在开发人员的角度分析,比较重视的是系统的可维护性,毕竟开发人员直面的 阅读全文

posted @ 2017-02-24 22:30 PerKins.Zhu 阅读(14318) 评论(0) 推荐(0) 编辑

2017年1月20日

摘要: 网上对于JVM内存模型讲解的博客很多也很详细,这里就不再进行详细介绍了,只当做学习的一个总结或者记录。 这里先看一张整体的示意图: 这里主要分为五大块,分别是:本地方法栈、方法区、java堆、程序计数器和java栈。其中重点是方法区、java堆和java栈。 下面就把各个区域的性质总结一下:(说明, 阅读全文

posted @ 2017-01-20 23:55 PerKins.Zhu 阅读(1248) 评论(0) 推荐(1) 编辑

2017年1月17日

摘要: 今天遇到一个关于静态代码块和非静态代码块执行的问题。先看如下程序。 程序运行结果如下: 对于前两行的输出倒是没什么疑问,加载的时候先加载静态代码块然后加载非静态代码块,静态代码块只在加载类的时候加载一次,而非静态代码块在每次new一个对象的时候进行加载。可第三行的那个A明明已经赋值为8了,可为什么还 阅读全文

posted @ 2017-01-17 20:57 PerKins.Zhu 阅读(359) 评论(1) 推荐(0) 编辑

点击右上角即可分享
微信分享提示