自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 全网最全JAVA基础知识汇总——(常用运算符)

只可以操作变量所有数字都支持仅能操作数字类型变量(char底层也是数字)++a/–a(运算符在前)先计算,再取值使用a++/a–(运算符在后)先取值使用,再做自增或自减运算

2024-03-06 20:11:14 439 1

原创 全网最全JAVA基础知识汇总——(一维及多维数组)

- 数组是一个可以存储多个相似数据的容器- 存入某个数组中的多个变量的数据类型必须一致- 数组类型为**引用类型**- 数组的长度是固定的,定义时必须给定长度- 数组的索引是从0开始计数的

2024-03-04 20:55:30 413 1

原创 全网最全JAVA基础知识汇总——(方法与函数)

如果成员变量占用内存空间过大,及时在使用完毕后断掉强链接,等待垃圾回收机制进行回收。先寻找局部变量,若找到直接使用, 若找不到,继续寻找成员变量。从某个对象被创建(new)——> Java程序结束/被垃圾回收机制销毁。作用范围: 可以在类中的非static 位置使用,直接被普通方法调用。从该方法被调用时,创建 ——> 该方法实行完毕,销毁。使用环境:若变量仅限于某个方法内部使用。适用于:所有方法都需要使用这个变量。适用于:所有方法都需要使用这个变量。适用于:仅某个方法会使用到的变量。

2024-02-29 19:37:32 476

原创 全网最全JAVA基础知识汇总——(常量&变量)

变量就是一个装东西的盒子通俗:变量是用于存放数据的容器。我们通过变量名获取数据,甚至数据可以修改数据类型 变量名=变量值;计算机内存中,数据一旦存储,不可改变的区域(只读)final 数据类型 常量名=常量值;

2024-02-27 16:31:53 388

原创 全网最全JAVA基础知识汇总——(数据类型)

(数据类型转换)自动转—>范围大的数据类型变量 = 范围小的数据类型值强制转—>范围小的数据类型变量 = (范围小的数据类型)范围大的数据类型值long->float时,当数据值过大(如:超过1千万时),会造成中部分数据丢失(建议直接long—>double)

2024-02-22 20:49:29 426 1

原创 使用 IntelliJ IDEA 和 Maven 构建 Java 项目

在 Java 开发中,使用 Maven 是一种广泛采用的构建工具,而 IntelliJ IDEA 则是一款功能强大的集成开发环境(IDE)。结合 Maven 和 IntelliJ IDEA,可以更加高效地管理和构建 Java 项目。本文将介绍如何在 IntelliJ IDEA 中使用 Maven 构建 Java 项目。

2024-03-26 16:26:59 1610

原创 使用Java JDBC连接数据库

在Java应用程序中,与数据库交互是一个常见的任务。Java数据库连接(JDBC)是一种用于在Java应用程序和数据库之间建立连接并执行SQL查询的标准API。通过JDBC,您可以轻松地执行各种数据库操作,如插入、更新、删除和查询数据。本文将介绍如何在Java应用程序中使用JDBC来连接数据库。

2024-03-18 21:20:06 845

原创 Java面向对象:类与对象

在Java中,定义一个类使用class// 属性// 构造方法// 构造方法初始化// 方法// 方法体在本文中,我们深入讨论了Java中类与对象的概念,并通过练习加深了对这些概念的理解。类与对象是Java编程中的重要组成部分,掌握它们将有助于更好地设计和编写面向对象的程序。希望这篇文章能够对您有所帮助!

2024-03-13 20:57:56 506

原创 Java网络编程入门与实践:构建简单的Socket通信应用

通过这个简单的Socket通信实例,您已经初步了解了Java网络编程的基础知识。在未来的学习中,您可以深入研究更复杂的网络编程概念和技术,构建更强大的网络应用程序。祝您在网络编程的学习过程中取得成功!

2024-03-12 20:47:22 599

原创 JavaSE 中的18 把锁

一个共享数据加了悲观锁,那线程每次想操作这个数据前都会假设其他线程也可能会操作这个数据,所以每次操作前都会上锁,这样其他线程想操作这个数据拿不到锁只能阻塞了。在Java 语言中synchronized 和ReentrantLock 等就是典型的悲观锁,还有一些使用了synchronized关键字的容器类如Hashtable 等也是悲观锁的应用。乐观锁操作数据时不会上锁,在更新的时候会判断一下在此期间是否有其他线程去更新这个数据。乐观锁可以使用版本号机制和CAS 算法实现。

2024-03-11 21:30:25 912 1

原创 Java线程锁之Lock的使用

有且只有一个线程获取到锁,其余线程全部挂起,直到该拥有锁的线程释放锁,被挂起的线程被唤醒重新开始竞争锁ReentrantLock的内部类Sync 继承了AQS,分为公平锁FairSync和非公平锁NonfairSync。如果一个线程lock.lock()已经获取了锁,也可以多次调用这个方法(重入锁名称的来源),都可以获取到锁,但是获取多少次锁必须通过lock.unlock。阻塞线程时会自动释放锁,不管调用了多少次lock.lock(),这时阻塞在lock.lock()方法上线程则可以获取锁。

2024-03-11 21:04:14 970 1

原创 JAVA泛型

Java的泛型是一种提供类型安全和代码复用的机制,可以在类、接口和方法中使用类型参数,在编译期进行类型检查,并提供了通配符来灵活处理不同类型的参数。但是泛型的类型参数在运行时是不可知的,需要注意泛型的限制和特点。

2024-03-07 21:31:32 899 1

原创 常见的List接口的实现类——源码理解

如果需要删除的元素o则从头指针开始遍历整个链表,如果Node节点对象中的数据为o【equals】则执行删除操作。删除第一个值为o的元素节点。

