![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java学习
略/n
这个作者很懒,什么都没留下…
展开
-
学习Java的第四十八天(java8新特性)
静态代理特点:代理类和被代理类,在编译期间就确定下来了原创 2021-09-15 16:15:03 · 49 阅读 · 0 评论 -
学习Java的第四十七天(初识反射)
反射原创 2021-09-13 11:18:38 · 53 阅读 · 0 评论 -
学习Java的第四十六天(网络编程)
网络编程的目的直接或间接地通过网络协议与其他计算机实现数据交换,进行通讯网络编程中有两个主要问题1.如何准确地定位网络上一台或多台主机,定位主机上的特定应用2. 找到主机后如何可靠高效地进行数据传输网络编程中的两个要素ip和端口号提供网络通信协议IP:唯一地标识Internet上的计算机在Java中使用InetAddress类来代表IP实例化InetAddress的方法:getByName(String host)、getLocalHost()两个常用方法:getHostNa原创 2021-09-10 09:42:02 · 56 阅读 · 0 评论 -
学习Java的第四十五天(其他流)
标准的输入输出流System.in:标准的输入流,默认从键盘输入System.out:标准的输出流,默认从控制台输出System类的SetIn(InputStream is)\SetOut(PrintStream ps)方式重新指定输入和输出的流原创 2021-09-08 09:33:39 · 35 阅读 · 0 评论 -
学习Java的第四十四天(流)
流的分类操作单位:字节流和字符流数据流向:输入流和输出流流的角色:节点流和处理流流的体系结构抽象基类文件流缓冲流InputStreamFileInputStreamBufferedInputStreamOutputStreamFileOutputStreamBufferedOutputStreamReaderFileReaderBufferedReaderWriterFileWriterBufferedWriter具体的方法rea原创 2021-09-04 17:17:33 · 41 阅读 · 0 评论 -
学习Java的第四十三天(泛型及IO流)
泛型jdk5.0的新特性在集合中使用泛型在实例化集合类时,可以指明具体的泛型类型泛型的类型不能时基本数据类型,必须是类原创 2021-09-03 15:17:28 · 47 阅读 · 0 评论 -
学习Java的第四十二天(map)
Map:双列数据,存储key-value对的数据HashMap:作为map的主要实现类,线程不安全,效率高,可以存储null的key和valueHashtable作为古老的实现类,线程安全的,效率低,不能存储null的key和valueLinkedHashMap保证在遍历map元素时,可以按照添加的顺序实现遍历,对于频繁地遍历操作,此类执行效率高于HashMapTreeMap保证按照添加的key-value对进行排序,实现排序遍历。此时考虑key的自然排序或定制排序Properties原创 2021-08-16 16:13:34 · 81 阅读 · 0 评论 -
学习Java的第四十一天(set)
Set接口:HashSet:作为Set接口的主要实现类,线程不安全,可以存储null值LinkHashSet:作为HashSet的子类,遍历其内部数据时,可以按照添加的顺序遍历TreeSet:可以按照添加对象的指定属性,进行排序注意:Set接口中没有定义额外新的方法,使用的都是Collection中声明过的方法无序性:不等于随机性,存储的数据在底层数组中并非按照数组索引的顺序添加,而是根据数据的哈希值决定。不可重复性:保证添加的元素按照equals()判断时,不能返回true。即相同的原创 2021-08-14 10:09:18 · 44 阅读 · 0 评论 -
学习Java的第三十九天(注解)
注解的使用:1.理解Annotation:jdk5.0新增的功能Annotation其实就是代码里的特殊标记,这些标记可以在编译、类加载,运行时被读取,并执行相应的处理。通过使用Annotation,程序员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息在JavaSe中,注解的使用目的比较简单,例如标记过时的功能 ,忽略警告等。在JavaEE/Android中注解占据了更重要的角色,例如用于配置文件的任何切面,代替JavaEE旧版中所遗留的冗余代码和XML配置等Annotation的使用示原创 2021-08-04 09:29:50 · 53 阅读 · 0 评论 -
学习Java的第三十八天(枚举类)
枚举类:类的对象只有有限,确定的,称为枚举类当需要定义一组常量的时候,建议使用枚举类如果枚举类中只有一个对象,则可以作为单例模式的实现方式定义方式:方式一:jdk5.0之前自定义枚举类1.声明对象属性,使用private final 修饰2.私有化类的构造器,并给对象属性赋值3.提供当前枚举类的多个对象,使用public static final 修饰方式二:jdk5.0时可以使用关键字enum定义枚举类定义的枚举类默认继承于java.lang.Enum类1.使用关键字定义枚举类2.原创 2021-08-02 09:31:32 · 136 阅读 · 0 评论 -
学习Java的第三十七天(比较的接口)
Comparable接口的使用:像String、包装类等实现了Comparable接口,重写了compareTo()方法,给出了比较两个对象大小的方式像String、包装类重写了CompareTo()方法后,进行了从小到大的排序重写CompareTo(obj)的规则:如果当前对象this大于形参对象obj,则返回正整数如果当前对象this小于形参对象obj,则返回负整数如果当前对象this等于形参对象obj,则返回0对于自定义类来说,如果需要排序,可以自定义类实现Comparable接口,重写原创 2021-08-01 10:02:02 · 89 阅读 · 0 评论 -
学习Java的第三十六天(日期时间)
SimpleDateFormat:对日期Date类的格式化和解析两个操作:格式化 : 日期 --> 字符串解析: 字符串 --> 日期实例化:使用默认的构造器:new SimpleDateFormat()调用带参的构造器:new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”)格式化:调用SimpleDateFormat对象的format方法解析:调用SimpleDateFormat对象的parse方法...原创 2021-07-31 09:44:02 · 41 阅读 · 0 评论 -
学习Java的第三十五天(StringBuffer/StringBuilder/Date)
String、StringBuffer、StringBuilder的异同:String:不可变的字符序列、底层使用char[]数组存储StringBuffer:可变的字符序列、线程安全、效率低、底层使用char[]数组存储StringBuilder:可变的字符序列、线程不安全、效率高、底层使用char[]数组存储StringBuffer:使用StringBuffer str = new StringBuffer(),底层默认新建一个长度为16的char[]数组使用append进行扩容,默认扩容为原创 2021-07-28 14:59:12 · 71 阅读 · 0 评论 -
学习Java的第三十四天(String的方法)
String的一些常用方法:int length:返回字符串长度char charAt:取指定索引位置的字符 boolean isEmpty:判断是否为空字符串String toLowerCase:将字符串的字符全部转换为小写String toUpperCase:将字符串的字符全部转换为大写String trim:忽略前导空白和尾部空白boolean equals(Object obj):比较字符串的内容是否相同boolean equalsIgnoreCase(String anotherS原创 2021-07-27 14:10:01 · 43 阅读 · 0 评论 -
学习Java的第三十三天(java常用类之String)
String:字符串,使用一对“”,引起来表示1.String声明为final,不可被继承2.String实现了serializable接口:表示字符串是支持序列化的实现了comparable接口:表示string可以比较大小3.String内部定义了final char[] value,用于存储字符串数据4.String代表不可变的字符序列5.通过字面量的方式给一个字符串赋值,此时的字符串值声明在字符串常量池中6.字符串常量池中是不会存储相同内容的字符串的String实例化的方式:1.通原创 2021-07-26 10:06:14 · 63 阅读 · 0 评论 -
学习Java的第三十二天(线程补充)
线程通信的三个方法:wait():一旦执行此方法,当前线程就进入阻塞状态,并释放同步监视器notify():一旦执行此方法,就会唤醒被wait的一个线程,如果由多个线程被wait,就唤醒优先级高的那个notifyAll():一旦执行此方法,就会唤醒所有被唤醒的线程注意:wait()、notify()、notifyAll()三个方法必须使用在同步代码块和同步方法中wait()、notify()、notifyAll()三个方法的调用者必须是同步代码块和同步方法中的同步监视器wait()、notif原创 2021-07-23 09:41:16 · 29 阅读 · 0 评论 -
学习Java的第三十一天(线程)
线程的生命周期:原创 2021-07-20 10:07:36 · 39 阅读 · 0 评论 -
学习Java的第三十天(线程)
程序:为完成特定任务、用某种语言编写的一组指令的集合。指一段静态的代码。进程:是程序的一次执行过程,或是正在运行的一个程序。程序是静态的,进程是动态的。进程是资源分配的单位。线程:是一个程序内部的一条执行路径。...原创 2021-07-06 10:24:48 · 41 阅读 · 0 评论 -
学习Java的第二十九天(异常处理)
异常的体系结构java.lang.Throwable java.lang.Error:一般不编写针对性的代码进行处理 java.lang,Exception:可以进行异常的处理 编译时异常 运行时异常原创 2021-05-11 21:47:09 · 51 阅读 · 0 评论 -
学习Java的第二十八天(内部类)
AZHE原创 2021-05-09 10:23:10 · 54 阅读 · 0 评论 -
学习Java的第二十七天(接口)
啊这原创 2021-05-08 10:41:44 · 35 阅读 · 0 评论 -
学习Java的第二十六天(abstract)
abstract抽象的abstract可以用来修饰的结构:类、方法abstract修饰类:抽象类此类不能实例化抽象类中一定有构造器,便于子类对象实例化时调用开发中,都会提供抽象类的子类,让子类对象实例化,完成相关的操作abstract修饰方法:抽象方法抽象方法只有方法的声明,没有方法体包含抽象方法的类,一定是一个抽象类;反之,抽象类中可以没有抽象方法若子类重写了父类中所有的抽象方法后,此子类方可实例化;若子类没有重写父类中的所有抽象方法,则此子类也是一个抽象类,需要使用abstract原创 2021-04-29 09:19:53 · 35 阅读 · 0 评论 -
学习Java的第二十五天(代码块、final)
代码块作用:用来初始化类、对象注意:代码块如果又修饰的话,只能使用static分类:静态代码块 和 非静态代码块静态代码块内部可以有输出语句随着类的加载而执行,而且只执行一次作用:初始化类的信息如果一个类中定义了多个静态代码块,则按照声明的先后顺序执行静态代码块的执行要优先于非静态代码块的执行静态代码块只能调用静态的属性、静态的方法,不能调用非静态的结构非静态代码块内部可以有输出语句随着对象的创建而执行每创建一个对象,就执行一次非静态代码块可以在创建对象时,对对象的属性进行初始原创 2021-04-28 09:08:43 · 39 阅读 · 0 评论 -
学习Java的第二十四天(static、单例设计模式、main解析)
static静态的作用:可以用来修饰属性、方法、代码块、内部类使用static修饰属性静态属性:按是否使用static修饰,由分为:静态属性、非静态属性(实例变量)实例变量:创建类的多个对象,每个对象都独立拥有一套类中的非静态属性,当修改其中一个对象中的非静态属性时,不会导致其他对象中同样属性值的修改静态变量,:创建类的多个对象,多个对象共享同一个静态变量,当通过某个对象修改静态变量时,会导致其他对象调用此变量时,是修改过了的。static修饰属性的其他说明:静态变量随着类的加载而加载静态原创 2021-04-27 10:33:13 · 35 阅读 · 0 评论 -
学习Java的第二十三天(单元测试、包装类的使用、包装类/String/基本数据类型的互相转换)
Java中的JUnit单元测试步骤:选中当前工程 - 右键选择,build path - add libraries - JUnit 4 -下一步创建java类进行单元测试,其中JAVA类要求:此类是public的,此类提供公共的无参构造器此类中声明单元测试的方法,方法的权限是public,没有返回值,没有形参此单元测试方法需要声明注解,@Test,并在单元测试类中导入:import org.junit.Test;写完代码以后,左键双击单元测试方法名,右键:run as - JUnit Test原创 2021-04-22 19:18:25 · 67 阅读 · 0 评论 -
学习Java的第二十二天(object类,==、equals()、toString())
java.lang,object类object类时所有Java类的根父类如果在类的声明中未使用extend关键字指明其父类,则默认父类为java.lang.Object类object中只定义了一个空参的构造器,无属性==的使用是一个运算符可以使用在基本数据类型变量和引用数据类型变量中如果比较的时基本数据类型变量,比较两个变量保存的数据是否相等。(类型不一定相同)如果比较的是引用数据类型变量,比较两个对象的地址值是否相同,即两个引用是否指向同一个对象实体equals()方法的使用:是一个方原创 2021-04-19 09:50:01 · 46 阅读 · 0 评论 -
学习Java的第二十一天(子类对象实例化的过程、多态性、instanof)
子类对象实例化全过程:从结果上看:子类继承父类以后,就获取了父类中声明的属性或方法。创建子类的对象,在堆空间中,就会加载所有父类中声明的属性从过程·上来看:当通过子类的构造器创建子类对象时,我们一定会直接或间接地调用其父类地构造器,进而调用父类地构造器,直到调用了java.lang,Object类中地空参的构造器为止虽然创建子类对象时,调用了父类的偶早期,但自始至终就创建过一个对象,即为new的子类对象...原创 2021-04-18 09:19:38 · 74 阅读 · 0 评论 -
学习Java的第十八天(package、import)
package关键字的作用:为了更好的实现项目中类的管理,提供包的概念使用package声明类或接口所属的包,声明在源文件的首行包,属于标识符,准许标识符的命名规则、规范、“见名知意”每“.”一次,就代表一层文件目录补充:同一个包下,不能命名同名的接口、类不同的包下,可以命名同名的接口、类import关键字的使用在源文件中显式的使用import结构导入指定包下的类、接口声明在包的声明和类的声明之间如果需要导入多个结构,则并列写出即可可以使用“xxx.*”的方式,表示可以导入xx原创 2021-03-22 09:57:36 · 56 阅读 · 0 评论 -
学习Java的第十七天(this关键字)
属性赋值的先后顺序① 默认初始化值② 显示初始化③ 构造器中赋值④ 通过“对象.方法” 或 “对象.属性”的方式. 赋值以上操作的先后顺序:① - ② - ③ - ④JavaBean定义:是一种Java语言写成的可重用组件符合以下标准:类是公共的有一个无参的公共的构造器有属性,且有对应的get 、set 方法UML类图this的使用this可以用来修饰:属性、方法、构造器this修饰属性和方法:this理解为当前对象,或当前正在创建的对象在类的方法中,可以使用“thi原创 2021-03-21 20:40:15 · 77 阅读 · 0 评论 -
学习Java的第十六天(封装性的理解,构造器)
递归方法的使用一个方法体内调用它自身原创 2021-03-21 09:50:36 · 51 阅读 · 0 评论 -
学习Java的第十五天(匿名对象,方法重载)
匿名对象:理解:我们创建的对象,没有显式地赋给一个变量名。特征:匿名对象只能调用一次方法的重载:定义:在一个类中,允许存在一个以上的同名方法,只要它们的参数类型不同即可记忆方法:两同一不同:同一个类、相同方法名参数列表不同,参数个数不同,参数类型不同判断方法是否重载:跟方法的修饰符、返回值类型、形参变量名、方法体都没有关系可变个数形参的格式:数据类型…变量名当调用可变个数形参的方法时,传入的参数个数可以是:0个、1个、2个…多个可变个数形参的方法和本类中方法名相同,形参不同的方法原创 2021-03-18 08:40:41 · 55 阅读 · 0 评论 -
学习Java的第十四天(面向对象)
一、面向对象学习的三条主线1、Java类及类的成员:属性、方法、构造器;代码块、内部类2、面向对象的三大特征:封装性、继承性、多态性3、其他关键字:this、super、static、final、 abstract、interface、package、import面向对象的两个要素:类:对一类事物的描述,是抽象的,概念上的定义对象:是实际存在的该类事物的每个个体,因而也称为实例类的成员属性方法创建类的对象 相当于 类的实例化 也就是 实例化类类和对象的使用:1、创建类,设计类的成员原创 2021-03-16 09:02:21 · 55 阅读 · 0 评论 -
学习Java的第十三天(数组的应用)
数据结构:数据与数据之间的逻辑关系:集合、一对一、一对多,多对多数据的存储结构线性表:顺序表(比如:数组)、链表、栈(先进后出)、队列(先进先出)树形结构:二叉树…图形结构:有向图算法:排序算法搜索算法...原创 2021-03-14 21:20:17 · 55 阅读 · 0 评论 -
学习Java的第十二天(数组)
数组概念:是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一的管理。数组的涉及到的要素数组名元素下标、索引数组的长度数组的特点数组是有序排列的数组属于引用类型的变量,数组的元素既可以是基本数据类型,又可以是引用数据类型创建数组对象会在内存中开辟一整块连续的空间数组的长度一旦确定之后就不能更改...原创 2021-03-12 14:58:10 · 44 阅读 · 0 评论 -
学习Java的第十一天(代码评估)
衡量一个功能代码的好坏:正确性可读性健壮性高效率与低存储:(时间复杂度)时间越快越好,(空间复杂度)额外使用的存储空间越小越好原创 2021-03-11 09:41:48 · 52 阅读 · 0 评论 -
学习Java的第十天(break 、continue)
break、continue关键字的使用关键字 使用范围 循环中使用的作用break switch-case中 结束当前循环(例子:若是单层循环,则循环结束) 循环结构中 continue 循环结构中 结束当次循环(例子:若是单层循环,则本次循环结束,跳到下一次循环) 两个关键字后面都不能声明执行语句跳出指定循环:label : for( ; ; ; ){for( ; ; ; ){break label;}}...原创 2021-03-10 10:22:41 · 44 阅读 · 0 评论 -
学习Java的第九天(switch-case的注意事项、三种循环结构、嵌套循环)
switch-case:如果switch-case结构中的多个case的执行语句相同,则可以考虑合并原创 2021-03-08 10:48:19 · 335 阅读 · 0 评论 -
学习Java的第八天(if-else、switch-case)
if-else注意点:else结果是可选的针对条件表达式:如果多个表达式之间是互斥关系,哪个判断执行语句写在前面不影响结果。如果多个表达式之间是交集关系,则需根据实际情况,考虑应该将哪个声明结构写在上面如果多个表达式自己是包含关系,则一般将范围小的声明写在范围大的声明上面...原创 2021-03-07 14:26:53 · 100 阅读 · 5 评论 -
学习Java的第七天(三元运算符、Scannner获取键盘值、程序流程控制)
三元运算符(条件表达式)?表达式1:表达式2条件表达式的结果为boolean如果条件表达式的结果为true,则执行表达式1如果条件表达式的结果为false,则执行表达式2表达式1和表达式2要求时一致的三元运算符是可以嵌套的凡是可以用三元运算符的地方的都可以用if-else改写,反之不成立Scanner 获取键盘值程序流程控制结构:顺序结构分支结构条件判断结构(if-else):if(条件表达式){执行表达式1;}二选一if(条件表达式1){执行表达式1;}else原创 2021-03-04 08:47:51 · 60 阅读 · 2 评论 -
学习Java的第六天(赋值运算符、比较运算符、逻辑运算符)
a = s++ : 先运算再自增1a = ++s: 先自增1再运算特别的,自增1不会改变本身变量的数据类型赋值运算符:不会改变变量本身的数据类型=+= : num += 1 等价于 num = num + 1/= : num /= 1 等价于 num = num / 1%= : num % = 1 等价于 num = num % 1-= : num -= 1 等价于 num = num - 1如果希望变量实现+2的操作,有两个方式:num = num +2num += 2(原创 2021-03-02 11:14:37 · 65 阅读 · 0 评论