- 博客(17)
- 收藏
- 关注
原创 泛型基础学习
一、自定义泛型类基本语法class 类名<T,R...> {// 或者接口成员普通成员可以使用泛型(属性、方法)使用泛型的数组,不能初始化静态方法中不能使用类的泛型泛型类的类型,是在创建对象时确定(因为创建对象时,需要指定确定的类型)如果在创建对象时,没有指定类型,则默认为Object顶层父类@DataT t;// 属性使用泛型R r;M m;// 原因:数组在初始化时,不能确定T的类型,无法在内存中开辟空间。
2024-11-02 18:50:02 305
原创 Final关键字基础学习
从上面的例子中可以看出,BB类继承了AA类,AA类中有个final方法,虽然BB类不能重写final方法,但是可以直接继承然后调用AA类中的final方法。2、如果final修饰的属性是静态的(static修饰),则初始化的位置只能在①定义时②静态代码块中,不能在构造器中赋值。1、final修饰的属性在定义时,必须赋初始值,并且以后不能再修改,可以①在定义时、②构造器、③代码块中赋初始值。3、如果类不是final类,但是含有final方法,则该方法虽然不能被重写,但是可以继承。
2024-09-29 22:36:00 315
原创 String类基础学习
两个变量相加,底层是1、StringBuilder sb = new StringBuilder();其中sb是在堆中,并且append是在原来字符串的基础上追加的。注意点:地址不能修改,但是地址指向的值是可以修改的,例如你和其他人争抢一个书包,书包没有变,但是书包里面的内容可以进行改变。1、String类实现了Comparable接口,意味着String对象可以比较大小。2、String类被final关键字修饰,不能被其他类继承。
2024-09-28 22:19:19 228
原创 包装类基础学习
之间的Integer对象,如果是通过valueOf方法的值会先充这个缓存数组中获取(该配置可以修改),如果不在该区间内,则是调用的new Integer()重新创建一个新的Integer对象。其实不仅仅在应用在Integer包装类对象,Byte、Short、Long、Character对象也存在类似的缓存。Integer缓存预先创建并存储了值在。其中,Byte、Short、Integer、Long、Float、Double都继承Number父类。java中8种基本类型的引用类型–包装类。
2024-09-25 22:55:15 201
原创 java内部类学习
5、如果外部类和静态内部类的成员重名,静态内部类访问时,默认遵循就近原则,如果想访问外部类的成员,则可以使用(外部类名.成员)去访问。4、如果外部类和局部内部类的成员重名时,默认遵循就近原则,如果想访问外部类的成员,则可以使用(外部类名.this.成员)去访问。6、外部类和内部类的成员同名,内部类访问,默认遵循就近原则。4、成员内部类访问外部类成员,直接访问即可。外部类成员访问成员内部类,需要创建成员内部类,再调用成员内部类的相关成员。1、可以直接访问外部类的所有成员,包括私有成员。
2024-09-22 23:12:53 475
原创 Map接口学习小结
HashMap是Map接口中最常用的map集合,由于HashSet的底层就是HashMap,HashMap在jdk1.8之后底层是基于。1、遍历HashMap中的所有元素entrySet(),可以根据元素的getKey(),getValue()方法获取双列集合的键和值。2、只遍历HashMap的键keySet(),hashMap中的键都存放在Set集合中,可以说明所有的key是不重复的。2、元素存放位置通过hash计算,虽然元素是无序的,但是元素存放位置在集合内部是有顺序的。
2024-07-21 00:45:28 888
原创 Set接口学习小结
与HashSet不同的是,LinkedHashSet是有序的,内部是通过双向链表来确定元素的顺序。 ② LinkedHashSet的table中存储的元素类型为LinkedHashMap$Entry,而HashSet中存储为Node类型,LinkedHashSet的table中的Entry中通过before和after记录元素的顺序。如果集合中元素的hash值不一样,只会记录元素的before和after的关联关系。的,无序指的是数据取出的顺序和添加进去的顺序无关,但是在内部按照自己的规则存放。
2024-06-23 23:23:53 538
原创 java的List接口小结
每次扩容为前一次的1/2,即0, 10, 10 + 5 = 15, 15 + 15/2 = 22;首次添加元素,链表的first和last都指向被添加的元素,节点的prev和next都为null,下次添加元素时,prev指向前一个节点,next指向下一个节点。 List接口----------------------------------->Collection。 List接口----------------------------------->Collection。
2024-06-19 22:42:49 725
原创 Java新特性之Lambda表达式学习
Lambda表达式使用1、举例Comparator<Integer> compara2 = (num1, num2) -> Integer.compare(num1, num2);2、格式 ‘->’ 符号是lambda操作符,又叫箭头操作符 -> 左边:lambda的形参列表(实际就是接口中抽象方法的形参列表) ->右边:lambda体(实际是重写的抽象方法的方法体)3、lambda表达式的使用(1)无参无返回值 Runnable r1 =
2022-05-30 00:29:04 684
原创 java基础实现动态日历
动态日历package com.softeem.lesson06.oop.method;import java.util.Scanner;/** * 创建一个方法,计算从1900年1月1日到当前月份上一个月的总天数,并返回总天数值 * @author 信仰斌 * */public class MyCalendar { Scanner sc = new Scanner(System.in); /** * 判断是否是闰年 * @param y year * @return t
2020-11-07 14:23:17 778
原创 约瑟夫环
约瑟夫环: 经典算法问题约瑟夫环package com.softeem.lesson05.sort;import java.util.Scanner;/** * 约瑟夫环 * @author 信仰斌 * */public class JosephRing { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.
2020-11-07 14:20:07 137
原创 第二周_折半查询
折半查询实现思路: 折半查询是从一组已经排好序的数组中搜索目标数的为止;首先要从数组中找到中间数,然后判断该数是否是需要查询的数,如果是,则确定找到该数,否则继续找到中间数,重复操作,直到查询完所有数组或者找到需要找到的数字,但是需注意要的是即使数组中有多个相同数据,也只会返回一个数。package com;import java.util.Arrays;public class Test { public static void main(String[] args) { // 折
2020-11-07 14:11:02 87
原创 第二周_排序算法
2、重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。 通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;
2020-11-07 13:46:42 122 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人