![](https://img-blog.csdnimg.cn/2019090419043127.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java
Java核心知识汇总
优惠券已抵扣
余额抵扣
还需支付
¥19.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
SoWhat1412
微信搜索【SoWhat1412】,第一时间阅读原创干货文章。人之患、在好为人师、不实知、谨慎言。点点滴滴、皆是学问、看到了、学到了、便是收获、便是进步。
展开
-
线程交替打印
线程交替打印转载 2019-10-19 11:34:35 · 709 阅读 · 0 评论 -
干掉 try catch !
干掉丑陋的 try catch转载 2019-10-31 19:27:46 · 756 阅读 · 1 评论 -
【Java基础】还看不懂JDK7 HashMap环的产生原理你来打我
JDK7对旧table数据重定位到新table的函数transfer如下,其中重点关注部分以标出。头插法正常情况下:并发情况下线程1只执行了Entry<K,V> next = e.next就被挂起了,而线程2正常执行完毕,结果图如下:线程1接着下面继续执行:通过逐步分析跟绘图可以知道红色部分会有环产生。...原创 2020-03-31 13:56:04 · 3890 阅读 · 44 评论 -
Java之花样玩枚举
{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830...原创 2019-09-07 14:00:49 · 2071 阅读 · 2 评论 -
javac -cp -d
1.概述一般生成把java编译成class文件,有以下写法:a). javac [-cp xxx.jar] xxxx.javab). javac [-cp xxx.jar] -d . xxxx.javac). javac [-cp xxx.jar] -d ./classes xxxx.java第一,二种方式是在当前目录中生成class文件,第三种方式是在classes文件夹下生成cla...转载 2020-02-14 00:15:06 · 1834 阅读 · 5 评论 -
Lombok 快速上手
文章目录Lombok简介Lombok使用添加maven依赖安装插件解决编译时出错问题示例@Data使用自动化日志变量常用注解Lombok工作原理运行时解析编译时解析Lombok的优缺点参考Lombok简介官方介绍Project Lombok is a java library that automatically plugs into your editor and build tools...转载 2020-01-07 10:59:41 · 807 阅读 · 6 评论 -
Java 深拷贝 和 浅拷贝 clone
关于Java的深拷贝和浅拷贝,简单来说就是创建一个和已知对象一模一样的对象。可能日常编码过程中用的不多,但是这是一个面试经常会问的问题,而且了解深拷贝和浅拷贝的原理,对于Java中的所谓值传递或者引用传递将会有更深的理解。1、创建对象的5种方式通过 new 关键字这是最常用的一种方式,通过 new 关键字调用类的有参或无参构造方法来创建对象。比如 Object obj = new Obje...原创 2019-11-27 16:15:22 · 24192 阅读 · 7 评论 -
为什么一个 byte 的存储范围是 -128 ~ 127
我们知道,对于有符号类型,计算机在处理的时候会把最高位当做符号位,0表示正数,1表示负数。举例来说(以下举例均针对8位有符号数):0000 0001即为1,1000 0001即为-1,那么很容易得到8位有符号数值的表示范围应该是1111 1111~0111 1111,也就是-127~127,问题来了,-128是怎么来的呢?在说明这个问题之前,先来补充点额外的知识:在计算机的存储和计...原创 2019-10-22 20:18:12 · 8152 阅读 · 5 评论 -
单例模式通俗说
java多线程程序(Program):是一个静态的概念,一般对应于操作系统中的一个可执行文件进程(Process):执行中的程序叫做进程(Process),是一个动态的概念。现代的操作系统都可以同时启动多个进程。有如下特点:进程是程序的一次动态执行过程, 占用特定的地址空间。 每个进程由3部分组成:cpu、data、code。每个进程都是独立的,保有自己的cpu时间,代码...原创 2019-11-23 23:14:39 · 588 阅读 · 0 评论 -
Java中Comparable和Comparator接口的区别
Comparable 简介Comparable 是排序接口若一个类实现了Comparable接口,就意味着“该类支持排序”。此外,“实现Comparable接口的类的对象”可以用作“有序映射(如TreeMap)”中的键或“有序集合(TreeSet)”中的元素,而不需要指定比较器。接口中通过x.compareTo(y)来比较x和y的大小。若返回负数,意味着x比y小;返回零,意味着x等于y;返回...原创 2019-11-22 11:10:27 · 681 阅读 · 0 评论 -
Java IO 之 装饰模式
Java 处理流相当于对节点流(以File 或Byte 开头的类)进行了包装装饰,装饰模式原理如下package com.sxt.io;/** * 模拟咖啡 * 1、抽象组件:需要装饰的抽象对象(接口或抽象父类) * 2、具体组件:需要装饰的对象 * 3、抽象装饰类:包含了对抽象组件的引用以及装饰着共有的方法 * 4、具体装饰类:被装饰的对象 * * @author TW...原创 2019-11-19 18:01:06 · 542 阅读 · 2 评论 -
Java IO 讲解
一、java io 概述1.1 相关概念Java IO:Java IO即Java 输入输出系统。不管我们编写何种应用,都难免和各种输入输出相关的媒介打交道,其实和媒介进行IO的过程是十分复杂的,这要考虑的因素特别多,比如我们要考虑和哪种媒介进行IO(文件、控制台、网络),我们还要考虑具体和它们的通信方式(顺序、随机、二进制、按字符、按字、按行等等)。Java类库的设计者通过设计大量的类来攻...原创 2019-11-19 11:37:08 · 532 阅读 · 2 评论 -
javap 反编译 java 字节码文件
概述:javap是 Java class文件分解器,可以反编译,也可以查看java编译器生成的字节码,从而对代码内部的执行逻辑进行分析。语法:把java文件编译为class文件:javacTest.java(Test.java为java文件名) 生成对应的 .class 文件 Test.class执行javap操作:javap ...原创 2019-11-13 19:19:41 · 6984 阅读 · 0 评论 -
java 泛型原理 类型擦除
1.Java泛型的实现方法:类型擦除大家都知道,Java的泛型是伪泛型,这是因为Java在编译期间,所有的泛型信息都会被擦掉,正确理解泛型概念的首要前提是理解类型擦除。Java的泛型基本上都是在编译器这个层次上实现的,在生成的字节码中是不包含泛型中的类型信息的,使用泛型的时候加上类型参数,在编译器编译的时候会去掉,这个过程成为类型擦除。如在代码中定义List<Object>和L...原创 2019-11-13 17:04:56 · 30822 阅读 · 4 评论 -
一文搞定 Java泛型
1.什么是泛型Java在1.5之后加入了泛型的概念。泛型,即“参数化类型”。泛型的本质是为了参数化类型(将类型参数化传递)(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。举个例子List arrayList = new A...原创 2019-11-12 19:52:01 · 50685 阅读 · 11 评论 -
Java 泛型 中的 PECS 原则 上界 下界
先来看一个错误:List<? extends Foo> list1 = new ArrayList<Foo>();List<? extends Foo> list2 = new ArrayList<Foo>(); /* Won't compile */ list2.add( new Foo() ); //error 1 list1.a...转载 2019-11-12 19:00:22 · 933 阅读 · 0 评论 -
Java IO 通俗说
Java IO 形象说转载 2019-11-11 18:39:25 · 1125 阅读 · 1 评论 -
Logback 标准化模板
Logback 标准化模板原创 2019-11-10 10:46:07 · 660 阅读 · 1 评论 -
Java函数传递方式值传递
在 C++ 中函数调用的时候,值传递: 一般是将源数据复制一份然后 重新操作,变量内存地址都不一样。 引用传递:这点比较特殊 传递的还是原来变量,只是变量的别名而已,函数内部修改会直接导致外部改变。 指针传递: 获取到函数外部对象的指针(也就是地址),然后函数里面会根据地址去操作地址下对象的值。Java中也类似结论如下(具体讲解):在Java里面,当调用方法时,如果传入的数值为基本...原创 2019-11-07 16:14:35 · 1624 阅读 · 0 评论 -
Java package Jar包用法
一般来说都用eclipse自动化图形工具搞定,我用的是ubuntu,所以需要自己打包引入。什么是包?这是对java源代码的组织和管理的一种方式,比如:当操作系统某个目录的文件非常多的时候,我们一般建立子目录分类管理,java中的包跟文件目录的作用类似。1,声明一个包,用package,放在文件的第一行,如:package com.ghostwu.HelloWorld;publ...转载 2019-08-07 16:00:17 · 1451 阅读 · 0 评论