![](https://img-blog.csdnimg.cn/20190502210530335.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
猴子的Java学习笔记
一步一步,脚踏实地
我能在河边钓一整天的鱼
欢迎来到我的酒馆
展开
-
Java中的注解
注解的概念 什么是注解 注解就是做个笔记。只不过这个笔记可以在程序运行时获得 元注解 @Target:指明这个注解能用在哪里? @Retention:指明这个注解什么时候起作用 @Documented:指明这个注解能形成文档 @inherit:指明这个注解能否被继承 ...原创 2019-07-09 19:20:03 · 120 阅读 · 0 评论 -
24.虚拟内存是怎么起作用的?
虚拟内存是怎么起作用的? 匀出一部分硬盘空间作为虚拟内存原创 2019-05-30 09:49:36 · 180 阅读 · 0 评论 -
23.操作系统是如何管理内存的?地方太小不够塞肿么办?
目录 操作系统是如何管理内存的? 地方太小不够塞肿么办? 操作系统是如何管理内存的? 静态分配➡动态分配 地方太小不够塞肿么办? 分段,解决外碎片。分页,解决内碎片 ...原创 2019-05-29 14:11:40 · 273 阅读 · 0 评论 -
22.程序和进程(Linux),代码和数据为什么分开存放?
目录 程序和进程(Linux) 代码和数据为什么分开存放? 原图 程序和进程(Linux) 程序其实是一个含有运行的代码和数据以及其他关于本程序在内存中运行的大小等信息的一个合体。而这里所讲的程序我们以可执行文件来代替。 程序在磁盘上,当操作系统把程序相关信息读入到内存中并合理的分配了运行时的内存大小,也就是堆内存和栈内存之后,创建PCB然后程序就变成了进程,那么...原创 2019-05-26 13:53:28 · 729 阅读 · 0 评论 -
21.内存与虚拟内存,磁盘的结构
内存与虚拟内存 RAM(随机存取存储器),也叫主存 ,通常指内存条。存取速度非常快,时间复杂度为O(1)。 磁盘的结构原创 2019-05-24 19:27:57 · 389 阅读 · 0 评论 -
20.操作系统内核
寄存器 什么是寄存器?寄存器在哪? 寄存器是用来存储数据的,位于CPU中。 指令 指令是什么,指令由什么构成?有什么用? 指令就是CPU执行的基本单元。指令由操作码和操作数构成。它用来控制硬件执行相应动作 操作码,操作数 操作码是什么?操作数是什么?32位机指令中的操作码和操作数各多占几位? 操作码就是要做的操作是什么类...原创 2019-05-24 19:15:14 · 189 阅读 · 0 评论 -
19.泛型补充,父子线程
泛型补充 结合前面分析,为啥第一块代码报错,第二块代码正确? //报错 public static void xx(List<? extends Number> list) { list.add(1); } //正确 public static void xx(List<? super Number> list) { list...原创 2019-05-22 21:23:19 · 158 阅读 · 0 评论 -
18.泛型收尾,Scala,线程
泛型重载时的问题 方法的名称相同,参数不同,为啥报错? 答:因为泛型有一个重要特性,类型擦除,指定的泛型类型的确不一样,但是编译时都被擦除为Object了。 如何解决这个问题呢?把声明对象引用的类型写成?通配符就OJBK了。 Scala 纯面向对象语言,应用函数编程思维,可以调用java语言的类库 线程的执行 ...原创 2019-05-22 16:58:02 · 162 阅读 · 0 评论 -
17.泛型中篇
目录 类型擦除 通配符? 泛型方法 博客链接 类型擦除 泛型有个东西叫类型擦除,也就是在new或声明对象的引用时指定的类型在编译的时候就已经擦除了,转换成了Object类型。它的目的是与之前jdk版本的代码兼容共存。 通配符? //1.等号左侧使用通配符,代码段没问题等号右侧<>中可以填写任意类型 GenericCla...原创 2019-05-21 09:35:39 · 143 阅读 · 0 评论 -
16.泛型上篇
泛型(Generic) 含义 就是泛指一个类型,通过指定类型可以在编译时就能检测出是否发生castException(类型转换)异常。减少了程序员编程时的错误。 在哪里用 在类或者方法上使用 泛型的上限和下限 <T extends String> //设置上限,只能是String类型 <T super String> //设置...原创 2019-05-20 16:28:32 · 150 阅读 · 0 评论 -
15.线性表总结,java中类的定义方式
目录 线性表总结 java中类的定义方式 .exe文件里面包括 内部类是如何访问外部类的? 线性表总结 1.链表和顺序表的区别 顺序表存储地址是连续的,链表存储地址是不连续的,但是链表的值是连续的。 2.在哪种环境下使用链表?顺序表 顺序表适用于查找,不适用于增删改。链表适用于增删改,不适用于查找。 3.使用arraylist的注意事项和优化...原创 2019-05-19 10:09:11 · 267 阅读 · 0 评论 -
14.JNI,Equlas方法的空指针问题,java中的异常
目录 JNI Equlas方法的空指针问题 Java异常 原图 JNI Java的本地接口,提供了若干的API实现了Java和其他语言的通信。由C或者C++编写。JNI在本地方法栈中执行 Equlas方法的空指针问题 Java中使用equals方法,必须使用.equals(xxx)的方法,也就是确定调用equals的对象不为null,这样...原创 2019-05-19 10:08:46 · 369 阅读 · 0 评论 -
13.数据结构,算法的概念
什么是算法 算法就是如何去完成一件事情,算法的选择就是如何节约成本和时间去完成一件事情。 算法分类: 蛮力法(简称SB法) 分治法(分而治之的解决问题) 贪心法(大概率优先) 回溯法(没找到会回溯到之前的路径) 动态规范法(解决问题需要用到前面过程的解) 什么是数据结构 数据结构是数据存放的一种方式,用来组织数据,使得磁盘或者内存空间更有效率的...原创 2019-05-19 10:08:14 · 238 阅读 · 0 评论 -
12.缓存,进程与线程
缓存是用来干嘛的 用来解决速度不匹配 进程与线程 程序在内存中以进程的方式运行,一个进程可包括多个线程,进程是操作系统分配资源的基本单位;而线程是CPU调度的基本单位。 ...原创 2019-05-19 10:07:45 · 264 阅读 · 0 评论 -
11.线性表的体系结构
地址指的是内存地址 结论:ArrayList查找效率高,LinkedList增删改效率高。原创 2019-05-19 10:07:14 · 169 阅读 · 0 评论 -
10.ArrayList,LinkedList集合
ArrayList中add方法的复制操作 1.如图,先新建了一个list数组,长度为0 2.调用add方法后,通过arrays工具类中的copy方法把这个list数组的长度增加为10 结论:在创建数组时最好定义一个初始化数组容量。因为在第一次调用add方法时会进行一堆方法的执行,甚至还调用了System.ArrayCopy这个JNI来执行数组的复制,会消耗大量的cp...原创 2019-05-19 10:06:36 · 160 阅读 · 0 评论 -
09.Arraylist集合
Arraylist集合的体系图 对于如下类图,需要说明的是。如果是抽象类要实现接口,可以实现部分方法或者一个都不实现,要是具体的类就必须实现接口中所有的方法。可联想九阳神功~ ...原创 2019-05-19 10:05:56 · 137 阅读 · 0 评论 -
08集合,接口中的方法
目录 变量与集合 接口实现方法 变量与集合 变量包括变量的类型和变量的名字,是用来存储信息的容器。 集合包括集合的类型和集合的名字,它是把一组拥有相同类型的变量保存起来的容器。 接口实现方法 接口里为什么会有实现方法呢? //演示接口中的方法代码 public interface Collection<E> ext...原创 2019-05-19 10:05:38 · 197 阅读 · 0 评论 -
07常量池,访问符,方法的重载与多态
目录 比较变量三 访问修饰符 方法的重载 多态 比较变量三 String string1 = "llopp"; String string2 = "llo"; String string3 = String2 + "pp"; System.out.pringtln(string1==string3); //返回的为false,证明下比较的过程。 ...原创 2019-05-19 10:05:05 · 149 阅读 · 0 评论 -
06.常量池
目录 常量池 比较变量例一 比较变量例二 什么方法在线程栈中执行?什么方法在本地方法栈中执行? 常量池 如图,常量池存在于JVM的方法区里面。常量池中是一张张表示符号引用的表。 常量表有12个 比较变量例一 //判断是否相等 Integer integer1 = 128; Integer intege...原创 2019-05-19 10:04:43 · 203 阅读 · 0 评论 -
05如何学习一个框架
如何学习一个框架 1.先查下这个框架解决了什么问题 2.看这个框架的架构图 3.然后看内容,不懂去百度查,边看边想边思考。原创 2019-05-19 10:04:11 · 224 阅读 · 0 评论 -
04.实例变量,类变量,java由来
目录 实例变量和类变量 面向对象的三阶段 Java语言的由来 实例变量和类变量 定义:实例变量是没有static修饰的变量,类变量是由static修饰的变量 类变量的初始值:类加载器在准备阶段会给类变量赋初始值,不同类型的类变量的初始值如下: 变量类型 初始值 byte 0 ...原创 2019-05-19 10:03:09 · 146 阅读 · 0 评论 -
03.JVM的运行原理
目录 原理说明 堆内存中开辟的对象结构 方法的执行实例 父子类的执行顺序 原理说明 接着上一篇。 1.被编译成helloworld.class文件进入到虚拟机的方法区中。 2.执行Main方法把Main方法压到线程栈里面 3.在线程栈中会声明一个对象。假如Main方法中的代码是 Hello hello = new Hello();这一步是在线程栈中...原创 2019-05-19 10:02:24 · 169 阅读 · 0 评论 -
02.类加载器和JVM
目录 类加载器的功能 分解JVM 类加载器的功能 上一节我们讲过了.java格式的文件会转换成.class格式。而.class格式需要通过类加载器才能进入到JVM中。下面以HelloWorld为例,讲解下类加载器的功能和作用。 类加载器有七大功能: <1>加载 加载很好理解,就是把代码加载到“类加载器”中。 <2>验证 验证有两个...原创 2019-05-19 10:00:59 · 176 阅读 · 0 评论 -
01.HelloWorld
目录 Java和C++,C语言的区别 Java底层运行图 什么是JVM?什么是JDK?什么是JRE? 简单分析HelloWorld的执行 Java和C++,C语言的区别 1.C语言面向过程,关注的是数据的流向;C++和Java面向对象,关注的是不同对象之间如何进行交互。 2.Java把C++的复杂语法以及手动释放内存以及容易造成编程错误的指针等弊端屏蔽了。 ...原创 2019-05-19 09:58:29 · 179 阅读 · 1 评论