2024-03-06 19:35:59 887 1

原创 Java进阶知识——集合

/获取集合中的元素个数int size();//判断集合中的元素个数是否为0,不能使用这个方法判断null//判断集合中是否包含指定元素o,有true 没有false。不能判断集合中是否包含null 元素//Iterable 接口中定义的方法,获取迭代器对象用于遍历集合中的所有元素//将集合转换为Object 类型的数组//使用泛型将集合转换为特定类型的数组//向集合中添加元素e//从集合中删除指定的元素o,如果删除成功true 否则false操作一组元素的方法。

2024-03-04 20:20:41 940 1

原创 Java线程锁之synchronize的使用

在Java中synchronized可保证在同一个时刻,只有一个线程可以执行特定对象某个同步方法或者某个代码块(主要是对方法或者代码块中存在共享数据的操作),同时还应该注意到synchronized另外一个重要的作用,synchronized可保证一个线程的变化(主要是共享数据的变化)被其他线程所看到(保证可见性,完全可以替代volatile功能)。

2024-03-01 20:34:49 807 1

原创 经典多线程问题——生产者&消费者

生产/消费者问题是个非常典型的多线程问题,涉及到的对象包括生产者、消费者、仓库和产品。他们之间的关系如下:生产者仅仅在仓储未满时候生产,仓满则停止生产。消费者仅仅在仓储有产品时候才能消费,仓空则等待。当消费者发现仓库没产品可消费时候会通知生产者生产。生产者在生产出可消费产品时候,应该通知等待的消费者去消费。生产者和消费者在同一时间段内共用同一个存储空间,生产者往存储空间中添加产品,消费者从存储空间中取走产品,当存储空间为空时,消费者阻塞,当存储空间满时,生产者阻塞。定义生产数据的生产者线程。

2024-03-01 20:10:32 333 1

原创 线程的生命周期(面试前必看!!)

线程从创建并启动到消亡共经历了5种状态:新建、就绪、运行、阻塞和死亡新创建了一个线程对象。线程对象创建后,其它线程调用了该对象的start()方法。只能针对处于新建状态的线程对象调用start方法,否则IllegalThreadStateException该状态的线程位于可执行线程池中,变得可执行,等待获取CPU的使用权。就绪状态的线程获取了CPU,执行程序代码run()。注意在一个多处理器的机器上会有多个线程并行执行。

2024-02-29 19:56:46 896

原创 全网最全Java线程池讲解!!!

创建线程要花费昂贵的资源和时间,如果任务来了才创建线程那么响应时间会变长,而且一个进程能创建的线程数有限。为了避免这些问题,在程序启动的时候就创建若干线程来响应处理,它们被称为线程池,里面的线程叫工作线程。从JDK1.5开始,Java API提供了Executor框架可以创建不同的线程池。比如单线程池,每次处理一个任务;数目固定的线程池或者是缓存线程池(一个适合很多生存期短的任务的程序的可扩展线程池)

2024-02-28 21:05:33 1629

原创 创建线程的常用三种方法(面试必背!!!)

Thread类可以理解为是java用于管理线程的一个类,里面封装了操作系统提供的线程管理这一方面的应用编程接口API,Java代码创建的每个线程都可以理解为Thread实例化的对象,Thread对象用于描述线程的信息。Java标准库中Thread类可以视为是对操作系统对线程管理方面提供的API进行了进一步的抽象和封装。定义类继承Thread类,并重写Thread类的run()方法,该run()方法的方法体就代表了线程需要完成的任务。因此把run()方法称为线程执行体。

2024-02-28 20:39:13 425

原创 JAVA进阶知识——I/O流

过滤父类FilterReader、FilterInputStream、FilterWriter、FilterOutputStream,实际上就是装饰模式中的抽象装饰类案例:循环13加密@Overridereturn kk;try (//SecurityReader()为自定义过滤流) {int kk=0;=-1){System.out.println("执行完毕!");处理类型字符流字节流缓存BufferedReader和BufferedWriter。

2024-02-27 10:28:41 1386

原创 JAVA多线程基本概念(超简单~)

程序是为完成特定任务、用某种语言编写的一组指令的集合。是具有一定独立功能程序的运行过程,是系统进行和的一个独立单位,重点在,也就是说。是进程中的一个独立执行线索,是进程中的一个实体,是和的基本单位,是比进程更小的能独立运行的基本单位,线程自己基本上不拥有系统资源。在运行时,只是暂用一些计数器、寄存器和栈(栈帧)

2024-02-26 19:17:40 998 1

原创 Java异常处理

除了Java提供的异常类型外,开发者还可以定义自己的异常类型。自定义异常需要继承自Exception或RuntimeException类,并根据具体的业务需求来定义异常的属性和方法。

2024-02-26 14:44:12 465

原创 在Java中实现如何克隆

因为java语言程序是运行在JVM上, 如果要访问比较底层的与操作系统相关的方法就没有办法了,只能通过比较靠近系统的语言来实现,比 如C/C++。在浅克隆种当对象被复制时他本身和其中包含的值类型的成员属性,而引用类型的成员对象并没有复制。在深克隆种无论原型对象的成员变量是值类型还是引用类型,都将复制一份给克隆对象。这里的区别于浅克隆,对于原型对象的所有引用类型的属性对象也复制一份给克隆对象,不是地址复制。类定义需要实现序列化接口,当然为保证引用类型属性也能序列化,所以引用类型属性也必须实现序列化接口。

2024-02-23 14:13:59 387 1

原创 解释 Git 的基本概念和使用方式

通过使用这些基本命令和概念,开发人员可以有效地跟踪和管理项目中的文件和代码变化,方便团队协作和版本控制。

2024-02-22 14:56:45 401

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除