Java
Deecyn
Talk is cheap, show me the code.
展开
-
解析递归的本质:栈(多图预警!)
关于递归和栈。递归调用的本质就是栈的先进后出,递归可分为三个阶段:前进段:依次执行递归语句之前的代码,保存当前函数的现场(参数、局部变量等),并压入栈中。临界值:终止递归的前进段,通过 return 语句开始进入返回段。返回段:对于栈顶的函数,基于在前进段保存的函数的现场,依次执行递归语句之后的代码,执行完后出栈(执行 return 语句即出栈)。实战解析:两两交换链表中的结点仿照...原创 2020-04-10 12:53:20 · 2044 阅读 · 1 评论 -
如何找到大于或等于一个整数的最小的 2 的幂?
在 Java 中,如何找到大于或等于一个整数的最小的 2 的幂呢?二、利用补码的「移位」和「按位或」操作1.操作原理首先,对于任意一个整数,若它为 2 的幂,则会有一个特点:它的二进制数(补码)只有一位最高位是 1,其它位全是 0 。根据这个特点可以找到思路:对于当前数的补码,先把最高位及以下的所有低位「变」成 1,然后再加 1 。例如,找到大于或等于 25 的最小的 2 的幂(这里只写 ...原创 2020-03-30 16:04:53 · 2639 阅读 · 2 评论 -
解析 String 的不可变性
问: Java 中的 String 类能不能被继承?为什么 String 有不可变性?这种设计有什么好处?一、String 的不可变性String 是 final 类型,final 类不能被继承。String 是不可变的,当修改已有字符串的值的时候,(如将 str = "abc" 修改为 “abcdef”),不是在原内存地址上修改数据,而是将原引用重新指向新对象、新地址。为什么不可变呢?...原创 2019-11-28 21:30:52 · 372 阅读 · 0 评论 -
关于Java中方法的重载与重写
问: 什么是方法重写?什么是方法重载?成员变量可以被重写吗?方法重载(Overloading):在一个类中,有两个及以上的方法,它们方法名称相同,但参数列表不同,这些方法互相称为重载方法。方法重写(Overriding):在子类和父类中,若有两个方法的名称和参数列表均相同,此时子类的方法将覆盖父类中的方法,称为方法重写。区别与联系:\重载(Overloading)重写(Ove...原创 2019-11-28 21:21:53 · 243 阅读 · 0 评论 -
Java 与值传递
问: 什么是值传递?什么是引用传递?为什么说 Java 中只有值传递?一、值传递与引用传递实参与形参:实际参数:在调用有参函数时,主调函数和被调函数之间有数据传递关系。在主调函数中调用被调函数时,函数名后面括号中的参数称为“实际参数”。形式参数:在定义函数名和函数体时使用的参数,目的是用来接收调用此函数时传入的参数。值传递与引用传递:值传递:是指在调用函数时,将实际参数复...原创 2019-10-29 12:45:05 · 295 阅读 · 0 评论 -
自定义MyArrayList
PS:如果觉得文章有什么地方写错了,哪里写得不好,或者有什么建议,欢迎指点。ArrayList 类提供了 List ADT 的可增长数组的实现。一、自定义实现的 ArrayList 类 MyArrayList源码链接:戳此进GitHub查看MyArrayList 泛型类实现了 Iterable 接口从而可以拥有增强 for 循环(for each 循环)。public class M...原创 2019-08-30 22:36:02 · 328 阅读 · 0 评论 -
IDEA-Maven项目的jdk版本设置
在 Intellij IDEA 中,我们需要设置 Settings 中的 Java Compiler 和 Project Structure 中的 Language Level 中的 jdk 版本为自己目前使用的版本,否则会经常提示我们 jdk 版本不正确导致的语法错误。在 Maven 项目中,jdk 的配置也有一些额外需要注意的地方。比如配置为 jdk1.8 :但是在 Maven 项目中...原创 2019-09-01 13:25:21 · 1833 阅读 · 0 评论 -
数组
一、认识数组数组是一种线性表数据结构。它用一块连续的内存空间,来存储相同类型的一组数据。1. 概念的理解线性表:顾名思义,线性表就是数据排列成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向,数组,链表,栈,队列等都是典型的线性表结构。与其相对立的,在非线性表中,数据之间并不是简单的前后关系,像树,堆,图等都是典型的非线性表。连续的内存空间和相同类型的数据:即计算机...原创 2019-09-01 14:21:43 · 918 阅读 · 0 评论