
JavaSE学习笔记
jiandandian_
这个作者很懒,什么都没留下…
展开
-
Java学习笔记Day42
Java学习笔记Day42Stream的中间操作:过滤、映射、筛选等。空指针异常是导致Java应用程序失败的最常见原因。复习课:静态代理的缺点:1、代理类和目标对象的类都是在编译期间确定下来,不利于程序的扩展。2、每一个代理类只能为一个接口服务,这样一来程序开发中必然产生过多的代理。动态代理的特点:动态代理是指客户通过代理类来调用其他对象的方法,并且是在程序运行时根据需要动态创建目标类的代理对象。...原创 2021-08-23 10:04:27 · 73 阅读 · 0 评论 -
学习笔记Day41
学习笔记Day41动态代理:代理设计模式的原理:使用一个代理将对象包装起来,然后用该对象取代原始对象。任何对原始对象的调用都要通过代理。代理对象决定是否以及何时将方法调用转到原始对象上。动态代理相比于静态代理的优点:抽象角色中(接口)声明的所有方法都被转移到调用处理器一个集中的方法中,这样,我们就可以更加灵活和统一的处理众多的方法。要想实现动态代理,需要解决的问题:1、如何根据加载到内存中的被代理类,动态的创建一个代理类及其对象2、当通过代理类的对象调用方法时,如何动态的去调用被代理类中的同原创 2021-08-22 10:26:27 · 72 阅读 · 0 评论 -
学习笔记Day40
学习笔记Day40通过反射可以获得方法的各种结构,比如权限修饰符,返回值类型,方法名,参数,异常等等。反射还可以获得构造器,getConstructors,包,注解…重点:调用运行时类的指定结构,例如属性:先创建运行时类的对象然后获取指定的属性再设置当前属性的值getDeclaredField(name: xx)获取运行时类中指定名的属性name.setAccessible(true):保证当前属性是可访问的。如何操作运行时类中的 指定的方法 --掌握invoke()的返回值即为对应原创 2021-08-03 22:30:56 · 75 阅读 · 0 评论 -
学习笔记Day39
学习笔记Day39读取配置文件的方式:通过反射调用的getInstance()调用此方法,创建对应的运行时类的对象。内部调用了运行时类的空参的构造器。要求:1 运行时类必须提供空参的构造器 2 空参的构造器的访问权限得够。通常设置为public。在Javabean中要求提供一个public的空参构造器,原因是便于通过反射,创建运行时类的对象。便于子类继承此运行时类,默认调用super()时,保证父类有此构造器。getFields():获取当前运行时类及其父类中声明为public访问权限的属性。g原创 2021-08-01 20:06:01 · 72 阅读 · 0 评论 -
学习笔记Day38
学习笔记Day38TCP:可靠的数据传输(三次握手),进行大数据量的传输;效率低UDP:不可靠,以数据报形式发送, 数据报限定为64k;效率高URL:统一资源定位符。 URL url = new URL (“http://192.168.14.100:8080/example/hello.txt?username=Tom”)接下来学习反射了:反射和封装技术不矛盾。封装相当于建议如何使用,比如public和private的权限使用。但反射就属于要强行调用一些私有的构造器或者方法啥的,也可以。关于原创 2021-07-29 17:34:34 · 83 阅读 · 0 评论 -
学习笔记Day37
学习笔记Day37对象流:用于存储和读取的基本数据类型数据或对象的处理流。强大之处在于可以将java的对象写入数据源中,也能把对象从数据源中还原回来。序列化过程:将内存中的java对象保存在磁盘中或者通过网络传输出去。反序列化:将磁盘文件中的对象还原为内存中的一个java对象。类要想实现可序列化,满足条件:需要实现接口:Serializable当前类提供了一个全局常量:serialVersionUID除了当前类需要实现Serializable接口之外,还必须保证其内部所有属性也必须是可序列原创 2021-07-28 22:05:57 · 294 阅读 · 2 评论 -
学习笔记Day36
学习笔记Day36好长一段时间没看视频了,前段时间要么在改论文格式,要么在刷题。似乎快忘了刷视频的感觉了,视频还没看完,几天继续走起来把,gogogogogo!!!注意事项:如果创建文件或者文件目录没有写盘符路径,那么,默认在项目路径下。...原创 2021-07-27 22:09:05 · 93 阅读 · 0 评论 -
学习笔记Day35
学习笔记Day35添加:对于List<?>就不能向其内部添加数据。除了添加null之外。IO流:File 代表一个文件或者文件目录,其声明在java.io包下原创 2021-07-17 21:19:09 · 78 阅读 · 0 评论 -
学习笔记Day34
学习笔记Day34泛型:JDK5的新特性注意Map中entry的泛型表示(泛型嵌套 ):在集合中使用泛型总结:泛型类的构造器不加<>。泛型不同的引用不能相互赋值。静态方法中不能使用类的泛型,异常类不能使用类的泛型父类有泛型,子类可以选择保留泛型也可以指定泛型类型:泛型方法,可以声明为静态的,原因是泛型参数是在调用方法时确定的,并非在实例化类时确定的。类A是B的父类,A是B的父类...原创 2021-07-11 10:36:33 · 55 阅读 · 0 评论 -
学习笔记Day33
学习笔记Day33Vector的源码分析:jdk7和jdk8中通过Vector()构造器创建对象时,底层都创建了长度为10的数组。在扩容方面,默认扩容为原来的数组长度的2倍。Set接口中没有额外定义方法,使用的都是Collection中声明过的方法特别注意:当调用HashSet里的set.remove§时,需要计算p的hashcode,是否存在此值,如果存在此值则remove,如果无此hashcode,则不删除。...原创 2021-07-09 22:13:23 · 162 阅读 · 1 评论 -
学习笔记Day32
学习笔记Day32ArrayList的常用方法:增:add(Object obj)删:remove(int index) / remove(Object obj)改:set(int index, Object ele)查:get(int index)插:add(int index,Object ele)长度:size()遍历:Iterator迭代器方式、增强for循环、普通的循环Set:存储无序的、不可重复的数据以HashSet为例说明:1.无序性:不等于随机性。存储的数据在底层数组原创 2021-07-07 22:14:51 · 76 阅读 · 0 评论 -
学习笔记Day31
学习笔记Day31比较throw和throws的异同同:无异:throw:生成一个异常对象,并抛出。使用在方法内部<->自动抛出异常对象throws:处理异常的方式。使用在方法声明的末尾<->try-catch-finally向Collection接口的实现类的对象中添加数据obj时,要求obj所在类要重写equals().Iterator对象称为迭代器(设计模式的一种)迭代器内部的方法:hasNext()和next();集合对象每次调用iterator()方法都得原创 2021-07-06 21:45:24 · 67 阅读 · 0 评论 -
学习笔记Day30
学习笔记Day30枚举类和注解:当要定义一组常量时,强烈建议定义枚举类。如果枚举类中只有一个对象,则可以作为单例模式的实现方式注解(Annotation):例如程序中加@的一些标记,可以用来标记过时的功能或者警告框架 = 注解 + 反射 + 设计模式注解是JDK5.0新增的如何自定义注解:1.首先new一个Annotation,注解声明为@interface2.内部定义成员,通常使用value表示3.可以指定成员的默认值,使用default4.如果自定义注解没有成员,表明是一个标识原创 2021-07-05 22:04:35 · 72 阅读 · 0 评论 -
学习笔记Day29
学习笔记Day29学习Java日期的获取和转换:java.utils.Date 和java.sql.Date,两者是子父类关系Calendar 是个抽象类,如果要对其进行实例化的话,有两种方法:创建其子类(GregorianCalendar)的对象调用其静态方法getInstance().Calendar calendar = Calender.getInstance();JDK8中新日期API:java.time:LocalDate LocalTIme LocalDateTime的使用原创 2021-07-04 22:14:25 · 82 阅读 · 0 评论 -
学习笔记Day28
学习笔记Day28StringBuffer和StringBuilder的使用:stirng:不可变的字符序列,底层使用char[]数组stringBuffer:可变的字符序列;线程安全,效率低;底层使用char[]数组stringBuilder:可变的字符序列;线程不安全的,效率高;底层使用char[]数组字符串的增删改查:三者之间的效率从高到低排列:StringBuilder > StirngBuffer > String...原创 2021-07-03 21:32:32 · 66 阅读 · 0 评论 -
学习笔记Day27
学习笔记Day27Java常用类:String的特性:代表字符串,是一个final类,代表不可变的字符序列,不可被继承,实现了Serializable接口:表示其支持序列化的。实现了Comparable接口,表示String可以比较大小。字符串是常量,用双引号引起来表示,他们的值在创建后不可变。String内部定义了final char[] value 用于存储字符串数据。通过字面量的方式(区别于new)给一个字符串赋值,此时的字符串声明在字符串常量池中,字符串常量池中是不会存储相同内容的字符串的原创 2021-06-30 22:12:42 · 69 阅读 · 0 评论 -
学习笔记Day26
学习笔记Day26死锁的理解:不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃自己需要的同步资源,就形成了线程的死锁。解决线程安全问题的推荐使用顺序:Lock ==> 同步代码块(已经进入了方法体,分配了相应资源) ==> 同步方法(在方法体之外)注意:sleep执行不会释放锁,而wait执行会释放锁。说明:wait(),notify(),notifyaAll()三个方法必须使用在同步代码块或同步方法中,三个方法的调用者必须是同步代码块或者同步方法中的同步监视器,否则原创 2021-06-29 22:04:59 · 67 阅读 · 0 评论 -
学习笔记Day25
学习笔记Day25创建多线程的两种方式:1、2、注意:我们启动一个线程只能以start()的方式执行,不能直接调用run()的方法如果再启动一个线程,必须重新创建一个Thread子类的对象。目前两种方式,要想启动线程,都是调用thread中的start()线程的同步:...原创 2021-06-28 22:03:07 · 70 阅读 · 0 评论 -
学习笔记Day24
学习笔记Day24学习项目三,按理说这部分应该仔细手动敲出来的,但是时间紧迫,先过一遍把,后面做实际项目再好好敲一敲。安装IDEA,跳过。。。多线程:创建线程的方式:4种程序和进程、线程的概念和区别:注意:多个线程共享一个进程的方法区和堆,线程的虚拟机栈和程序计数器各有一套,是各自独立的...原创 2021-06-28 15:56:11 · 63 阅读 · 0 评论 -
学习笔记Day23
学习笔记Day23断更了好几天,又被叫去写项目书了,哎。与此同时,论文返修回来了,又花了好几天改论文。然后今天终于忙得差不多了,又可以开始学习了,gogogogo!———————————————————————————————————————————如何自定义异常类:1、继承现有的异常结构,RuntimeException2、添加构造器throw 和throws 的区别:前者是抛出异常,生成一个异常对象后者是声明异常,是异常处理的方式...原创 2021-06-23 22:07:07 · 77 阅读 · 0 评论 -
学习笔记Day22
学习笔记Day22开发中,运行时异常一般不用try-catch。针对编译时异常,我们一定要考虑异常的处理。使用try-catch-finally处理编译时异常,使得程序在编译时就不在报错,但是运行时仍可能报错,相当于我们使用try-catch-finally将一个编译时可能出现的异常延迟到运行时出现。方法重写的规则之一:子类重写的方法抛出的异常类型不大于父类被重写的方法抛出的异常类型...原创 2021-06-23 19:40:25 · 56 阅读 · 0 评论 -
学习笔记Day21
学习笔记Day21内部类:允许将类A声明在另一个类B中,则类A为内部类,B为外部类内部类的分类:成员内部类()vs 局部内部类(方法内,代码块内,构造器内)成员内部类:1、作为外部类的成员:调用外部类的结构可以用static修饰可以被4中不同的权限修饰2、作为一个类:类内可以定义属性和方法和构造器可以被final修饰,表示此类不能被继承。言外之意就是不适用final就可以被继承可以被abstract修饰abstract能修饰类和方法,抽象方法只定义了一种功能的标准。具体的执行需要子原创 2021-06-16 22:01:46 · 59 阅读 · 0 评论 -
学习笔记Day20
学习笔记Day20abstract 不能用来修饰 属性、构造器等结构abstract 不能用来修饰私有方法、静态方法、final的类、方法接口的使用:8. 接口的具体使用,体现多态性9.接口,实际上可以看做事一种规范10、体会面向接口编程JDK8:除了定义全局常量和抽象方法之外,还可以定义静态方法、默认方法知识点1:接口中定义的静态方法,只能通过接口来调用知识点2:通过实现类的对象,可以调用接口中的默认方法。如果实现类重写了接口中的默认方法,调用时,仍然调用的是重写以后的方法知识点3:原创 2021-06-16 10:46:16 · 65 阅读 · 0 评论 -
学习笔记Day19
学习笔记Day19今天端午节啦,中午和室友出去吃了个火锅,真的是我吃的最辣的一次,肚子都辣疼了。吃完回宿舍休息了一会儿,下午继续去实验室,坚持学习吧。———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————原创 2021-06-15 10:07:40 · 62 阅读 · 0 评论 -
学习笔记Day18
学习笔记Day18静态方法 非静态方法类 yes no对象 yes yesstatic注意点:在静态的方法中,不能使用this和super开发中,如何确定一个属性是否声明为static?属性是可以被多个对象所共享的,不会随着对象的不同而不同类中的常量也经常声明为static开发中,如何确定一个方法原创 2021-06-14 16:28:59 · 71 阅读 · 0 评论 -
学习笔记Day16
学习笔记Day16多态性的使用前提:1 类的继承关系 2 方法的重写对象的多态性只适用于方法,不适用于属性(编译和运行都只看左边)多态是运行时行为对象的多态性:父类的引用指向子类的对象。子类可以获取父类中private权限的属性和方法重写的具体规则:形参列表相同,权限修饰符 返回值如何区分方法的重写和重载:二者的概念不同。重载和重写的具体规则不同重载:不表现为多态性重写:表现多态性super可调用方法 属性 构造器。Person p1 = new Man();Man m原创 2021-06-09 10:21:50 · 72 阅读 · 0 评论 -
学习笔记Day15
学习笔记Day15原创 2021-06-07 20:39:43 · 79 阅读 · 0 评论 -
学习笔记Day14
学习笔记Day14Java面向对象特性值之二:继承继承的好处(why):减少了代码的冗余,复用性;便于功能扩展;为之后的多态性的使用,提供了前提。继承的格式:class A extends B{}A:子类、派生类、subclassB:父类、基类、superclass体现:一旦A继承了B以后,A就获取了B中所有声明的结构:属性和方法。特别地。B中声明为private 的属性或者方法,子类继承父类以后,仍然认为获取了父类中私有的结构,只是因为封装性的影响,使得子类不能直接调用父类的结构而已子原创 2021-06-05 21:24:31 · 65 阅读 · 0 评论 -
学习笔记Day13
学习笔记Day13package关键字的使用:1、为了更好地实现项目中类的管理,提供包的概念。2、使用package声明在源文件的首行3、包,属于标识符,遵循标识符的命名规则、规范(xxxyyyzzz)“见名知意”4、 每“.”一次,就表示一层文件目录。注意:同一个包下,不能命名同名的接口和类如果需要导入多个结构,则并列写出即可。可以使用“xxx.”的方式,表示可以导入xxx包下的所有结构如果使用的类或者接口是java.lang包下的定义,则可以省略import结构。如果定义的类或者接原创 2021-06-02 22:10:28 · 71 阅读 · 0 评论 -
学习笔记Day12
学习笔记Day12Java里的println(char[] arrays):打印的是字符数组的遍历,不是地址值。内存结构:栈(局部变量)堆(new 出来的结构:对象(非static成员变量),数组)变量:成员变量vs局部变量(方法内、方法形参、构造器内、构造器形参、代码块内)考察java值传递的经典例题:当我们创建一个类的对象以后,可以通过对象.属性的方式,对对象的属性进行赋值。赋值操作要受到属性的数据类型和存储范围的制约。除此之外,没其他制约条件。但是,实际问题中,我们往往需要给属性赋值加入原创 2021-06-02 15:56:46 · 68 阅读 · 0 评论 -
Java学习笔记Day11
Java学习笔记Day11[a,b)随机数取值公式:Math.random()*(b-a+1)+a注意对一个包含学生成绩的对象根据成绩排序时,需要对这个对象进行交换,而不是对成绩进行交换原创 2021-05-31 20:58:26 · 187 阅读 · 0 评论 -
Java学习笔记Day09
Java学习笔记Day09注意数组中复制和赋值的区别:赋值操作相当于地址赋值,两个数组指向同一个数组实体。而复制操作相当于开辟了另外的空间,两个数组的操作是独立的。排序算法需要了解的图:一旦程序出现异常,未处理时,就中止执行。好了,今天开始正式开始学习面向对象的内容了,稍微有点激动。...原创 2021-05-21 16:28:40 · 105 阅读 · 0 评论 -
Java学习笔记Day08
Java学习笔记Day08int[]x,y[] 注意此处x表示一维数组,y表示二维数组原创 2021-05-07 21:53:13 · 186 阅读 · 0 评论 -
Java学习笔记Day07
Java学习笔记Day07int/short/long/byte整型数组默认初始化都为0f浮点型初始化为0.0数组元素是char型,初始化为0,而非“0”,效果是空格的效果,但不是space布尔类型初始化为false引用数据类型数组初始化为null,不是“null”一维数组的内存解析:先声明变量,放在栈中,然后new一个对象,放在了堆里面,该数据类型的首地址付给栈里面的变量。int[] array:一维数组int[][] array:二维数组二维数组动态初始化:int[][] array原创 2021-02-24 11:37:51 · 144 阅读 · 0 评论 -
Java学习笔记Day06
Java学习笔记Day06数组:多个相同数据类型的有序排列的一种集合。->元素数组是有序的。数组是引用数据类型,数组的元素既可以是引用数据类型,也可以是基本数据类型。数组对象会开辟以个连续的内存空间,数组名中引用的是这块内存空间的首地址,数组长度一旦确定,就不可以再修改。数组的分类:一维数组、二维数组、、、数组元素初始化包括静态和动态初始化:数组一旦初始化完成,其长度是一定确定的。...原创 2021-02-23 11:25:03 · 129 阅读 · 0 评论 -
Java学习笔记Day05
Java学习笔记Day05break和continue的使用:break默认跳出最近的循环结构break/continue还可以结束指定位置的循环,例如:break label,label加在该for结构前。return直接结束整个方法外循环控制行数,内循环控制列数下载并配置好Eclipse(官网下载太慢,最好是选镜像,几秒就下载好了exe文件)一定要注意jdk和eclipse的版本要吻合,不然无法正常运行。...原创 2021-02-22 17:07:50 · 127 阅读 · 0 评论 -
Java学习笔记Day03
Java学习笔记Day03条件表达式:if (){}elseif(){}elseif(){},若是执行了第一个elseif,则后面的判断语句将不会执行。else结构是可选的若多个表达式之间有交集的关系,那么就要根据实际情况,考虑将那个结构放在上面。若多个表达式之间没有交集的关系,那么每个判断和执行语句顺序无所谓。若多个表达式之间有交集的关系,那么就要根据实际情况,通常将范围小的放在上面。对于键盘输入,scanner有多种类型,例如:import java.util.ScannerScanner原创 2021-02-03 21:59:08 · 162 阅读 · 0 评论 -
Java学习笔记Day04
Java学习笔记Day04分支结构之Switch-case:switch(){case 常量1:执行语句;case 常量2:执行语句2;default:执行语句3}要想实现多选一,要加break;它是根据switch表达式中的值,依次匹配各个case中的常量,一旦匹配成功,则进入相应case结构中,调用其执行语句。当调用完执行语句后,则仍然继续向下执行其他case结构中的执行语句,知道遇到break关键字或次switch-case结构末尾为止结束。switch中的表达式只能6种类型:b原创 2021-02-03 21:58:15 · 205 阅读 · 0 评论 -
Java学习笔记Day02
Java学习笔记Day02算术运算符(前)++先加后取值、(后)++先取值后加不管是前++还是后++,都会自增1,不会改变数据类型除法和取余与被除数的符号一致。=赋值:支持连续赋值short s +=2不会改变数据类型short s = s+2(编译不通过)比较运算符的结果为布尔类型:==、>、<、instanceof逻辑运算符:与、或、非、短路与(当符号左边是false时,右边不再执行)、短路或(当左边是true时,右边不再执行)、异或位运算符对数进行运算:<&l原创 2021-01-29 22:46:44 · 126 阅读 · 0 评论 -
Java学习笔记Day01
Java学习笔记Day01Java 关键字及标识符相关规则在最初跟视频学习时,最开始用notepad写java程序,在打印输出时,由于里面涉及到中文字符,编译运行后中文乱码且报错,后面发现是编码格式的问题,将原来的UTF-8改为GBK或者ANSI编码格式就可以成功运行了。JAVA保留字:goto、const (自定义变量名时要避开)标识符命名规则:标识符命名规范类、接口:首字母大写XxxYyyZzz包名:全小写变量、方法:第一个单词小写,后面单词首字母大写xxxYyyZzz常量名:原创 2021-01-28 22:37:18 · 139 阅读 · 0 评论