Java基础复习笔记系列之 多线程编程参考地址: 今天的故事,让我们从上面这个图开始讲起。线程状态转换图。图很简单不要想得太复杂。了解了线程的基本的生命周期,那么我们要使用好它,就离不开了经常使用的几个方法:先来一段代码:public class TestSleep { public static void main(String[] args){ My
     在我们的项目中,尤其是我们的web项目,无论你是用何种语言编写,java、C#.....JavaScript这种前台页面的脚本语言都占居着举足轻重的地位,下面带大家深入走进JavaScript,探索其中的奥秘,一起学习,共同进步!!    1、 要深入理解JavaScript,你得首先放下对象和类的概念,回到
转载 2024-01-12 14:41:26
102阅读
多线程相对于其他 Java 知识点来讲,有一定的学习门槛,并且了解起来比较费劲。在平时工作中如若使用不当会出现数据错乱、执行效率低(还不如单线程去运行)或者死锁程序挂掉等等问题,所以掌握了解多线程至关重要。本文从基础概念开始到最后的并发模型由浅入深,讲解下线程方面的知识。概念梳理本节我将带大家了解多线程中几大基础概念。并发与并行并行,表示两个线程同时做事情。并发,表示一会做这个事情,一会做另一个事
深入理解JAVA虚拟机JVM Java 虚拟机(Java virtual machine,JVM)是运行 Java 程序必不可少的机制。java之所以能实现一次编写到处执行,也就是因为jVM。原理:编译后的 Java 程序指令并不直接在硬件系统的 CPU 上执行,而是由 JVM 执行。JVM抹平了与具体平台相关的信息,使Java语言编译程序只需要生成在JVM上运行的目标字节码(.class),就
转载 2023-08-08 13:58:11
93阅读
1. 简介 SELinux带给Linux的主要价值是:提供了一个灵活的,可配置的MAC机制。 Security-Enhanced Linux (SELinux)
转载 2023-11-21 10:12:19
191阅读
【冬察冬见】FFmpeg系列学习笔记综述FFmpeg是领先的多媒体框架, 能够解码、 编码、 转码、 混流、 解密、 流媒体、 过滤和播放人类和机器创造的几乎任何东西。FFmpeg的名称来自MPEG视频编码标准,前面的“FF”代表“Fast Forward”,FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。可以轻易地实现多种视频格式之间的相互转换。FFmpeg
转载 2024-04-24 14:50:01
58阅读
一篇文章学懂Java NIO1 NIO概述1.1 Java程序读取数据的模型1.2 NIO与IO的区别2 Buffer2.1 Buffer的属性2.2 Buffer 的常用 API2.3 缓冲区的批量传输2.4 缓冲区的创建方式2.5 缓冲区的复制与分割2.6 直接字节缓冲区3 Channel3.1 Channel 概述3.2 Scatter/Gather3.3 FileChannel3.3.1
目录1. 执行上下文(1)执行上下文概念(2)创建执行上下文2. this 指向(1)默认绑定(全局环境)(2)隐式绑定(上下
原创 2022-07-12 17:31:25
318阅读
MySQL入门姥姥家的程序员带你走进数据库的入门什么是数据库(数据库的概念,DB:DataBase)MySQL数据库的安装数据库定义语言(DDL)一、DDL之操作数据库二、DDL之操作表(下面操作中的[],代表可选配置)三、DDL之操作字段数据操作语言(DML):对数据进行操作。数据查询语言(DQL)一、简单查询二、条件查询 姥姥家的程序员带你走进数据库的入门此篇博客献给想入门计算机数据库的小白
转载 2023-12-03 06:54:58
104阅读
一、svg是什么?        SVG 意为可缩放矢量图(Scalable Vector Graphics)。        SVG 是使用XML来描述二维图型和绘图程序的语言        SVG 图像是放大或改变尺寸的情况下其图形质量不会有所损失。   
转载 2024-05-08 23:32:53
177阅读
HelloWorld是每个Java程序员都知道的程序。它很简单,但是简单的开始可以引导你去深入了解更复杂的东西。这篇文章将探究从这个HelloWorld这个简单程序中可以学到的东西。如果你对HelloWorld有独到的理解,欢迎留下你的评论。HelloWorld.javapublic class HelloWorld {     /**     *      * @param args     *
原创 2021-01-17 13:17:45
237阅读
1.对象可以携带更多信息 2.对象的方法不占用堆的存储空间 3.对象的状态指的是成员变量的值 4.对象的方法操作的也都是成员变量信息,最后返回的结果也都赋值给成员变量。 5.所以,new对象时,就会在堆中创建内存空间,创建的空间包括各个成员变量类型所占用的内存空间 6.关于成员变量初始值问题,设不设
要想理解反射的原理,首先要了解什么是类型信息。Java让我们在运行时识别对象和类的信息,主要有2种方式:一种是传统的RTTI,它假定我们在编译时已经知道了所有的类型信息;另一种是反射机制,它允许我们在运行时发现和使用类的信息。 1、Class对象 理解RTTI在Java中的工作原理,首先需要知道类型
转载 2018-08-10 13:24:00
112阅读
2评论
Java中通常实现锁有两种方式,一种是synchronized关键字,另一种是Lock。二者其实并没有什么必然联系,但是各有各的特点,在使用中可以进行取舍的使用。首先我们先对比下两者。
转载 2021-08-05 09:48:50
209阅读
  在Java中通常实现锁有两种方式,一种是synchronized关键字,另一种是Lock。二者其实并没有什么必然联系,但是各有各的特点,在使用中可以进行取舍的使用。首先我们先对比下两者。 实现: 首先最大的不同:synchronized是基于JVM层面实现的,而Lock是基于JDK层面实现的。曾经反复的找过synchronized的实现,可惜最终无果。但Lock却是基于JDK实现的,我们可
转载 2021-07-09 16:21:18
156阅读
深入理解Java对象(理清关系) 1、对象的创建过程: 所有创建过程如下所示: + new 类名 + 根据new的参数在常量池中定位一个类的符号引用。 + 如果没有找到这个符号引用,说明类还没有被加载,则进行类的加载、解析和初始化。 + 虚拟机为对象分配内存(位于堆中) + 将分配的内存初始化为零值
原创 2021-09-01 09:36:36
303阅读
深入理解Java Proxy
原创 2021-06-01 15:03:22
228阅读
在讲解String之前,我们先了解一下Java的内存结构。 一、Java内存模型 按照官方的说法:Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。 JVM主要管理两种类型内存:堆和非堆,堆内存(Heap Memory)是在 Java 虚拟机启动时创建,非堆内存(N
转载 2021-07-19 13:59:16
188阅读
引言:为什么我们需要线程? 在多核处理器成为主流的今天,我们手中的手机、电脑甚至智能家居设备都拥有多个计算核心。这意味着,如果我们的程序只能在一个核心上运行,就相当于让其他核心"闲置",无法充分发挥硬件性能。想象一下,一个餐厅只有一个服务员,即使厨房有个厨师,顾客仍然需要排队等待服务——这就是 ...
转载 8天前
356阅读
目录 简介JDK1.7JDK1.8重要属性Node类ForwardingNode类原子操作和Unsafe类重要方法初始化表操作(initTable)插入键值对(put和putVal)helpTransfer扩容操作(transfer)addCount()总结Reference 简介由于HashMap是非线程安全的,而且HashTable和Collections.synchronizedMap
转载 2024-10-30 06:39:30
76阅读
  • 1
  • 2
  • 3
  • 4
  • 5