10 2019 档案

摘要:自顶向下,OSI参考模型分为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。之所以称之为参考模型,是因为虽然制定了此标准,但是实际情况中并没有得到完全的遵守。在计算机网络的章节中,不再对物理层、数据链路层进行记录。只对开发者更为关心的上面五层进行记录。 下面以以一个实际案例来介绍OSI 阅读全文
posted @ 2019-10-29 10:44 菜菜菜鸡 阅读(284) 评论(0) 推荐(0)
摘要:引言 设计模式分为三种类型: 1)创建者模式:单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式 2)结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式 3)行为型模式:模板方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式 阅读全文
posted @ 2019-10-18 18:28 菜菜菜鸡 阅读(116) 评论(0) 推荐(0)
摘要:一、依赖关系 只要是在类中用到了对方,那么他们之间就存在依赖关系。如果没有对方,连编译都通过不了。一下情况视为对A类对B类的依赖关系: 1)B类是A类的成员属性 2)B类是A类某方法的返回值类型 3)B类值A类某方法的参数类型 4)B类是A类的某方法的局部变量(排除形参),此用法违反了迪米特法则 二 阅读全文
posted @ 2019-10-18 15:14 菜菜菜鸡 阅读(618) 评论(0) 推荐(0)
摘要:一、很多初学者分不清JMM和JVM的内存模型,本篇只是简要的谈一谈什么是JMM,并不深入探讨。 示意图A: 在多线程操纵共享资源时,并不是对资源本身进行的操作,而是将共享资源的副本复制了一份到自己的私有空间中,等使用完了再写回去覆盖原资源,我可能在瞎说,你先别信,举个例子来验证一下: class N 阅读全文
posted @ 2019-10-15 16:00 菜菜菜鸡 阅读(402) 评论(0) 推荐(0)
摘要:引言: 前面的文章提到,在8版本以后,Java内存区域:Heap包括了PSYoungGen、ParOldGen,以及堆外内存MetaSpace。JVM 在进行GC时,并非每次都对上面三个内存区域一起回收的,大部分时候回收的都是新生代。由于新生代和老年代的内存空间大小不同以及对象存活率不同,所以针对不 阅读全文
posted @ 2019-10-15 11:54 菜菜菜鸡 阅读(3695) 评论(0) 推荐(0)
摘要:一、再议永久代和方法区 上一篇提到:在8版本以前,JVM采用堆空间的一部分实现方法区,这部分堆空间被称为“永久代”,由于类的结构信息和运行时常量池是放在方法区的,使用永久代实现方法区容易导致堆内存溢出。在8版本推出以后,Java采用了堆外内存即本机物理内存实现方法区,我们把这部分空间称为“元空间”。 阅读全文
posted @ 2019-10-14 15:21 菜菜菜鸡 阅读(460) 评论(0) 推荐(0)
摘要:Redis提供了两种持久化的方式: RDB(Redis DataBase) AOF(Append Of File) 一、RDB 1)原理 在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是Snapshot,它恢复时是将快照文件直接读到内存。 Redis会单独创建一个子进程进行持久化操作,会先将数 阅读全文
posted @ 2019-10-13 21:33 菜菜菜鸡 阅读(174) 评论(0) 推荐(0)
摘要:Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来——《围Java》·周志明 Java程序员将c++中繁琐的delete交给了虚拟机,虽然我们一直创建对象,但从未手动删除过对象,这一切正悄然发生着。我们把内存控制的权利交给了JVM,直到那一天 阅读全文
posted @ 2019-10-13 21:28 菜菜菜鸡 阅读(213) 评论(0) 推荐(0)
摘要:一、示意图 注:Car car1 = new Car; 其中car1作为引用类型变量,保存在Java栈中,而对象本身保存在堆中。类加载器只负责将Car.class文件加载到内存中,此后JVM将根据这个数据文件封装对应的数据结构(即类对象),虽然类对象也是对象,但是HotSpot虚拟机将其放在了方法区 阅读全文
posted @ 2019-10-12 18:14 菜菜菜鸡 阅读(728) 评论(0) 推荐(0)
摘要:一、synchronized 案例1: 由于输出结果是动态的不好截图,是能口述输出结果:先输出B:******sleep*****,2.9秒后输出A:******drink***** 在main方法中,使用Thread.sleep(100)秒让主线程睡眠,确保A线程先于B线程拿到资源。首先,我们知道 阅读全文
posted @ 2019-10-11 21:35 菜菜菜鸡 阅读(1168) 评论(0) 推荐(0)
摘要:原创作品转载请附:https://www.cnblogs.com/superlsj/p/11655523.html 一、一个案例引发的思考 即所谓的并发修改异常。我们先来分析一下为什么会报这个错。 二、错误产生的原因 我们知道,ArrayList是线程不安全的,它的所有方法没有加Synchroniz 阅读全文
posted @ 2019-10-11 17:21 菜菜菜鸡 阅读(584) 评论(0) 推荐(1)
摘要:在Java1.8以后,推出了函数式编程的解决方案。初学几个月的朋友一定对这样:() -> {} 的东西恐惧又陌生。这是啥呀,这怎么用啊? 一、函数式编程:拷贝小括号,写死右箭头,落地大括号!!! 在介绍Lambda表达式之前,先来了解一下函数式接口。所谓的函数式接口,就是接口中只有一个抽象方法。在8 阅读全文
posted @ 2019-10-10 17:17 菜菜菜鸡 阅读(149) 评论(0) 推荐(0)
摘要:一、设计堆内存溢出异常:OutOfMemoryError: 1 public class Main { 2 public static void main(String[] args) { 3 List<Demo> list = new ArrayList<>(); 4 while(true) { 阅读全文
posted @ 2019-10-04 21:19 菜菜菜鸡 阅读(168) 评论(0) 推荐(0)
摘要:一、什么是主从复制? 为当主机性能更新后,根据配置和策略,自动同步到备份机的机制。其中主机处理写操作,从机处理读操作。 这样做使得读写分离,大大提高了性能,也有容灾快速恢复的优点。 此时开启了多个Redis服务器,但是相对于主机来说,从机的配置文件是不完全相同的,因此需要拷贝多个redis.conf 阅读全文
posted @ 2019-10-04 16:08 菜菜菜鸡 阅读(153) 评论(0) 推荐(0)
摘要:一、Multi、exec、discard 从输入Multi命令开始,输入的命令都会依次进入命令队列中,但不会执行,直到输入Exec命令后,Redis会将之前命令队列中的命令依次执行。 在命令组队的过程中,可以使用discard命令放弃组队。 但是需要注意的是:如果队列中某一条命令的语法格式不正确,那 阅读全文
posted @ 2019-10-03 16:12 菜菜菜鸡 阅读(170) 评论(0) 推荐(0)
摘要:引言: 在前一篇文章中,提到Redis键值对的存储方式支持多种数据类型的存储:key vlaue(String类型、set类型、list类型、hash类型、zset类型) 一、关于key的命令 redis-server /myredis/redis.conf:后台启动Redis服务 redis-cl 阅读全文
posted @ 2019-10-02 16:33 菜菜菜鸡 阅读(476) 评论(0) 推荐(0)
摘要:一、NoSQL数据库简介 在介绍NoSQL之前,先来讨论一下技术的分类。 在MVC项目的开发过程中,我们使用RDBMS(关系型数据库)+jdbc解决M层的功能性问题,用Java解决C层的问题,用jsp+HTML解决V层的问题,再加上使用SVN的使用解决版本控制问题,做完成项目开发后,将项目发布到Li 阅读全文
posted @ 2019-10-02 10:07 菜菜菜鸡 阅读(135) 评论(0) 推荐(0)