![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 77
na_tion
这个作者很懒,什么都没留下…
展开
-
java基础--06--Unsafe类
Java和C++语言的一个重要区别就是Java中我们无法直接操作一块内存区域,不能像C++中那样可以自己申请内存和释放内存。Java中的Unsafe类为我们提供了类似C++手动管理内存的能力。Unsafe类,全限定名是sun.misc.Unsafe,从名字中我们可以看出来这个类对普通程序员来说是“危险”的,一般应用开发者不会用到这个类。一、unsafe的主要功能二、Unsafe常用功能(1)CAS(2)线程通信park/unpark(3)内存屏障详细参考:Java中的Uns原创 2021-09-13 14:27:36 · 141 阅读 · 0 评论 -
java基础--05--反射
一、反射简介一个类的字节码文件通过类加载器加载到jvm的堆中最终会生成一个该类的Class对象【注意:同一个类加载器+同一个class文件,只有一个Class对象(类的命名空间)】,而且通过该类的所有实例对象都可以得到这个Class对象,反过来说通过Class对象我们也可以实例化对象。通过Class对象实例化对象就是所谓的反射。二、反射的基本使用我们既然得到了一个类的Class对象,这个Class对象中肯定包含了该类的属性和方法的所有信息,换句话说就是可以调用里面的各种方法(公共方法和私有方原创 2021-04-19 16:39:24 · 88 阅读 · 0 评论 -
java基础--04--集合框架--01--总述
一、集合引入数组、集合都用于对多个对象进行存储,数组特点及缺点如下1.1、1.2,故引入集合1.1 数组特点长度确定 类型确定 有序、可重复1.2 数组缺点长度不可修改 删除、插入等操作效率不高 无序、不重复的无法满足数组与集合的区别如下:数组长度不可变化而且无法保存具有映射关系的数据;集合类用于保存数量不确定的数据,以及保存具有映射关系的数据。 数组元素既可以是基本类型的值,也可以是对象;集合只能保存对象(基本数据类型存在集合中须转为包装类)。二、集合框架Ja原创 2021-04-11 19:46:22 · 75 阅读 · 0 评论 -
Java基础--02--面向对象
一、面向对象三大特征--封装、继承、多态 封装 继承 多态 what 该隐藏的隐藏,该暴露的暴露 继承父类的属性、方法 一个行为多个表现形式 why 高内聚,低耦合 避免代码重复,提高程序可维护性 消除耦合 how private 单继承 方法重写 protected 多重继承 接口 public 被多个子类继承 抽象类 缺省 继承常用于模板,接口常用于规.原创 2021-04-11 17:31:59 · 111 阅读 · 0 评论 -
Java基础--03--String
一、String底层结构public final class String implements java.io.Serializable, Comparable<String>, CharSequence { private final char value[]; ...JDK8及之前,String类的当前实现是将字符存储在char数组中,每个字符使用两个字节(16位)。实践发现,字符串是堆的主要组成部分(占比25%)+大多数字符串对象只包含拉原创 2021-03-27 20:27:57 · 221 阅读 · 0 评论 -
java8新特性学习笔记2--函数式接口
二、函数式接口2.1 概念(1)一个函数式接口有且只有一个抽象方法;(2)默认方法不是抽象方法,因为它们已经实现了;(3)重写了超类Object类中任意一个public方法的方法并不算接口中的抽象方法;(4)不写@FunctionalInterface注解,且满足如上3个条件的接口,也是函数式接口,注解只是告诉编译器进行检查。2.2 函数式接口例子public interface Comparable<T> { public int compareTo(T o原创 2020-12-14 19:08:02 · 86 阅读 · 0 评论 -
java8新特性学习笔记1--lambda表达式
一、lambda表达式1.1 形式(Integer a1, Integera2)->{Integer.compare(a1,a2)}(Integer a1, Integera2):lambda形参列表 ,相当于接口中抽象方法形参列表-> : lambda操作符{Integer.compare(a1,a2)}:lambda方法体,相当于接口中抽象方法的实现方法体labmda表达式本质:接口的匿名实现类labmda表达式目的:简化代码1.2 lambda形参原创 2020-12-14 18:22:14 · 115 阅读 · 0 评论 -
java基础--04--集合框架--03--HashMap--put
(1)key对应的类须重写hashCode()与equals()方法,否则key中值相同时,仍会添加(key重复)package com.fupng3.collectionpack;public class Person { String name; int age; public Person() { } public Person(String name, int age) { this.name = name; th原创 2020-12-10 01:52:12 · 171 阅读 · 0 评论 -
java基础--04--集合框架--02--HashMap初始化/定位桶位置/扩容源码分析--jdk1.8
一、初始化1.1 默认初始化 //默认初始化仅指定加载因子,首次put元素时,会使用resize()开辟16(2的4次幂)个长度的空间 public HashMap() { this.loadFactor = DEFAULT_LOAD_FACTOR; // all other fields defaulted }1.2 指定容量初始化 public HashMap(int initialCapacity) { this(init原创 2020-12-09 15:06:55 · 477 阅读 · 0 评论 -
Java基础--01--数据类型/方法/数组
一、Java基本数据类型1.1一般的整型变量默认为int,所以long型需要加L或l;一般的浮点型变量默认为double,所以float型需要加F或f;1.2 自动类型转换(a)byte->short->int->long->float->double可自动类型转换;反方向须强制类型转换1.3 char型2个字节长度,为什么可以表示汉字?char型只能表示unicode编码范围在\u0000至\uffff之间的汉字,超过2个字节的无法表示,如“????”原创 2020-12-01 22:07:03 · 232 阅读 · 0 评论