![](https://img-blog.csdnimg.cn/5e607a59e3c341d1a44b4fd7a27545c4.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
java基础
文章平均质量分 78
java基础
DongGei
这个作者很懒,什么都没留下…
展开
-
HashMap面试题
1.8 数组+链表/红黑树 1.7 数组+链表。原创 2023-06-03 16:00:43 · 377 阅读 · 0 评论 -
JAVA-IO流复习
流:是一张抽象概念,是数据传输的总称,数据在设备之间的传输为流。分类:输出流/输入流,字节流/字符流(在记事本读的懂的是字符流,读不懂的是字节流)(不确定用字节)位置:作用:作用1,在JKD11,FileRead.FileWrite中已经可以指定了作用2:字节流到字符流解决了乱码,字符流到缓存字符流 解决了读一行。原创 2023-03-15 09:49:08 · 357 阅读 · 0 评论 -
JAVA多线程join()方法细解 到底释放锁吗?
join方法能干吗?在A线程中调用B.join()那么B线程会获得cpu执行。当前线程进入WAITING/TIMED_WAITING状态,线程t执行完毕或者millis时间到,当前线程t一般情况下进入RUNNABLE状态。t1.wait();会释放t1 这个线程的对象锁 也就是说t1.join()会释放t1这个对象的锁,其他的锁不会释放。wait方法:native方法 作用是释放调用对象的对象锁,当前线程进入等待状态。不会释放 因为join的调用对象是mythread,释放的是mythreda的锁。原创 2023-03-03 17:33:43 · 472 阅读 · 0 评论 -
JVM全面总结
一.类加载子系统why 为什么要这么做?when 什么时候会触发加载How 怎么样进行的---加载相关---类加载器双亲委派机制沙箱安全机制---链接过程相关------初始化相关---类构造器clinit()二.运行时数据区1.方法区(永久代 元空间)(1)方法区在哪?(2)方法区里有什么?为什么使用元空间替换永久代?4.8. 方法的调用常量池内存位置演化2.堆调用关系3.程序计数器(PC寄存器)4.虚拟机栈(1)操作数栈栈顶缓存技术(Top Of Stack Cashing)技术(2)动态链接。原创 2023-02-26 21:19:09 · 1325 阅读 · 0 评论 -
java常见题1
在程序执行的过程中,可以创建多个对象,既多次实例化。父类方法是包访问权限,子类的重写方法是public访问权限。实例变量:随着对象的创建而初始化,随着对象的被回收而消亡,每一个对象的实例变量都是独立的。非静态实例变量显示赋值代码和非静态代码块从上到下顺序执行,而对应构造器的代码最后执行、类变量:随着类的初始化而初始化,随着类的卸载而消亡,该类的所有对象的类变量是共享的。()方法 方法可能重载有多个,有几个构造器就有几个()方法方法。:上图中的 4 没有输出,重写的方法两个类中都调用的是子类的。原创 2022-11-07 20:25:12 · 295 阅读 · 0 评论 -
JUC五-ForkJoin,JMM和volatile,CAS,自旋锁,死锁
上面例子体现的实际就是可见性,它保证的是在多个线程之间,一个线程对volatile 变量的修改对另一个线程可见, 不能保证原子性,仅用在一个写线程,多个读线程的情况。,编译器重排序,就是在编译过程中,编译器根据上下文分析对指令进行重排序,目的是减少CPU和内存的交互,重排序之后尽可能保证CPU从寄存器或缓存行中读取数据。(3)请求和保持条件:进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源已被其他进程占有,此时请求进程被阻塞,但对自己已获得的资源保持不放。所以两次操作值还是1,肯定就少了。原创 2022-11-07 16:45:42 · 297 阅读 · 0 评论 -
11种行为型模式
笔记来源于黑马程序员行为型模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分派行为,后者采用组合或聚合在对象间分配行为。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象行为模式比类行为模式具有更大的灵活性。行为型模式分为:以上 11 种行为型模式,除了模板方法模式和解释器模式是类行为型模式,其他的全部属于对象行为型模式。在面向对象程序设计过程中,程序员常常会遇到这种情况:设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知,或者转载 2022-11-05 18:18:03 · 117 阅读 · 0 评论 -
7种结构型模式
* 代理模式* 适配器模式* 装饰者模式* 桥接模式* 外观模式* 组合模式* 享元模式转载 2022-10-29 22:50:35 · 306 阅读 · 0 评论 -
5种创建者模式
* 单例模式* 工厂方法模式* 抽象工厂模式* 原型模式* 建造者模式转载 2022-10-27 19:00:30 · 98 阅读 · 0 评论 -
Vm options -D 修改springboot项目的配置文件(在idea一个项目多开)
例如 我希望在idea中一个项目多开,不同的端口,模拟集群效果。spring.application.name也可以更改。对应application.yml中的位置。原创 2022-10-13 13:24:23 · 2086 阅读 · 0 评论 -
JUC四-阻塞队列BlockingQueue,线程池(三大方法,七大参数,四种拒绝策略)
阻塞队列BlockingQueue,线程池(三大方法,七大参数,四种拒绝策略)原创 2022-09-27 19:31:06 · 430 阅读 · 0 评论 -
JUC三-集合的不安全操作,callable,countDownLatch,cyclicBarrier,Semaphore,读写锁
核心思想是,如果有多个调用者(Callers)同时要求相同的资源(如内存或者是磁盘上的数据存储),他们会共同获取相同的指针指向相同的资源,直到某个调用者视图修改资源内容时,系统才会真正复制一份专用副本(private copy)给该调用者,而其他调用者所见到的最初的资源仍然保持不变。在资源竞争不是很激烈的情况下,Synchronized的性能要优于ReetrantLock,但是在资源竞争很激烈的情况下,Synchronized的性能会下降几十倍,但是ReetrantLock的性能能维持常态;原创 2022-09-27 19:29:06 · 311 阅读 · 0 评论 -
JUC二-八个关于锁的问题(精准认识synchronized )
原因是:对于static静态方法来说,对于整个类Class来说只有一份,对于不同的对象使用的是同一份方法,相当于这个方法是属于这个类的,如果静态static方法使用synchronized锁定,那么这个synchronized锁会锁住整个类!不管多少个对象,对于静态的锁都只有一把锁,谁先拿到这个锁就先执行,其他的进程都需要等待!那么顺序又是怎么样的呢?原因:因为一个锁的是Class类的模板,一个锁的是对象的调用者。4.如果我们使用的是两个对象,一个调用发短信,一个调用打电话,那么整个顺序是怎么样的呢?原创 2022-09-27 19:23:00 · 193 阅读 · 0 评论 -
JUC一-synchronized和LOCK锁
synchronized和LOCK锁原创 2022-09-27 19:19:46 · 234 阅读 · 0 评论 -
java多线程(初级知识)
创建多线程,线程状态和常用方法,守护线程,线程同步原创 2022-09-27 18:30:22 · 488 阅读 · 0 评论 -
Java—GUI编程
GUI编程组件窗口弹窗面板文本框按钮图片监听事件鼠标键盘事件破解工具一. 简介Gui核心技术:Swing AWT,不流行原因:界面不美观需要jre环境为什么学?写小工具工作可能维护swing界面,概率极小!!了解mvc架构二.AWT1.组件和容器1. Frame2. 面板Panel3. 布局管理器流式布局东西南北中表格布局4.事件监听5.输入框TextField监听6.简易计数器(组合+内部类复习)oop原则:组合大于继承(1.原创 2021-07-26 11:39:01 · 92 阅读 · 0 评论 -
javaStream的一些高级用法-基本数据类型优化,并行流
我们之前用到的很多Stream的方法由于都使用了泛型。所以涉及到的参数和返回值都是引用数据类型。 即使我们操作的是整数小数,但是实际用的都是他们的包装类。JDK5中引入的自动装箱和自动拆箱让我们在使用对应的包装类时就好像使用基本数据类型一样方便。但是你一定要知道装箱和拆箱肯定是要消耗时间的。虽然这个时间消耗很下。但是在大量的数据不断的重复装箱拆箱的时候,你就不能无视这个时间损耗了。 所以为了让我们能够对这部分的时间消耗进行优化。Stream还提供了很多专门针对基本数据类型的方法。 例如:mapTo原创 2022-06-03 20:47:49 · 619 阅读 · 0 评论 -
java_lambda表达式中的方法引用
我们在使用lambda时,如果方法体中只有一个方法的调用的话(包括构造方法),我们可以用方法引用进一步简化代码。也是一个语法糖了解 知道是什么意思 可以读懂其他人的代码即可写多了 也就熟练了 可以使用快捷键先生成 面向快捷键开发 类名或者对象名::方法名使用前提 如果我们在重写方法的时候,方法体中只有一行代码,并且这行代码是调用了某个类的静态方法,并且我们把要重写的抽象方法中所有的参数都按照顺序传入了这个静态方法中,这个时候我们就可以引用类的静态方法。例如:如下代码就可以用方法引用进行简化注原创 2022-06-03 14:09:48 · 953 阅读 · 0 评论 -
java_Stream流和Optional
Java8的Stream使用的是函数式编程模式,如同它的名字一样,它可以被用来对集合或数组进行链状流式的操作。可以更方便的让我们对集合或数组操作。idea 对debug对stream流的直观体现:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GtKTiuQX-1654088320870)(C:\Users\DONG\AppData\Roaming\Typora\typora-user-images\image-20220527225905697.png)]单列集合: 数原创 2022-06-01 21:17:04 · 751 阅读 · 0 评论 -
java_Lambda表达式
Lambda表达式Lambda是JDK8中一个语法糖。他可以对某些匿名内部类的写法进行简化。它是函数式编程思想的一个重要体现。让我们不用关注是什么对象。而是更关注我们对数据进行了什么操作。格式:(参数列表)->{代码} 小括号 和 大括号 都还可以省略语法糖:简单的说,语法糖就是一种便捷写法。就相当于汉语里的成语。idea tip:ctrl+p 查看传参提示public class LambdaDemo_01 { public static void main(原创 2022-05-29 12:26:15 · 89 阅读 · 0 评论 -
java 核心技术卷——JShell,数据类型,字符串(码点,代码单元)
java 核心技术卷Ⅰ 阅读记原创 2022-03-31 17:59:40 · 232 阅读 · 0 评论 -
字符串,栈与队列
java算法总结,算法题转载 2022-01-29 11:17:50 · 566 阅读 · 0 评论 -
java注解和反射
本站狂神学习笔记java注解和反射一.注解1.什么是注解2.内置注解3.元注解4.自定义注解二.反射1.概念2.class类的创建方式3.那些类型有Class对象4.分析类初始化5.类加载内存分析6.类加载器7.获取运行时类的完整结构7. 动态创建对象执行方法8.性能对比9.反射获取泛型信息10. 反射获取注解信息ORM对象关系映射一.注解1.什么是注解Annotation是从JDK5.0开始引入的概念eg:@override 重写的注解1.不是程序本身 给程序作出解释()2.可以被其他程原创 2021-12-02 22:55:50 · 103 阅读 · 0 评论 -
Java—集合(collection List set 泛型 Map)
集合一.集合类体系结构1.Collection (单列)—>>List(可重复)—>>ArryList—>>Linklist—>>set(不可重复)—>>HashSet—>>TreeSet2.Map 双列—>>HashAapCollection,Map, List,set是接口,4个是实现类后面的可以使用前面类里的方法二.collection集合1.概述及常用方法[外链图片转存失败,源站可能有防盗链机制原创 2021-08-10 09:00:08 · 117 阅读 · 0 评论 -
Java-反射大总结
反射1.概念Java(静态语言)被视为准动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。 private 里的也可以操作加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象) ,这个对象就包含了完整的类的结构信息。我们可以通过这个对象看到类的结构。这个对象就像一面镜子, 透过这个镜子看到类的结构,所以,我们形象的称之为:反射正常方式: 引入需要的"包类"名称一>原创 2021-08-07 11:19:07 · 108 阅读 · 0 评论 -
java-注解
注解1.什么是注解Annotation是从JDK5.0开始引入的概念eg:@override 重写的注解1.不是程序本身 给程序作出解释()2.可以被其他程序读取非必须3.格式:@注释+注释名,还可以加一些参数值4.有检查和约束的作用可以放在方法或者类上面2.内置注解@override 指示方法声明旨在覆盖超类型中的方法声明。@Deprecated 已过时 不推荐使用的代码@SuppressWarnings 镇压警告(可以放入参数)3.元注解作用:负责注解其他注解4个原创 2021-08-06 17:44:54 · 62 阅读 · 0 评论 -
JavaSE-字节流(读写数据,复制文件,缓存流)
JavaSE-字节流(读写数据,复制文件,缓存流)1.IO流概述IO: Input/Output流:是一张抽象概念,是数据传输的总称,数据在设备之间的传输为流。分类:输出流/输入流,字节流/字符流(在记事本读的懂的是字符流,读不懂的是字节流)(不确定用字节)2.字节流写数据import java.io.FileOutputStream;import java.io.IOException;public class FileOutputStreamDemo { public s原创 2021-08-05 17:07:06 · 167 阅读 · 0 评论 -
javeSE_File
java—File操作file:文件和目录路径名的抽象表示文件和目录是可以通过file封装成对象的1. 构造方法 File(String pathname)//最简单的 File(String parent, String child)//父路径和子路径 合起来就是一个完整的路径 File(File parent, String child)它只是保存一个路径 没有验证路径是否正确。相对路径:myFile\java.txt ( 默认是项目下的与模块同级 )绝对路径:E:\abc\jav原创 2021-08-01 08:37:34 · 223 阅读 · 0 评论 -
javeSE_进程和线程
进程和线程一.实现多线程1. 进程线程依赖于进程存在进程:正在运行的程序 。是系统进行资源分配和调用的独立空间,每一个进程都有自己的内存空间和系统资源2. 线程进程中的单个顺序控制流,是一条执行路径单线程程序多线程程序3. 多线程实现方式public class MyThreadDemo { public static void main(String[] args) { MyThread myThread1 = new MyThread();原创 2021-08-01 08:34:00 · 86 阅读 · 0 评论