java
文章平均质量分 63
java基础和进阶各种知识
pmc0_0
想做一个优秀的Java后端开发工程师
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java8-Stream
文章目录特点流程操作符 特点 代码简洁:函数式编程写出的代码简洁且意图明确,使用stream接口让你从此告别for循环。 多核友好: Java函数式编程使得编写并行程序从未如此简单,你需要的全部就是调用一下方法。 流程 第一步:把集合转换为流stream 第二步:操作stream流,stream流在管道中经过中间操作(intermediate operation)的处理,最后由最终操作(terminal operation)得到前面处理的结果 操作符 中间操作符 流方法 作用 f原创 2021-08-26 18:03:19 · 166 阅读 · 0 评论 -
Java8-Lambda
文章目录lambda 前置条件什么是函数式接口 lambda 前置条件 必须是函数式接口才可以使用lambda表达式 什么是函数式接口 接口中标注了@Functionallnterface 注解 接口中只有一个抽像方法会被编译器自动认识成函数式接口 接口中有一个抽像方法,同时包含了Object类的其它抽像方法也会被识别成抽像接口 package lambda; /** * @author pangjian * @Interface LambdaTest * @Description *原创 2021-08-26 11:49:13 · 173 阅读 · 0 评论 -
Java泛型
文章目录泛型类泛型接口泛型方法类型通配符类型通配符上限和下限 泛型类 package generic; /** * @author pangjian * @ClassName Generic * @Description 泛型类定义,T创建对象时指定具体的数据类型,外部指定 * @date 2021/8/25 13:12 */ public class Generic<T> { /** * @Description:外部指定属性类型 */原创 2021-08-25 14:36:55 · 129 阅读 · 0 评论 -
Java处理日期和时间
文章目录一、时间和日期概念日期时间二、时间在计算机的存储转化 一、时间和日期概念 日期 2016-11-20 时间 12:30:59 2017-1-1 20:21:59 二、时间在计算机的存储 Epoch Time:从1970年1月1日零点(格林威治时区│GMT+00:00)到现在经历的秒数,例如: 北京2016-11-208:15:01=1479600901 伦敦2016-11-200:15:01=1479600901 1479600901其实也可以叫做时间戳(Timestamp),可原创 2021-08-17 20:37:31 · 170 阅读 · 0 评论 -
Java枚举类
文章目录定义枚举类定义接口 定义枚举类 测试执行main方法会发现,它优先会调用枚举类的构造方法,把枚举项全部实例化,然后供 PayEnum.WEIXINPAY 方式使用其中的枚举项 package enumtest; /** * @author pangjian * @ClassName PayEnum * @Description 枚举类,可以实现接口,但已经不能继承其他类了,枚举类默认继承了Enum类,枚举有利于管理常量 * @date 2021/3/29 23:25 */ publ原创 2021-08-10 18:00:47 · 125 阅读 · 0 评论 -
Socket编程
UDP编程 UDPServer.java package socket.udp; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; public class UDPServer { public static void main(String[] args) { byte[] bytes = new byte[8192]; // 缓冲区,用来接原创 2021-03-08 21:32:55 · 119 阅读 · 0 评论 -
注解(Annotation)
注解 作用: 不是程序本身,可以对程序作出解释.(这一点和注释(comment)没什么区别) 可以被其他程序(比如:编译器等)读取. 内置注解 @Override @Deprecated @SuppressWarnings 元注解 元注解的作用就是负责注解其他的注解 @Target 用于描述注解的使用范围(即:被描述的注解可以用在什么地方) @Retention 表示需要在什么级别保存该注释信息,用于描述注解的生命周期 @Document 说明该注解将被包含在java原创 2021-03-19 11:51:28 · 211 阅读 · 0 评论 -
反射机制(Reflection)
反射 Reflection(反射)是Java被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。 引用加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整的类的结构信息。我们可以通过这个对象看到类的结构。这个对象就像一面镜子,透过这个镜子看到类的结构,反射由此而来 正常方式:引入需要的包类名称—》new实例化—》取得实例化对象 反射方式:实例化对象原创 2021-03-14 21:52:46 · 258 阅读 · 0 评论 -
Java-I/O流
IO流的分类方式: 一种方式是按照流的方向进行分类: 往内存中去,叫做输入(Input),或者叫做读(Read) 从内存中出来,叫做输出(Output),或者叫做写(Write) 另一种方式是按照读取数据方式不同进行分类: 有的流是按照字节的方式读取教据,一次读取1个字节byte,等同于一次读取8个二进制位,这种流是方能的,什么类型的文件都可以读取。包括:文本文件(xxx.txt),图片,声音文件,视频。 有的流是按照字符的方式读取数据的,一次读取一个字符,这种流是为了方便读取普通文本文件而存.原创 2021-03-03 14:49:55 · 169 阅读 · 3 评论 -
Java-集合(Collection)
集合不能存储基本数据类型,也不能直接存储java对象,集合存储的都是引用,集合又分为两大类: Collection Map list.add(100) // 自动装箱Integer Collection Collection接口继承了Iterable接口,Iterable有一个Iterator()方法,可以返回一个集合的迭代器对象,用来遍历集合的元素,Collection我们主要学两个子接口: List Set List<Integer> list = new ArrayL..原创 2021-02-26 22:10:52 · 270 阅读 · 0 评论 -
Java-异常处理
一、异常的分类 Java编译器会对检查异常进行检查,而对运行时异常不会检查。也就是说对于编译时异常要么通过throws进行声明抛出,要么通过try…catch进行捕获处理,否则编译不通过。而运行时异常没有throws和try…catch依然可以编译通过。但是同样可以对其进行throws或try…catch。 1. 错误 如果应用程序出现了 Error,那么将无法恢复,只能重新启动应用程序,最典型的Error 的异常是:OutOfMemoryError(内存溢出) 2. 编译时异常(检查异常) 出原创 2021-02-20 17:52:23 · 272 阅读 · 0 评论 -
Java的三大特性(封装,继承,多态)
封装 封装指的是属性私有化,根据需要提供setter和getter方法来访问属性。即隐藏具体属性和实现细节,仅对外开放接口,控制程序中属性的访问级别。 封装目的:增强安全性和简化编程,使用者不必在意具体实现细节,而只是通过外部接口即可访问类的成员。 继承 继承时子类继承父类的特征和行为,使得子类对象(实例)具有父类的属性,或子类从父类继承方法,使得子类具有与父类相同的行为。 B类 继承 A类,则称 A类 为超类、父类、基类,B类则称为子类、派生类、扩展类。 java 中的继承只支持单继承,不原创 2021-01-30 20:58:37 · 225 阅读 · 0 评论 -
Java环境变量配置
首先我们要明白在cmd里面运行java文件的命令,也就是所用到的命令的实际含义原创 2020-12-17 11:25:30 · 229 阅读 · 0 评论 -
Java多线程详解(3)线程同步和锁
处理多线程问题时,多个线程访问一个对象并修改数据库时,可能破坏事务的四大特性(原子性、一致性、隔离性、持久性),因此我们要采取队列和锁(缺一不可),就好像上图厕所排队,请问你怎么才能安全和安心的上一个厕所?这时候首先得有序排队(队列)避免插队冲突,第二 人进厕所得上锁(加锁)避免在你未完成的情况下别人进去干扰你 线程同步(保证线程安全) 当一个线程获得对象的排它锁,独占资源,其他线程必须等待,使用完成后释放锁即可,但会引起以下问题: 一个线程持有锁会导致其他所有需要此锁的线程挂起 在多线程竞争下..原创 2020-12-04 13:48:25 · 356 阅读 · 3 评论 -
Java多线程详解(2)线程状态
方法 说明 setPriority(int newPriority) 更改线程优先级 static void sleep(long millis) 在指定的毫秒数内让当前正在执行的线程休眠 void join() 等待该线程终止 static void yield() 暂停当前正在执行的线程对象,并执行其他线程 void interrupt() 中断线程,但现在官方已经不建议使用这个方法了 boolean isAlive() 测试线程是否处于活动状态 1.线程停止 ...原创 2020-12-02 12:12:39 · 204 阅读 · 0 评论 -
创建接口对象的简化-Lambda表达式
Lambda表达式 任何一个接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口 对于函数式接口,我们可以通过Lambda表达式来创建该接口对象。 为了更好的理解Lambda表达式的出现缘由,我们回顾以前是怎么创建接口对象的 //先定义一个接口 interface RoleName{ void outPutName(); } 1.外部类创建接口对象 //定义一个实现类(不在其他类体里面) class Teacher implements RoleName{ @Override.原创 2020-11-30 17:46:41 · 1397 阅读 · 0 评论 -
Java多线程详解(1)实现方式
单一线程只有主线程一条执行路径,多线程是多条执行路径,主线程和子线程并行交替执行 创建多线程的三种方式 继承Thread类【重点】 自定义线程类继承Thread类 重写run()方法,编写线程执行体 创建线程对象,调用start()方法启动线程 //自定义线程类继承Thread类 public class TestThread extends Thread{ //重写run()方法,编写线程执行体 @Override public void run(){ f..原创 2020-11-28 15:51:12 · 205 阅读 · 0 评论 -
if...else if...else if...
if…else if…else if…的使用注意事项 当if的逻辑判断为true,而else if的逻辑判断也为true时,只会执行if下的语句 public class Test { public static void main(String[] arg){ int i=100; if(i>1){ System.out.printf("执行if"); }else if(i>1){ System.out.printf("执行了else if1"); } else原创 2020-11-20 18:22:55 · 252 阅读 · 0 评论 -
Java编译解释过程
java文件到机器码过程 .java文件->经编译器javac编译为.class字节码文件->.class文件经jvm虚拟机解释->机器能理解的机器码 jdk( java development kit) jre ( java runtime enviroment) jvm ( java virtual machine)原创 2020-11-13 20:01:52 · 194 阅读 · 0 评论
分享