Java学习笔记
文章平均质量分 52
Java学习
Deaoyi
这个作者很懒,什么都没留下…
展开
-
Java对象List使用陷阱
Java由一个对象List筛选或者浅复制得到的另一个对象List里面的引用和原List里的引用指向同一个地址,修改其中一个List里的共有对象时,同时会影响到两个List里存放的对象package test;import java.util.ArrayList;import java.util.List;import java.util.stream.Collectors;public class CodeTest { private String value;原创 2021-10-13 10:52:10 · 203 阅读 · 0 评论 -
Java学习笔记(十六)——多线程
文章目录一、线程简介1、程序、进程、线程2、线程创建2.1、继承Thread类2.2、实现Runnable接口2.3、实现Callable接口3、多个线程同时操作同一个对象4、龟兔赛跑二、静态代理模式1、例子三、Lamda表达式1、why lamda?2、函数式接口3、推导过程一、线程简介1、程序、进程、线程程序:指令和数据的有序集合。其本身没有任何运行的含义,是一个静态概念。进程:程序的一次执行过程。它是一个动态的概念,是系统分配资源的单位。线程:一个进程中包含一个或多个线程,线程是CPU原创 2021-03-27 16:29:51 · 80 阅读 · 0 评论 -
Java学习笔记(十五)——异常
文章目录一、Error和Exception二、捕获和抛出异常三、自定义异常一、Error和Exception异常指程序运行中出现的各种不期而至的状况。例如:文件找不到、网络连接失败、非法参数等。异常分为运行时异常和非运行时异常(检查性异常)。错误不是异常,是写程序的时候出现了“毁天灭地”的操作,例如栈溢出,JVM虚拟机直接停止运行。二、捕获和抛出异常异常处理的五个关键字:try/catch/finally/throw/throwspackage com.testexc;public原创 2021-03-25 15:14:11 · 75 阅读 · 0 评论 -
Java学习笔记(十四)——常用类
文章目录一、包装类1、包装类的基本知识2、包装类用途3、自动装箱和拆箱4、包装类的缓存5、自定义一个包装类二、字符串相关类1、String不可变字符序列原因2、StringBuilder和StringBuffer3、不可变和可变字符序列一、包装类1、包装类的基本知识Java是面向对象的语言,但并不是“纯面向对象”,因为我们经常用到的基本数据类型就不是对象。但是我们在实际应用中经常需要将基本数据类型转换成对象,以便于操作。为了解决这个不足,Java在设计类的时候为每一个基本数据类型设计了一个对应的原创 2021-03-23 11:22:25 · 120 阅读 · 0 评论 -
Java学习笔记(十三)——数组
文章目录一、数组的概念1、数组的定义2、创建数组对象3、初始化二、数组的常见操作1.数组的遍历2、数组的拷贝3、java.util.Arrays类三、多维数组四、数组存储表格数据1、使用二维数组保存表格数据2、使用javabean和一维数组保存表格数据五、Comparable接口一、数组的概念1、数组的定义数组是相同类型数据的有序集合。其中每一个数据称为元素,每个元素可通过一个索引【下标】来访问他们。数组的四个基本特点:长度是确定的。数组一旦被确定,它的大小就是不可改变的。其元素类型必须是相原创 2021-03-20 17:18:28 · 128 阅读 · 0 评论 -
Java学习笔记(十二)——面向对象总结(转自尚学堂)
转载 2021-03-20 14:29:36 · 39 阅读 · 0 评论 -
Java学习笔记(十一)——内部类
文章目录一、内部类是什么?二、内部类的作用三、内部类的分类1、非静态内部类2、静态内部类3、匿名内部类4.局部内部类一、内部类是什么?内部类是一类特殊的类,指的是定义在一个类的内部的类。实际开发中,为了方便的使用外部类的相关属性和方法,这时候通常会定义一个内部类。二、内部类的作用内部类提供了更好的封装,只能让外部类直接访问,不允许同一个包中的其他类直接访问。内部类可以直接访问外部类的私有属性,内部类被当成其外部类的成员,但外部类不能访问内部类的内部属性。三、内部类的分类1、非静态内部类原创 2021-03-20 14:20:25 · 74 阅读 · 0 评论 -
Java学习笔记(十)——String类基本用法
package com.string;public class test1 { public static void main(String[] args){ String str1 = new String("abcdefg"); String str2 = "abcdefg"; String str3 = "abcdEFG"; String str4 = "def"; System.out.println(st原创 2021-03-18 15:39:00 · 74 阅读 · 1 评论 -
Java学习笔记(九)——抽象类和接口
文章目录一、抽象方法和抽象类抽象方法抽象类抽象类的使用要点二、接口(interface)1.引入库2.读入数据一、抽象方法和抽象类抽象方法使用abstract修饰的方法,没有方法体,只有声明。定义的是一种“规范”,就是告诉子类必须要给抽象方法提供具体的实现。抽象类包含抽象方法的类就是抽象类。通过abstract方法定义规范,然后要求子类必须定义具体实现。通过抽象类,我们就可以做到严格限制子类的设计,使子类之间更加通用。抽象类和抽象方法的基本用法package com.testabstrac原创 2021-03-18 14:41:35 · 119 阅读 · 1 评论 -
Java学习笔记(八)——多态
文章目录一、多态的概念和实现示例二、对象的转型一、多态的概念和实现多态指的是同一个方法调用,由于对象的不同可能会有不同的行为。多态的要点:多态是方法的多态,不是属性的多态(多态与属性无关)多态的存在要有3个必要条件:继承、方法重写、父类引用指向子类对象父类引用指向子类对象后,用该父类引用调用子类重写的方法,多态就出现了示例package com.polymorphism;public class Animal { public void shout(){原创 2021-03-17 17:06:36 · 75 阅读 · 1 评论 -
Java学习笔记(七)——封装
Java学习笔记(七)——封装文章目录Java学习笔记(七)——封装前言一、封装的作用和含义二、封装的实现——使用访问控制符三、封装的使用细节前言封装是面向对象三大特征之一。对于程序合理的封装让外部调用更加方便,更加有利于协作,同时对于实现者来说也更加容易修正和改版代码。一、封装的作用和含义封装就是把对象的属性和操作结合为一个独立的整体,并尽可能隐藏对象的内部实现细节。我们程序设计要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合是仅仅暴露少原创 2021-03-17 16:25:19 · 57 阅读 · 0 评论 -
Java散记(二)
Object类Object类是所有Java类的根基类,所有Java对象都拥有object类的属性和方法,如果在类的声明中未使用extends关键字指明其父类,则其默认继承object类。注意:除了构造方法之外的所有属性和方法都被继承。但是不是所有的都能直接使用,如私有属性等。1、toString方法object类中定义的public String toString()方法,其返回值类型是String,默认返回“类名+@+16进制hashcode”,在打印输出或者用字符串连接对象时,会自动调用该对象的原创 2021-03-17 15:23:15 · 60 阅读 · 0 评论 -
Java散记(一)
public class MianXiangDuiXiang {}class exm1 extends MianXiangDuiXiang{ /**static修饰的变量叫静态变量,在内存中存放在方法区; * 局部变量是方法内定义的变量,存放在栈帧中; * 成员(实例)变量存放在堆里面,定义在类内方法外。 * this调用的是类本身的属性,在实例化的时候this相关存放在堆中 * this不能在被static修饰的地方使用 */ //继承原创 2021-03-12 20:36:33 · 76 阅读 · 0 评论 -
Java学习笔记(五)——面向对象(一)
面向对象文章目录面向对象前言一、面向过程和面向对象的区别二、对象和类1.引入库2.读入数据总结前言在思考面向对象的时候可以类比表格结构,类就相当于表格,类的属性相当于表格的属性,类的方法相当于表格所有内容都有的动作,对象相当于表格中的每一行内容,即每一个元组。世间万物都包含静态属性和动态动作,即都可以抽象成类用面向对象的方法处理。一、面向过程和面向对象的区别面向过程:执行者思维。首先思考怎么按步骤实现,并将步骤对应成方法,一步一步实现。适合简单任务,不需要过多协作的情况下,重点关注如何执行。比如说原创 2021-03-11 17:05:52 · 93 阅读 · 0 评论 -
Java学习笔记(四)——方法
public class TestMethod { //方法用来处理数据,相当于其他语言的函数 /*方法声明的一般格式: public static 返回值类型 方法名(形式参数列表){...} 方法调用方式: 对象名.方法名(实参列表); */ //alt+enter快捷键在IDEA可以提示错误解决办法 /** * 方法的重载(Overload): * 方法的重载是指一个类中可以定义多个方法名相同,原创 2021-03-10 19:44:18 · 52 阅读 · 0 评论 -
Java学习笔记(三)——带标签的break、continue、控制语句的底层控制
底层控制是跳转,类似于C++里的goto(goto现在仍然作为关键字被Java保留,但别用)。就和指针运算一样,指针在Java中只是对于开发者不存在,但是在Java虚拟机中存在大量的指针运算,只是不需要我们写。...原创 2021-03-10 16:34:29 · 81 阅读 · 0 评论 -
Java学习笔记(二)——switch
switch(表达式){ case 值 1: 语句序列1; [break]; case 值 2: 语句序列2; [break]; ... [default: 默认语句;]}//switch的case标签在JDK1.5之前必须是整数(long除外)或者枚举,在JDK1.7之后可以是字符串。...原创 2021-03-10 16:00:28 · 47 阅读 · 0 评论 -
Java学习笔记(一)——变量数据类型运算符
Java学习笔记(一)——变量数据类型运算符前言注释标识符变量(variable)前言Java的各种版本:Java SE(Java standard edition):标准版,定位在个人计算机上的应用。Java EE(Java enterprise edition):企业版,定位在服务器端的应用。Java ME(Java micro edition):微型版,定位在消费性电子产品的应用(几乎不用)。Java在运行过程中既要经过编译也要经过解释,如图:JDK、JRE、JVM之间的关系:JVM原创 2021-02-19 12:01:37 · 153 阅读 · 0 评论