
JavaSE
文章平均质量分 56
Emperor10
这个作者很懒,什么都没留下…
展开
-
Java_toLowercase()方法判断字符串相等
通过toLowercase()方法判断字符串相等,需要考虑该方法底层返回的字符串形式,我们通过一个例子来理解toLowerCase()方法将字符串的所有字符转换为小写字母public static void main(String[] args) { String s1 = "hello"; String s2 = s1.toLowerCase(); System.out.println(s1 == s2); //true Strin原创 2022-01-24 14:18:32 · 1983 阅读 · 12 评论 -
格雷编码构造
这里写自定义目录标题定义构造方法例题定义在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷编码。其中,n位数的格雷编码序列共有2^n个。构造方法格雷编码的计算公式:G(i) = i ^ (i / 2)n=3G(0)G(1)G(2)G(3)G(4)G(5)G(6)G(7)G(i) = i ^ (i / 2)00010=001000=00121=010001=01131=011001=01042=100010=11052=10原创 2022-01-08 13:57:16 · 1040 阅读 · 1 评论 -
Java String类内存分配
文章目录1. 创建字符串2. 字符串比较2.1 equals()2.2 equalsIgnoreCase()2.3 compareTo()2. 字符串常量池2.1 共享设计模式2.2 内存结构分析2.3 手动入池3. 字符串与字符转换4. 字符串不可变1. 创建字符串//1. 直接赋值String str1 = "Hello world";//2. new对象String str2 = new String("Hello World");//3. 根据字符数组内容构造char[] array原创 2021-11-27 16:00:51 · 1427 阅读 · 1 评论 -
super关键字用法
文章目录super关键字的三种用法:1. super.成员变量2. super.成员方法3. super():调用父类中的构造方法3.1.1 子类的构造方法会默认先调用父类无参数构造方法super()3.1.2 子类的构造方法中调用父类有参数构造方法super(id)super关键字作用:在子类内部调用父类对象基础语法:1.在类的继承中,当子类继承了父类, 在构造子类的时候,一定要先帮助父类进行构造;2.super()必须在第一行,以保证在执行任何动作前,对象已经完成了初始化;首先需要明确的是原创 2021-11-25 15:37:43 · 3999 阅读 · 1 评论 -
JAVA数组的四种拷贝方式
文章目录深拷贝与浅拷贝的区别1. for循环进行拷贝拷贝数值类型拷贝引用类型2. copyof / copyOfRange拷贝数值类型拷贝引用类型3. arraycopy拷贝数值类型拷贝引用类型4. clone拷贝数值类型拷贝引用类型5. 总结深拷贝与浅拷贝的区别假设现在有原数组A以及拷贝后的数组B,若是改变A中的某一个值,B数组随之相应的发生变化的拷贝方式称为浅拷贝,反之B数组不受影响,则称为深拷贝;简单总结一下两者的概念:深拷贝:拷贝后,修改原数组,不会影响到新数组;浅拷贝:拷贝后,修改原数原创 2021-11-20 17:52:48 · 948 阅读 · 0 评论 -
result.add(list)和result.add(new ArrayList<Integer>(list))的深浅拷贝问题
文章目录问题概述深浅拷贝语法代码测试问题概述最近在做Leetcode中一道二叉树算法题 [二叉树中和为某一值的路径] 时遇到了一个小问题,result是符合条件的结果集,list是所有路径和的待选结果集,当判定list中存储的待选结果符合条件,准备存入result时我直接使用的result.add(list);而没有考虑深浅拷贝的问题,导致后续回溯剪枝操作造成result集错误。深浅拷贝语法result.add(list); 属于浅拷贝,当添加一个list后,如果list改变,result值也会随之原创 2021-11-01 10:57:08 · 1129 阅读 · 0 评论 -
Java判断字符串是否包含某字符
文章目录一、contains二、indexOf三、lastIndexOf四、indexOf 与 lastIndexOf 结合一、containspublic boolean contains(CharSequence s);描述:判断一个子字符串是否存在;当且仅当字符串包含char值序列时返回结果为true。此方法不适合查询单个字符的情况。public static void main(String[] args) {public static void main(String[] args)原创 2021-09-22 10:53:08 · 20846 阅读 · 1 评论 -
Java基本数据类型
原创 2021-04-06 15:33:33 · 138 阅读 · 0 评论 -
单链表基础接口实现
链表概念链表是一种物理存储单元上非连续的存储结构。接口实现以 非循环,不带头结点的单链表为例1. 抽象链表类class ListNode { public int val;//值 public ListNode next;//存储下一个节点的地址 也就是说 这个是一个引用 public ListNode() { } public ListNode(int val) { this.val = val; }}1.原创 2021-04-29 21:17:32 · 360 阅读 · 3 评论 -
Java类与对象
类与对象概念百度百科:类和对象是两种以计算机为载体的计算机语言的合称。对象是对客观事物的抽象,类是对对象的抽象。类是一种抽象的数据类型。它们的关系是,对象是类的实例,类是对象的模板。通俗理解,类可以想象成为一个月饼模子,而对象是由模板制作出来的月饼,显然,对象是可以有多个的。类的成员1. 成员变量 / 字段 / 属性普通成员变量如果在定义时没有显示设置成员变量的初始值,那么会设置其数据类型的默认值;其中:数字类型 的 默认值 是 0boolean类型 的 默认值 是 fals原创 2021-04-22 10:49:37 · 409 阅读 · 2 评论 -
顺序表基础接口
顺序表概念顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构;可分为静态顺序表和动态顺序表,相比之下动态顺序表更灵活, 根据需要动态的分配空间大小。接口实现1. 创建顺序表public class MyArrayList { //实例成员变量 不初始化-默认值 public int[] elem; //只是定义了一个引用 public int usedSize; //有效的数据个数 public MyArrayList(){ th原创 2021-04-29 19:34:52 · 198 阅读 · 0 评论 -
Java列表List的比较
boolean equals(Object o)直接调用List的equals()方法。此方法用来比较指定的对象与列表是否相等,当且仅当指定的对象也是一个列表,两个列表有相同的大小,并且两个列表中的所有相应的元素对应相等时才返回true,否则返回false。如果说所定义的两个列表以相同的顺序包含相同的元素,那么他们是相等的。list1.equals(list2)若两个列表相等 ,返回true,否则返回false;同时满足以下三个条件,把么两个List对象就是相等的:方法接受的实参也是一个Lis原创 2021-08-19 23:43:34 · 2379 阅读 · 1 评论 -
Java重写与重载
多态概念多态作为面向对象编程中一个重要的特性,是指一种行为的多种表现形态,可以降低类的使用成本。重写式多态(override)1. 必要条件继承关系重写方法向上转型2. 语法规则发生在子类与父类之间。方法名相同,参数列表相同,返回值相同(方法的返回值构成父子类关系也可后成重写,称为协变类型)class Zoo {}class Animal { Zoo speak() { return new Zoo(); }}class Tig原创 2021-07-06 23:03:34 · 128 阅读 · 0 评论 -
Java特性--多态
概念在编程语言和类型论中,多态指同一行为的多种表现形态。向上转型先梳理一下几个类与其继承关系,定义一个Animal父类,再分别定义两个子类Cat和Bird子类来继承Animal父类。class Animal { }}class Cat extends Animal {}class Bird extends Animal {}1. 语法规则父类 父类对象 = 子类对象;即 父类引用 引用了 子类对象Animal animal = new Bird;2. 形式原创 2021-07-06 17:58:00 · 140 阅读 · 0 评论 -
Java特性--继承
概念继承是面向对象软件技术当中的一个概念,与多态、封装共为面向对象的三个基本特征。继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。意义继承的意义是为了代码重用。基本语法1. class 子类 extends 父类2. java属于单继承,即一个子类只能有一个父类3. 若无extends关键字,则默认继承Object类4. 原则上最多继承三代5. 使用super关键字得到弗父类实例的引用注意:子类继承父类后,在构造子类时,要先帮助父类进行原创 2021-07-06 10:54:59 · 116 阅读 · 0 评论 -
Java特性---封装
面向对象编程三大特性:封装、继承、多态封装1. 定义面向对象编程中一般有两种角色:类的实现者 和 类的调用者;通常情况下为了高效,我们并不希望类的调用者过多的研究实现类的细节,而仅仅会使用类即可,从而降低了复杂程度。2. 访问权限序号范围privatedefault/包访问权限protectedpublic1同一包下的同一类√√√√2同一包下的不同类-√√√3不同包下的子类--√√4不同包下的非子类--.原创 2021-06-21 20:53:39 · 160 阅读 · 1 评论 -
Leetcode链表1 - 删除排序链表中的重复元素
题目描述存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。返回同样按升序排列的结果链表思路利用一个cur引用遍历链表,遇到相同的元素则指向下一个元素判断(cur.next = nur.next,next)所有相同的元素只保留第一个由于删除的是后续的重复节点,所以无论头节点是否重复,都无需删除,即无需使用傀儡节点每判断两个元素是否相同后都需要确保cur.next不能为空(eg:1 - > 1 -> 1),否则会空指原创 2021-05-31 21:32:34 · 110 阅读 · 0 评论