java小白学习笔记
文章平均质量分 86
从java最基础的知识开始整理,作为一路成长的印记
qq_38553011
这个作者很懒,什么都没留下…
展开
-
Java基础——IO流
在缓冲流中定义了数组拷贝new byte[8192],所以加快了速度,相对于普通流 加上自定义数组拷贝的效率很多时候是差不多的,缓冲流也可以加上自定义数组一起进行拷贝,效率会更好些,如果加大普通流 加上自定义数组的数组容量也会有相应的速度。注:缓冲流不具备读写功能, 它们只是对普通的流对象进行包装 ,真正和文件建立关联的, 还是普 通的流对象。加密思路:改变原始文件中的字节,就无法打开了。解密思路:将文件中的字节还原成原始字节即可。字节缓冲流在源代码中内置了字节数组,可以提高读写效率。原创 2023-10-10 09:30:19 · 123 阅读 · 0 评论 -
Java基础——Stream流、File类
static <T> Stream<T> stream(T[] array)将传入的数组封装到 Stream 流对象中。Collections.addAll(list, "林青霞", "张曼玉", "王祖贤", "柳岩","张敏","张无忌");Collections.addAll(girl, "黄蓉", "林超风", "小龙姐", "赵敏","周芷若","小昭");Collections.addAll(boy, "郭靖", "黄药师", "王祖贤", "乔峰","杨过","张无忌");原创 2023-09-05 14:23:52 · 176 阅读 · 0 评论 -
Java基础——集合(HashSet 集合类、LinkedHashSet 集合类、Collections 集合工具类、Map 接口、Map 集合的遍历方式)
④boolean containsKey(Object key) 判断集合是否包含指定的键。Collections.addAll(list1, "南京市", "扬州市", "苏州市", "无锡市", "常州市");Collections.addAll(list2, "武汉市", "孝感市", "十堰市", "宜昌市", "鄂州市"); ⑦int size() 集合的长度,也就是集合中键值对的个数。原创 2023-09-02 09:32:12 · 1357 阅读 · 1 评论 -
Java基础——集合(泛型、数据结构(树)、TreeSet 集合)
③ 如果一个节点没有子节点或者父节点,则该节点相应的指针属性值为Nil,这些Nil视为。 ④ 如果某一个节点是红色,那么它的子节点必须是黑色(不能出现两个红色节点相连的情。 ⑤ 对每一个节点,从该节点到其所有后代叶节点的简单路径上,均包含相同数目的黑色。 需要进行一次左旋。常见的泛型标识符 : E V K T。原创 2023-08-29 16:02:42 · 148 阅读 · 1 评论 -
Java基础——集合(单列集合:ArrayList、LinkedList)
① 使用空参构造器创建的集合,在底层创建一个默认长度为0的数组。 ② 添加第一个元素时,底层会创建一个新的长度为10的数组。public boolean remove(E e) : 把给定的对象在当前集合中删除。 ArrayList 底层是数组结构的,数组默认长度为10。public int size() : 返回集合中元素的个数(集合的长度)原创 2023-08-22 14:34:48 · 45 阅读 · 1 评论 -
Java基础——递归、异常
编译阶段就出现的错误 主要起到提醒作用,需要在运行之前, 给出解决方案。1 ~ 2 的和 2 += (1~1的和);1 ~ 4 的和 4 += (1~3的和); 例:封装为 Student 对象,键盘录入学生的姓名和年龄,要保证年龄的正确。 try { 可能会出现异常的代码 }原创 2023-08-18 14:37:39 · 89 阅读 · 1 评论 -
Java基础——常用API(时间类)
System.out.println("相差的千年数:" + ChronoUnit.MILLENNIA.between(birthDate, today));System.out.println("相差的十年数:" + ChronoUnit.DECADES.between(birthDate, today));System.out.println("相差的毫秒数:" + ChronoUnit.MILLIS.between(birthDate, today));原创 2023-08-17 10:37:31 · 89 阅读 · 1 评论 -
Java基础——常用API(Arrays工具类、冒泡排序、选择排序、二分查找、正则表达式)
第一轮 : arr[0]-arr[1] arr[1]-arr[2] arr[2]-arr[3] arr[3]-arr[4] 比较4次。第二轮 : arr[0]-arr[1] arr[1]-arr[2] arr[2]-arr[3] 比较3次。邮箱:"\\w+[@][\\w&&[^_]]+(\\.[a-z]{2,3})+"[a-z&&[^m-p]] a到z,除了m到p:([a-lq-z]减法)第三轮 : arr[0]-arr[1] arr[1]-arr[2] 比较2次。// -1: 避免索引越界。原创 2023-08-15 15:30:10 · 289 阅读 · 1 评论 -
Java基础——常用API(Object、Math、System、BigDecimal、包装类)
如果地址不相同, 就会返回false, 短路 || , 左边为false, 右边要继续执行.getClass()!&& : 左边为false, 右边不执行, 右边不执行, 记录着null值的a, 就不会调用equals方。① a == b : 如果地址相同, 就会返回为true, 这里使用的符号是短路 || , 左边为true, 右边。3.public static void arraycopy(数据源数组, 起始索引, 目的地数组, 起始索引, 拷贝个数)请将该字符串转换为整数并存入数组。原创 2023-08-14 08:02:36 · 103 阅读 · 0 评论 -
Java基础——面向对象高级(接口新特性、代码块、内部类、Lambda表达式、窗体、组件、事件)
useStringHandler(msg -> System.out.println("Lambda打印:" + msg));System.out.println("static...Student类的静态代码块");System.out.println("右移动业务代码");System.out.println("我的爸爸回家...");System.out.println("Student类的构造代码块");System.out.println("我的爸爸");原创 2023-08-09 17:17:15 · 78 阅读 · 0 评论 -
Java基础——面向对象高级(包、抽象类、接口、多态)
System.out.println("通过银行卡网银支付了:" + money + "元!System.out.println("通过支付平台支付了:" + money + "元!System.out.println("通过信用卡快捷支付:" + money + "元!System.out.println("请输入您的支付金额: ");通俗的理解:判断关键字左边的对象,是否是右边的类型,返回boolean类型结果。如果被转的引用类型变量,对应的实际类型和目标类型不是同一种类型,那么在转换的。原创 2023-07-28 15:29:42 · 97 阅读 · 1 评论 -
Java基础——集合基础
当创建ArrayList集合容器的时候,底层会存在一个长度为10个大小的空数组,当10个大小的空数组装满之后,如果又像集合中存入数据,这时系统会在开辟原数组1.5大小的新数组(15个大小),将原数组的数据复制到新数组中,再将添加的数据添加到新的数组,原来的数组将等待java垃圾回收机制处理。public E set(int index, E element) : 修改指定索引位置, 为对应的元素, 返回被覆盖掉的元素。// 输出结果[11.1,44.4,22.2,33.3]//输出结果33.3。原创 2023-07-17 07:46:02 · 26 阅读 · 1 评论 -
Java基础——面向对象高级(1)
是不能被继承,子类需要自己手动编写构造方法,子类在初始化之前已经完成父类的初始化(因为子类在初始化的过程中可能需要调用父类的成员),在所有的构造方法中,都默认隐藏了一句话 super();② static:被JVM调用不用创建对象(因为main方法是静态的,所以测试类中其他方法也需要静态的);员变量,若果被调用的变量和方法, 在子类中不存在, super.可以直接省略的。当类与类之间,存在相同 (共性) 的内容,并且产生了 is a 的关系,就可以考虑使用继承,来优化代码。原创 2023-07-25 17:05:42 · 40 阅读 · 0 评论 -
java基础——常用API(String、StringBuilder)
根据Sting的创建方式创建a1时直接去常量池找,发现没有,在常量池中创建“abc”字符串,a1指向常量池中的字符串,创建a2时,因为有new所以在堆空间中开辟一块String空间,然后去常量池中查找字符串,发现有字符串“abc”,将字符串拷贝一份存入创建的String空间,之后地址赋值给a2,这样a1指向的是常量池,a2指向的是字符空间,a1和a2指向不同,所以返回值是false.System.out.println("登录失败, 您还剩余" + (3 - i) + "次机会");原创 2023-07-10 13:44:36 · 167 阅读 · 1 评论 -
java基础——几个基础小案例
逢7跳过、查找元素在数组中的索引、数组元素反转、随机产生验证码原创 2023-06-16 22:03:21 · 117 阅读 · 1 评论 -
Java基础——面向对象
MovieMessage movie1= new MovieMessage(1,"东八区的先生们","2022",2.1,"中国大陆","喜 剧","夏睿","张翰 王晓晨");MovieMessage movie2= new MovieMessage(2,"上海堡垒","2019", 2.9, "中国大陆", "爱情 战争 科幻", "滕华涛", "鹿晗 舒淇");System.out.println("----------电影信息系统----------");原创 2023-06-21 22:49:10 · 56 阅读 · 0 评论 -
java基础 ——流程控制语句
java 的基本控制语句原创 2023-06-08 23:07:57 · 48 阅读 · 1 评论 -
java运算符和方法(函数)
,当方法中含有return时,如果return后面有值,需要用对应类型的参数进行接收,如果方法是int型即public static int 方法名(int a,intb…看下面的代码,a是int,b是double类型,在计算的过程先将a转成了double进行计算,转换完赋值的时候又强转成int类型了,类似于int a = (int)(a+b);在同一个类中,定义了多个同名方法,但每个方法具有不同的参数类型或参数个数,这些同名的方法,就构成了重载关系。重载避免了大量的记忆方法名,简化了方法。原创 2023-06-04 21:22:35 · 57 阅读 · 1 评论 -
java基本数据类型、数据类型之间的相互转化
我们用两个byte类型的数据相加,再用byte的变量去接收,idea直接报红,原因是byte在计算的过程中会先将数据类型转换为int行进行计算,在接收时要用int类型,这个计算中也会含有隐式转换。我们可以将取值范围小的数据类型直接赋值给取值大的数据类型,否则会报错,在将a赋值给c的时候就发生了一次隐式转化,将int类型转换成了double类型。运算后的结果还是int, int类型结果给byte类型变量赋值, 大的给小的, 不能直接给, 编译错误.提升之后, 就是两个int在运算了, 运算的结果还是int.原创 2023-06-02 22:57:05 · 172 阅读 · 0 评论