![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA基础
MarxistVive
这个作者很懒,什么都没留下…
展开
-
Java基础语法90-泛型
Java基础语法90-泛型文章目录Java基础语法90-泛型一、泛型的使用二、注意:三、自定义泛型方法四、泛型在继承方面的体现五、通配符的使用有限制条件通配符使用一、泛型的使用public class GenericTest { //在集合中使用泛型之前的情况: @Test public void test1(){ ArrayList list = new ArrayList(); //需求:存放学生的成绩 list.add(原创 2022-04-07 11:30:12 · 163 阅读 · 0 评论 -
Java基础语法96-Java9&10&11新特性
Java基础语法96-Java9&10&11新特性一、java9新特性一、 JDK 和 JRE 目录结构的改变bin 目录包含命令行开发和调试工具,如javac,jar和javadoc。include目录包含在编译本地代码时使用的C/C++头文件lib 目录包含JDK工具的几个JAR和其他类型的文件。 它有一个tools.jar文件,其中包 含javac编译器的Java类jre/bin 目录包含基本命令,如java命令。 在Windows平台上原创 2022-04-01 22:19:17 · 1679 阅读 · 0 评论 -
Java基础语法94-反射
Java基础语法94-反射文章目录Java基础语法94-反射一、举例二、疑问三、 关于java.lang.Class类的理解四、Class实例可以是哪些结构的说明:五、了解类的加载器六、通过反射创建对应的运行时类的对象1. newInstance()2.体会反射的动态性七、获取运行时类的属性结构及其内部结构1.获取属性结构2.权限修饰符 数据类型 变量名3.获取运行时类的方法结构4.获取构造器结构5.获取运行时类的父类6.获取运行时类的带泛型的父类7.获取运行时类的带泛型的父类的泛型8.获取运行时类实现原创 2022-04-01 08:43:38 · 161 阅读 · 0 评论 -
Java基础语法93-网络编程
Java基础语法93-网络编程文章目录Java基础语法93-网络编程一、网络编程中有两个主要的问题:二、网络编程中的两个要素:三、通信要素一:IP和端口号四、通讯要素二:网络协议五、TCP网络编程例子1:客户端发送信息给服务端,服务端将数据显示在控制台上例题2:客户端发送文件给服务端,服务端将文件保存在本地。例题3:从客户端发送文件给服务端,服务端保存到本地。并返回“发送成功”给客户端。并关闭相应的连接。六、UDPd协议的网络编程七、URL网络编程一、网络编程中有两个主要的问题:1.如何准确地定位网络原创 2022-03-31 10:12:12 · 51 阅读 · 0 评论 -
Java基础语法92-IO流
Java基础语法92-IO流文章目录Java基础语法92-IO流一、IO流的原理及分类二、流的分类:三、流的体系结构四、节点流使用方法1.将day09下的hello.txt文件内容读入程序中,并输出到控制台2.对read()操作升级:使用read的重载方法3.从内存中写出数据到硬盘的文件里4.练习5.测试FileInputStream和FileOutputStream的使用5.1 对图片进行复制5.2 指定路径下复制文件五、处理流之一:缓冲流的使用方法1.实现非文本文件的复制2.速度对比3.实现文本文件复原创 2022-03-30 17:33:24 · 391 阅读 · 0 评论 -
Java基础语法92-IO流
Java基础语法92-IO流文章目录Java基础语法92-IO流一、IO流的原理及分类二、流的分类:三、流的体系结构四、节点流使用方法1.将day09下的hello.txt文件内容读入程序中,并输出到控制台2.对read()操作升级:使用read的重载方法3.从内存中写出数据到硬盘的文件里4.练习5.测试FileInputStream和FileOutputStream的使用5.1 对图片进行复制5.2 指定路径下复制文件五、处理流之一:缓冲流的使用方法1.实现非文本文件的复制2.速度对比3.实现文本文件复原创 2022-03-30 16:06:29 · 134 阅读 · 0 评论 -
Java基础语法90-泛型
Java基础语法90-泛型文章目录Java基础语法90-泛型一、泛型的使用二、注意:三、自定义泛型方法四、泛型在继承方面的体现五、通配符的使用有限制条件通配符使用一、泛型的使用public class GenericTest { //在集合中使用泛型之前的情况: @Test public void test1(){ ArrayList list = new ArrayList(); //需求:存放学生的成绩 list.add(原创 2022-03-28 20:55:51 · 119 阅读 · 0 评论 -
Java基础语法89-集合
Java基础语法89-集合文章目录Java基础语法89-集合一、集合框架的概述二、集合框架三、Collection接口中的方法的使用常用方法1常用方法2集合元素的遍历操作,使用迭代器Iterator接口foreach循环遍历四、Collection子接口List1. List接口框架2. ArrayList的源码分析2.1 jdk 7情况下2.2 jdk 8中ArrayList的变化:2.3 小结3. LinkedList的源码分析:4. Vector的源码分析5.常用方法测试五、Collection子接原创 2022-03-28 16:18:28 · 156 阅读 · 0 评论 -
Java基础语法88-注解
Java基础语法88-注解一、注解概述在JavaSE中,注解的使用目的比较简单,例如标记过时的功能, 忽略警告等。在JavaEE/Android中注解占据了更重要的角色,例如用来配置应用程序的任何切面,代替JavaEE旧版中所遗留的繁冗代码和XML配置等。未来的开发模式都是基于注解的,JPA是基于注解的,Spring2.5以上都是基于注解的,Hibernate3.x以后也是基于注解的,现在的Struts2有一部分也是基于注解的了,注解是一种趋势,一定程度上可以说:框架 = 注解 + 反射 + 设计原创 2022-03-24 21:43:19 · 160 阅读 · 0 评论 -
Java基础语法87-枚举类
Java基础语法87-枚举类一、枚举类的使用1.枚举类的理解:类的对象只有有限个,确定的。我们称此类为枚举类2.当需要定义一组常量时,强烈建议使用枚举类3.如果枚举类中只有一个对象,则可以作为单例模式的实现方式。二、如何定义枚举类方式一:jdk5.0之前,自定义枚举类//自定义枚举类class Season{ //1.声明Season对象的属性:private final修饰 private final String seasonName; private final原创 2022-03-24 10:26:05 · 179 阅读 · 0 评论 -
Java基础语法86-System、Math、BigInteger、BigDecimal的使用
Java基础语法86-System、Math、BigInteger、BigDecimal的使用一、System@Testpublic void test1() { String javaVersion = System.getProperty("java.version"); System.out.println("java的version:" + javaVersion); String javaHome = System.getProperty("java.home");原创 2022-03-23 20:54:15 · 108 阅读 · 0 评论 -
Java基础语法84-System类中获取时间戳的方法
Java基础语法84-System类中获取时间戳的方法一、JDK 8之前日期和时间的API测试1.System类中的currentTimeMillis()@Testpublic void test1(){ long time = System.currentTimeMillis(); //返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。 //称为时间戳 System.out.println(time);}2.java.util.Date类/原创 2022-03-23 17:33:48 · 272 阅读 · 0 评论 -
Java基础语法83-StringBuffer与StringBuilder的介绍
Java基础语法83-StringBuffer与StringBuilder的介绍文章目录Java基础语法83-StringBuffer与StringBuilder的介绍一、String、StringBuffer、StringBuilder三者的异同?二、StringBuffer的常用方法三、对比String、StringBuffer、StringBuilder三者的效率一、String、StringBuffer、StringBuilder三者的异同?String:不可变的字符序列;底层使用char[]原创 2022-03-23 17:33:18 · 96 阅读 · 0 评论 -
Java基础语法82-String与多种数据类型的转换
Java基础语法82-String与多种数据类型的转换文章目录Java基础语法82-String与多种数据类型的转换一、String 与基本数据类型、包装类之间的转换二、String与char[]数组之间的转换三、 String 与 byte[]之间的转换一、String 与基本数据类型、包装类之间的转换String --> 基本数据类型、包装类:调用包装类的静态方法:parseXxx(str)基本数据类型、包装类 --> String:调用String重载的valueOf(xxx)@原创 2022-03-22 16:58:21 · 126 阅读 · 0 评论 -
Java基础语法81-String常用方法
Java基础语法81-String常用方法文章目录Java基础语法81-String常用方法一、常用方法1二、常用方法2三、常用方法3一、常用方法1int length():返回字符串的长度: return value.lengthchar charAt(int index): 返回某索引处的字符return value[index]boolean isEmpty():判断是否是空字符串:return value.length == 0String toLowerCase():使用默认语言环境,原创 2022-03-21 21:34:11 · 110 阅读 · 0 评论 -
Java基础语法80-String类的概述
Java基础语法80-String类的概述文章目录Java基础语法80-String类的概述一、String的实例化方式:二、结论三、一道面试题四、概述一、String的实例化方式:方式一:通过字面量定义的方式方式二:通过new + 构造器的方式面试题:String s = new String(“abc”);方式创建对象,在内存中创建了几个对象?两个:一个是堆空间中new结构,另一个是char[]对应的常量池中的数据:“abc”@Testpublic void test2(){ /原创 2022-03-21 21:16:39 · 100 阅读 · 0 评论 -
Java基础语法79-创建线程的方式四:使用线程池
Java基础语法79-创建线程的方式四:使用线程池创建线程的方式四:使用线程池好处:1.提高响应速度(减少了创建新线程的时间)2.降低资源消耗(重复利用线程池中线程,不需要每次都创建)3.便于线程管理corePoolSize:核心池的大小maximumPoolSize:最大线程数keepAliveTime:线程没有任务时最多保持多长时间后会终止class NumberThread implements Runnable{ @Override public void run原创 2022-03-21 16:48:59 · 56 阅读 · 0 评论 -
Java基础语法78-创建多线程方式三--实现Callable接口
Java基础语法78-创建多线程方式三–实现Callable接口创建线程的方式三:实现Callable接口。 — JDK 5.0新增如何理解实现Callable接口的方式创建多线程比实现Runnable接口创建多线程方式强大?call()可以有返回值的。call()可以抛出异常,被外面的操作捕获,获取异常的信息Callable是支持泛型的//1.创建一个实现Callable的实现类class NumThread implements Callable{ //2.实现call方法,将原创 2022-03-21 16:45:31 · 169 阅读 · 0 评论 -
Java基础语法77-生产者消费者问题
Java基础语法77-生产者消费者问题线程通信的应用:经典例题:生产者/消费者问题生产者(Productor)将产品交给店员(Clerk),而消费者(Customer)从店员处取走产品,店员一次只能持有固定数量的产品(比如:20),如果生产者试图生产更多的产品,店员会叫生产者停一下,如果店中有空位放产品了再通知生产者继续生产;如果店中没有产品了,店员会告诉消费者等一下,如果店中有产品了再通知消费者来取走产品。分析:是否是多线程问题?是,生产者线程,消费者线程是否有共享数据?是,店员(或产品原创 2022-03-21 15:08:22 · 119 阅读 · 0 评论 -
Java基础语法76-线程通信例题
Java基础语法76-线程通信例题线程通信的例子:使用两个线程打印 1-100。线程1, 线程2 交替打印涉及到的三个方法:wait():一旦执行此方法,当前线程就进入阻塞状态,并释放同步监视器。notify():一旦执行此方法,就会唤醒被wait的一个线程。如果有多个线程被wait,就唤醒优先级高的那个。notifyAll():一旦执行此方法,就会唤醒所有被wait的线程。说明:1.wait(),notify(),notifyAll()三个方法必须使用在同步代码块或同步方法中。2.wait原创 2022-03-21 15:07:52 · 132 阅读 · 0 评论 -
Java基础语法75-Lock锁方式解决线程安全问题
Java基础语法75-Lock锁方式解决线程安全问题文章目录Java基础语法75-Lock锁方式解决线程安全问题解决线程安全问题的方式三:Lock锁 — JDK5.0新增面试题:synchronized 与 Lock的异同?相同:二者都可以解决线程安全问题不同:synchronized机制在执行完相应的同步代码以后,自动的释放同步监视器Lock需要手动的启动同步(lock()),同时结束同步也需要手动的实现(unlock())2.优先使用顺序:Lock 同步代码块(已经进入了方法体,原创 2022-03-21 15:07:24 · 125 阅读 · 0 评论 -
Java基础语法74-线程的生命周期
Java基础语法74-线程的生命周期文章目录Java基础语法74-线程的生命周期一、例子:创建三个窗口卖票,总票数为100张.使用实现Runnable接口的方式二、死锁一、例子:创建三个窗口卖票,总票数为100张.使用实现Runnable接口的方式1.问题:卖票过程中,出现了重票、错票 -->出现了线程的安全问题2.问题出现的原因:当某个线程操作车票的过程中,尚未操作完成时,其他线程参与进来,也操作车票。3.如何解决:当一个线程a在操作ticket的时候,其他线程不能参与进来。直到线程a操作原创 2022-03-21 15:06:29 · 93 阅读 · 0 评论 -
Java基础语法73-多线程
Java基础语法73-线程的创建与使用文章目录Java基础语法73-线程的创建与使用一、多线程的创建,方式一:继承于Thread类二、测试Thread中的常用方法:三、例子:创建三个窗口卖票,总票数为100张.使用继承Thread类的方式四、创建多线程的方式二:实现Runnable接口五、例子:创建三个窗口卖票,总票数为100张.使用实现Runnable接口的方式一、多线程的创建,方式一:继承于Thread类创建一个继承于Thread类的子类重写Thread类的run() --> 将此线程原创 2022-03-15 11:03:24 · 91 阅读 · 0 评论 -
Java基础语法72-异常练习
Java基础语法72-异常练习文章目录Java基础语法72-异常练习编写应用程序EcmDef.java,接收命令行的两个参数,要求不能输入负数,计算两数相除。对数据类型不一致(NumberFormatException)、缺少命令行参数(ArrayIndexOutOfBoundsException、除0(ArithmeticException)及输入负数(EcDef 自定义的异常)进行异常处理。提示:(1)在主类(EcmDef)中定义异常方法(ecm)完成两数相除功能。(2)在main()方原创 2021-10-30 18:33:11 · 81 阅读 · 0 评论 -
Java基础语法71-异常
Java基础语法71-异常文章目录Java基础语法71-异常一、Error二、Exception1.异常体系结构2.异常处理方式(1)try-catch-finally(2)throws + 异常类型(3)手动抛出异常3.用户自定义异常类一、ErrorError:Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。比如:StackOverflowError和OOM。一般不编写针对性的代码进行处理。package com.java12;/* * Error: * Ja原创 2021-10-30 18:32:32 · 125 阅读 · 0 评论 -
Java基础语法70-内部类
Java基础语法70-内部类文章目录Java基础语法70-内部类一、定义二、分类三、成员内部类四、关注如下的3个问题4.1 如何实例化成员内部类的对象4.2 如何在成员内部类中区分调用外部类的结构4.3 开发中局部内部类的使用一、定义Java中允许将一个类A声明在另一个类B中,则类A就内部类,类B就是外部类二、分类内部类的分类:成员内部类(静态、非静态) vs 局部内部类(方法内、代码块内、构造器内)三、成员内部类一方面,作为外部类的成员:① 调用外部结构② 可以用static修饰原创 2021-10-21 11:36:20 · 89 阅读 · 0 评论 -
Java基础语法69-接口
Java基础语法69-接口文章目录Java基础语法69-接口一、接口的使用二、接口的应用:代理模式三、Java8接口的新特性一、接口的使用接口使用interface来定义在java中接口和类是并列的结构如何定义接口:定义接口中的成员 3.1 JDK7及以前:只能定义全局常量和抽象方法 全局常量:public static final的,但是书写时可以省略不写 抽象方法:public abstract的 3.2 JD原创 2021-10-14 19:30:35 · 1631 阅读 · 0 评论 -
Java基础语法68-抽象类练习
Java基础语法68-抽象类练习编写工资系统,实现不同类型员工(多态)的按月发放工资。如果当月出现某个Employee对象的生日,则将该雇员的工资增加100元。实验说明:(1) 定义一个Employee类,该类包含:private成员变量name,number,birthday,其中birthday 为MyDate类的对象;abstract方法earnings();toString()方法输出对象的name,number和birthday。(2) MyDate类包含:private成原创 2021-10-12 15:33:39 · 608 阅读 · 0 评论 -
Java基础语法67-创建抽象类的匿名子类对象
Java基础语法67-创建抽象类的匿名子类对象package com.java9;/* * 抽象类的匿名子类 * */public class PersonTest { public static void main(String[] args) { method(new Student());//匿名对象 Worker worker = new Worker(); method1(worker);//非匿名的类非原创 2021-10-12 15:32:58 · 259 阅读 · 0 评论 -
Java基础语法66-抽象性的练习
Java基础语法66-抽象性的练习编写一个Employee类,声明为抽象类,包含如下三个属性:name、id、salary。提供必要的构造器和抽象方法:work()对于Manager类来说,他既是员工,还具有奖金(bonus)的属性。请使用继承的思想,设计CommonEmployee类和Manager类,要求类中提供必要的方法进行属性访问。package com.java8;public class CommonEmployee extends Employee{ @Override原创 2021-10-12 15:32:24 · 137 阅读 · 0 评论 -
Java基础语法65-abstract关键字的使用
Java基础语法65-abstract关键字的使用文章目录Java基础语法65-abstract关键字的使用1.abstract:抽象的2.abstract可以用来修饰的结构:类、方法3.abstract修饰类:抽象类4.abstract修饰方法:抽象方法5.abstract使用上的注意点1.abstract:抽象的2.abstract可以用来修饰的结构:类、方法3.abstract修饰类:抽象类 此类不能实例化 抽象类中一定有构造器,便于子类实例化时调用(涉及:子类对象实例化的全过原创 2021-10-12 15:31:51 · 158 阅读 · 0 评论 -
Java基础语法64-final修饰类和方法
Java基础语法64-final修饰类和方法文章目录Java基础语法64-final修饰类和方法1. final可以用来修饰的结构final用来修饰一个类final修饰一个方法final用来修饰一个变量① final修饰属性② final修饰局部变量1. final可以用来修饰的结构类、方法、变量final用来修饰一个类此类不可以被其他类继承。比如String类、System类、StringBuffer类final修饰一个方法表明此方法不可以被重写比如:Object类中的getClass原创 2021-10-06 13:10:48 · 361 阅读 · 0 评论 -
Java基础语法63-属性赋值的顺序
Java基础语法63-属性赋值的顺序对属性可以赋值的位置:①默认初始化②显式初始化/⑤在代码块中赋值③构造器中初始化④有了对象以后,可以通过"对象.属性"或"对象.方法"的方式,进行赋值执行的先后顺序:① - ② / ⑤ - ③ - ④...原创 2021-09-30 11:10:28 · 130 阅读 · 0 评论 -
Java基础语法62-代码块(初始化块)
Java基础语法62-代码块(初始化块)代码块的作用用来初始化类、对象代码块如果有修饰的话只能使用static代码块的分类静态代码块 vs 非静态代码块静态代码块:内部可以有输出语句,随着类的加载而执行,而且只执行一次 作用:初始化类的信息 如果一个类中定义了多个静态代码块,则按照声明的顺序先后执行 静态代码块内只能调用静态的属性和方法非静态代码块:原创 2021-09-26 13:36:13 · 121 阅读 · 0 评论 -
Java基础语法61-理解main()方法的语法
Java基础语法61-理解mian()方法的语法文章目录Java基础语法61-理解mian()方法的语法main()方法的使用说明main()方法的使用说明main()方法作为程序的入口main()方法也是一个普通的静态方法main()方法可以作为我们与控制台交互的一种方式。(之前,使用Scanner)package com.java5;public class MainDemo { public static void main(String[] args) {原创 2021-09-26 13:35:36 · 114 阅读 · 0 评论 -
Java基础语法60-单例的饿汉式实现
Java基础语法60-单例的饿汉式实现所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例。如何实现?饿汉式 vs 懒汉式区分饿汉式 和 懒汉式饿汉式:坏处:对象加载时间过长。好处:饿汉式是线程安全的 懒汉式:好处:延迟对象的创建。 目前的写法坏处:线程不安全。—>到多线程内容时,再修改package com.java5;public class SingletonTest {原创 2021-09-25 17:26:08 · 74 阅读 · 0 评论 -
Java基础语法59-Static练习
Java基础语法59-Static练习编写一个类实现银行账户的概念,包含的属性有“帐号”、“密码”、“存款余额”、“利率”、“最小余额”,定义封装这些属性的方法。账号要自动生成。编写主类,使用银行账户类,输入、输出3个储户的上述信息。考虑:哪些属性可以设计成static属性。package com.exer;public class Account { private int id; private String pwd = "000000"; private dou原创 2021-09-25 17:25:16 · 186 阅读 · 0 评论 -
Java基础语法58-Static关键字的应用
Java基础语法58-Static关键字的应用package com;public class java4 { public static void main(String[] args) { Circle c1 = new Circle(); Circle c2 = new Circle(); System.out.println("c1的ID:" + c1.getId()); System.out.println("c2原创 2021-09-25 17:24:46 · 123 阅读 · 0 评论 -
Java基础语法57-Static关键字的使用
Java基础语法57-Static关键字的使用文章目录Java基础语法57-Static关键字的使用一、Static关键字的使用1. static:静态的2.static可以用来修饰:属性、方法、代码块、内部类3.使用static修饰属性:静态变量(类变量)3.1 属性3.2 实例变量3.3 静态变量3.4 static修饰属性的其他说明3.5静态属性举例4.使用static修饰方法5.static注意点6.开发中,如何确定一个属性/方法是否要声明为static的?一、Static关键字的使用1.原创 2021-09-25 17:23:42 · 122 阅读 · 0 评论 -
Java基础语法56-包装类的使用
Java基础语法56-包装类的使用包装类的使用:java提供了8种基本数据类型对应的包装类,使得基本类型的数据变量具有类的特征。掌握的:基本数据类型、包装类、String三者之间的相互转化package test.com.java2;import org.junit.Test;public class Wrapper { //String类型->基本数据类型、包装类:调用包装类的parseXxx @Test public void test5(){原创 2021-09-16 20:44:23 · 153 阅读 · 0 评论