2 小凯凯呢

尚未进行身份认证

我要认证

菜鸟一个

等级
TA的排名 16w+

synchronized修饰静态方法、普通方法与代码块的区别.

https://www.jianshu.com/p/3cfdf32bd37e

2020-08-20 21:30:31

重写了equals为什么还要重写hashcode

首先先来看看不重写任何方法的结果public class equalsAndhashcodeDemo {//equals和hashcode public static void main(String[] args) { Student student=new Student("小明",2,1); Student student1=new Student("小明",2,1); System.out.println(student.equals(st

2020-08-15 11:48:25

Linux (常用)命令

1.man有问题找男人(man),可以查看指令用法,例: man cd 查看cd的用法.2.cd用来切换目录 cd /返回根目录, cd ~返回家目录 ,cd … 返回上级目录3.pwd查看当前目录完整路径4.touch创建一个空文件.5.echo编写文件内容 例:echo “编写内容” >指定文件6.cat读取文件内容.7.mkdir创建目录 例:mkdir b 创建目录b. 例:mkdir b/d/c/ -p 创建目录组8.rm删除

2020-08-09 15:42:55

类加载机制

个数

2020-08-02 18:17:04

java反射机制

认识反射机制:我们正常的关于对象的处理流程:根据包名.类名找到类.所谓的"反"指的是根据对象来取得对象的来源信息,⽽而这个"反"的操作核⼼心的处理理就在于Object类的⼀一 个方法:public final native Class<?> getClass(); 该方法返回的是⼀一个Class类对象,这个Class描述的就是类.public class Test {//getclass() public static void main(String[] args) {

2020-08-02 15:01:04

String,StringBuffer,StringBuider的区别

1.String字符串常量简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,这样不仅效率低下,而且大量浪费有限的内存空间,所以经常改变内容的字符串最好不要用 String 。因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,那速度是一定会相当慢的..

2020-08-01 19:02:15

设计模式之单例模式

单例模式单例模式是设计模式中最简单的形式之一。这一模式的目的是使得类的一个对象成为系统中的唯一实例。要实现这一点,可以从客户端对其进行实例化开始。因此需要用一种只允许生成对象类的唯一实例的机制,“阻止”所有想要生成对象的访问单例模式,属于创建类型的一种常用的软件设计模式。通过单例模式的方法创建的类在当前进程中只有一个实例(根据需要,也有可能一个线程中属于单例,如:仅线程上下文内使用同一个实例).特点优点:(1) 由于单例模式在内存中只有一个实例,减少内存开支,特别是一个对象需要频繁地创建销毁时,而且

2020-08-01 13:47:51

哈希表

在编程实现中,常常面临着两个问题:存储和查找,存储和查找的效率往往决定了整个程序的效率。脑补下,你在家里忘记了指甲刀放在哪里,通常要在你家所有抽屉中顺序寻找,直到找到,最差情况下,有N个抽屉,你就要打开N个抽屉。这种存储方式叫数组,查找方法称为「遍历」。脑补下,你是一个整理控,所有物品必须分门别类放入整理箱,再将整理箱编号,比如1号放入针线,2号放入证件,3号放入细软。这种存储和查找方式称为「哈希」,如果这个时候要查找护照,你不许要再翻所有抽屉,直接可在2号整理箱中获取,通常只用一次查找即可,如何编号整

2020-07-31 15:38:44

JVM和JMM的关系

JVM(java Virtual Machine)JVM(Java Virtual Machine的简称。意为Java虚拟机。)虚拟机: 指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统。JDK1.6java虚拟机模型大致如上图,方法区中包含常量池;在JDK1.7常量池分为类常量池,运行时常量池和字符串常量池,并将 字符串常量池 移进了堆中;JDK1.8后,方法区移进了本地内存.改名为元数据区.这就是大致的变化运行时数据区JVM会在执行Java程序的过程中把它管理的

2020-07-30 22:17:51

JVM内存分配与回收策略

了解内存分配与垃圾回收之前先来看图:将GC区分为年轻代,老年代,其次是方法区或者元空间为永久代.年轻代又分为伊甸区,和survivor0和survivor1.内存分配与回收1. 对象优先在Eden分配大多数情况下,对象在新生代Eden区中分配。当Eden区没有足够的空间进行分配时,虚拟机将发生一 次Minor GC.2.大对象直接进入老年代所谓的大对象是指,需要大量连续空间的Java对象,典型的大对象就是那种很长的字符串以及数组。大对象对虚拟机的内存分配是一个坏消息,经常出现大对象容易

2020-07-30 14:20:00

JVM垃圾收集算法及垃圾收集器

如何判断对象已死?1.引用计数法很多教科书判断对象是否存活的算法是这样的:给对象中添加一个引用计数器,每当有一个地方引 用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。即对象已死.引用计数法实现简单,判定效率也比较高,在大部分情况下都是一个不错的算法.但是,在主流的JVM中没有选用引用计数法来管理内存,最主要的原因就是引用计数法无法解决对象的循环引用问题/** *testGC()方法执行后,objA和objB会不会被GC呢? *@author zzm

2020-07-29 20:02:29

ConcurrentHashMap原理

我们都知道Hashmap是线程不安全的,在多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMapHashTable和HashMap的实现原理几乎一样,差别无非是 HashTable不允许key和value为null HashTable是线程安全的但是HashTable线程安全的策略实现代价却太大了,简单粗暴,get/put所有相关操作都是synchronized的,这相当于给整个哈希表加了一把大锁。多线程访问时候,只要有一个线程访问

2020-07-28 20:21:46

深入了解多线程(Lock锁,AQS,CAS等)

开局先来两张图:1.乐观锁与悲观锁不是指什么具体类型的锁,而是指在并发同步的角度。乐观锁:认为对于共享资源的并发操作是不会发生修改的,在更新数据的时候,会采用尝试更新,不断重试的方式更新数据。乐观的认为,不加锁的并发操作共享资源是没问题的.乐观锁假设认为数据一般情况下不会产生并发冲突,所以在数据进行提交更新的时候,才会正式对数据是 否产生并发冲突进行检测,如果发现并发冲突了,则让返回用户错误的信息,让用户决定如何去做。悲观锁:认为对于共享资源的并发操作,一定是发生xi修改的,哪怕没有发生修改,也

2020-07-28 13:36:02

网络应用层以及http

HTTP(超文本传输协议)超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联

2020-07-26 17:51:30

udp-tcp-ip详解

UDP协议UDP协议格式:16位UDP长度, 表示整个数据报(UDP首部+UDP数据)的最大长度.如果16位校验和出错,则数据就直接丢失.UDP的特点:无连接: 知道对端的IP和端口号就直接进行传输, 不需要建立连接;不可靠: 没有确认机制, 没有重传机制; 如果因为网络故障该段无法发到对方, UDP协议层也不会给应用层返 回任何错误信息;面向数据报: 不能够灵活的控制读写数据的次数和数量,应用层交给UDP多长的报文, UDP原样发送, 既不会拆分, 也不会合并;UDP的缓冲区:UDP没

2020-07-26 09:56:02

初识网络基础

网络发展1.网络独立最开始每台计算机是独立的,都有自己独立的数据2.网络互连后来,多台计算机互连起来起来,实现数据共享.3.局域网LAN计算机越来越多,通过交换机和路由器连接起来,局域网出现4.广域网WAN局域网越来越多,将千里之外的计算机连在一起,这样广域网出现.协议机器之间的约定,就叫协议.计算机之间的传输媒介是光信号和电信号. 通过 “频率” 和 “强弱” 来表示 0 和 1 这样的信息. 要想传递各种不同的信息, 就需要约定好双方的数据格式. 网络中存在各种各样的协议.例如;

2020-07-25 13:44:11

基础IO流

File文件类文件类基础方法:构造方法:public File(String pathname){} 创建指定路径文件对象public File(String parent,String child) 同上,可指明父路径和子路径基本文件操作方法:boolean exists() 指定文件或目录是否存在boolean isDirectory() 判定一个文件是目录boolean isFile() 判断是否是文件boolean delete() 删

2020-07-24 19:00:58

java线程池简介

线程池线程池(英语:thread pool):一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。可用线程数量应该取决于可用的并发处理器、处理器内核、内存、网络sockets等的数量。线程池的优势1)、降低系统资源消耗,通过重用已存在的线程,降低线程创建和销毁造成的消耗;(2)、提高系统响应速度,当有任务到达时,通过复用

2020-07-24 14:13:48

操作系统进程与线程(多线程).

操作系统操作系统(Operating System,简称OS)是管理计算机硬件与软件资源的计算机程序。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。简单来说:操作系统就是多个基本程序的集合,包括内核(进程管理,内存管理,文件管理和驱动管理)和其他程序进程对操作系统来说,一个任务就是一个进程(Process).进程是担当分配系统资源(CPU时间,内存)的实体,是具有动态特性的.是

2020-07-23 23:32:56

数据库基础-关系数据库简介和关系代数8种运算方法及例题

数据库基础-关系数据库简介和关系代数8种运算方法及例题很清晰

2020-07-20 22:45:18

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。