文章分类 - 语言基础
目前学习的语言有C++,Java, Golang
摘要:一. context定义 context是go并发编程中经常用到的编程模式, 旨在实现以下机制: 对于并发的层层任务, 做到上层任务取消之后, 所有的下层任务都会被取消 中间的某层任务取消后, 只会将当前任务和其下层任务取消, 而不会影响到上层任务以及同级任务 注解: 我们将进程之间的串行抽象为一棵
阅读全文
摘要:一. 泛型的定义 泛型即开发过程中编写适用于所有类型的模板, 只有在具体使用的时候才能确定其真正的类型 二. 泛型的引入与声明 以下是一段求两个int类型最大值的代码 func MaxValue(a, b int) int { if a > b { return a } return b } 我们发
阅读全文
摘要:前言 我们知道Go语言有着自己的一套独特的面向对象编程的方法, 当然更多人称之为面向接口编程, 但是这里因为和函数长得过于相似, 所以也存在着一些异同点, 其中最容易混淆的概念就是Go语言设计者设计的一些简化特性, 本文会对此一些独特的特性作一些总结 Go中的“类” 一. 结构体 Go语言中去除了方
阅读全文
摘要:网络的重要概念 基本概念涉及很多计网知识, 这里不过多赘述 一. IP地址 用于唯一的标识网络中的每台计算机 IP地址通常使用点分十进制来表示. xx.xx.xx.xx, 每一个十进制数的范围是[0, 255] 一个IP地址分为两个部分, IP地址=网络地址+主机地址 IPv6是互联网工程任务组设计
阅读全文
摘要:Java中的IO 文件的操作 有三种构造器, 可以"捆绑"到某个路径, 然后调用file.createNewFile() 可以创造文件 一些常用的文件方法, 包括但不限于获取名字, 路径, 父级目录, 大小, 是否存在, 删除等... 一些常用的目录方法, 这里其实目录也可以当作一种特殊的文件, f
阅读全文
摘要:Java中的多线程 一. 线程的创建 在Java中使用线程有两种方法: 继承Thread类 实现Runnable接口 1. 继承Thread 类 使用 线程 例: public class Main { public static void main(String[] args) { Cat cat
阅读全文
摘要:Map接口 Map接口实现类的特点 1). Map 与 Collection 并列存在, 用于保存具有映射关系的数据: {Key, Value} 2), Map 中 的Key和Value 可以是任何引用类型的数据, 会封装到HashMap$Node 对象中 3). Map 中的Key不可以重复, 但
阅读全文
摘要:LinkedHashSet HashSet的子类, 可以实现插入顺序和输出顺序保持一致, 但是效率较低 1). 在LinkedHashSet 中维护了一个hash表和双向链表 2). 每一个节点都有pre和next属性, 这样可以形成双向链表, 3). 在添加一个元素时, 先求hash, 再求索引,
阅读全文
摘要:HashSet Set接口说明 1). Set 接口是 Collection 的子接口, Set 接口的实现类不能存放重复的元素 可以添加null, 且存放的次序是无序的(存放和取出的顺序不一致) 注意: 取出的顺序虽然不是添加的顺序, 但是是固定的 2). 可以利用迭代器遍历, 但是不能使用下标索
阅读全文
摘要:Vector简介 前言: 建议首先了解ArrayList的底层源码 链接 底层结构 protect Object[] elementData 底层也是一个对象数组 Vector是线程同步的, 即线程安全的 扩容机制 如果是无参构造, 则默认10, 满之后就会2倍扩容 如果是有参构造, 则按参数, 满
阅读全文
摘要:扩容机制 结论 transient Object[] elementData ArrayList中维护了一个Object类型的数组, elementData 当创建ArrayList对象时, 如果使用的是无参构造器, 则初始elementData容量为0, 第一次添加 扩容elementData为1
阅读全文
摘要:封装类 封装类简介 定义 Java的数据类型分为基本数据类型和引用数据类型, 但是Java也为基本数据类型分别设计了对应的类 这就是包装类(Wrapper Classes) 8个包装类 其中除了Boolean和Character之外, 其他的六种包装类都继承自类Number 封装类性质 包装类初始化
阅读全文
摘要:定义 一个类的内部又完整的嵌套了另一个类结构, 被嵌套的类称为内部类(inner class), 嵌套其他类的类被称为外部类(outer class), 是 类的第五大成员 属性, 方法, 构造器, 代码块, 内部类 可以体现类与类之间的包含关系, 内部类的最大的特点就是可以直接访问私有的属性 基本
阅读全文
摘要:定义 接口就是给出一些没有实现的方法, 封装到一起, 在某个类要使用的时候, 根据具体情况将这些方法实现出来 interface 接口名 { //属性 //方法 } class 类名 implements 接口 { 自己的属性; 自己的方法; 必须实现的接口的抽象方法 } 在Jdk7之前, 接口内的
阅读全文
摘要:单例模式 将构造器声明为private, 并提供一个public 的get函数来获得单例 饿汉式, 在类加载的时候就直接创建好单例, 可能会浪费内存, 但是不会出现线程问题 懒汉式, 只有被使用的时候才会创建, 使用if判断一下, 不会浪费内存, 但是可能出现 线程问题而new 多个单例 final
阅读全文
摘要:Java代码块 定义 代码块又称为初始化块, 属于类中的成员(类的一部分), 类似于方法, 将逻辑语句 封装在方法体中, 通过{} 包围起来 但是和方法不同, 没有方法名, 没有返回, 没有参数, 只有方法体, 而且不用通过对象或者 类显式调用, 而是加载类的时候, 或者创建对象的时候隐式调用 基本
阅读全文
摘要:动态绑定机制 内容: 当调用对象方法时, 该方法会与该对象的内存地址/运行类型绑定 当调用对象属性时, 没有动态绑定机制, 哪里声明, 哪里使用, 也就是遵循就近原则 例子 我们先给出两个类, 类A作为父类, 类B作为A的子类, 两者的属性和方法完全一致 class A { // 父类 public
阅读全文
摘要:Java可变参数 Java中可以允许将同功能, 同名称的参数个数不同的方法合并为一个方法, 就是可变参数方法. 可变参数大大提高了代码的复用性, 通过灵活运用可变参数,我们可以让代码更加简洁、高效,减少冗余。个人感觉这个性质很有趣 简单示例 public class Main { public st
阅读全文
摘要:一. JVM内存分配 从整体上来看,Java运行时内存空间可以分为两种,线程私有和线程共享 线程私有: 虚拟机栈 本地方法栈 程序计数器 线程共享: 堆 方法区(1.8之前叫永久代,1.8之后叫元空间) 直接内存(在Java运行时内存区域之外) 详细解释 1. 程序计数器: 程序计数器是一块较小的内
阅读全文

浙公网安备 33010602011771号