2 Jaymeng8848

我要认证

攀爬每一个巨人,站在他们肩膀上看一看

等级
TA的排名 6w+

【Linux】目录文件权限的查看和修改

命令:chmod 777 scan_record.js格式:chmod 权限数字 文件名r 读权限read 4w 写权限write 2x 操作权限execute 1权限数字对应权限组说明:总共分为4部分【文件或文件夹】【owner权限】【group权限】【others权限】【文件是-,文件夹是d】【r/w/x相加】【r/w/x相加】【r/w/x相加】Linux档案的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute

2020-10-25 08:59:10

内存溢出和内存泄漏

内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。memory leak会最终会导致out ofmemory。Java 堆内存的OutOfMemoryError异常是实际应用中最常见的内存溢出异常

2020-09-28 20:13:28

Java中float、double、long类型变量赋值添加f、d、L尾缀问题

转自:https://blog.csdn.net/FX677588/article/details/52663805添加尾缀说明  我们知道Java在变量赋值的时候,其中float、double、long数据类型变量,需要在赋值直接量后面分别添加f或F、d或D、l或L尾缀来说明。  其中,long类型最好以大写L来添加尾缀,因为小写l容易和数字1混淆。  例如:long lNum = 1234L;float fNum = 1.23f;double dNum = 1.23d;这是Jav

2020-09-23 12:44:11

JDBC驱动加载

概述一般情况下,在应用程序中进行数据库连接,调用JDBC接口,首先要将特定厂商的JDBC驱动实现加载到系统内存中,然后供系统使用。基本结构图如下:驱动加载入内存的过程这里所谓的驱动,其实就是实现了java.sql.Driver接口的类。如oracle的驱动类是 oracle.jdbc.driver.OracleDriver.class(此类可以在oracle提供的JDBC jar包中找到),此类实现了java.sql.Driver接口。由于驱动本质上还是一个class,将驱动加载到内存和加载普通的

2020-09-23 12:37:37

java内存区域划分(堆,栈,方法区)

java虚拟机在执行java程序的过程中会把它所管理的内存划分成若干个不同的数据区域。这些区域各有用途,以及创建和销毁的时间。有的区域随着虚拟机的进程的启动而存在,有的则依赖用户线程的启动和结束而建立和销毁。运行时数据区域线程共享区:方法区、堆线程隔离区:虚拟机栈、本地方法栈、程序计数器java内存区域详解程序计数器:是一块较小的内存空间,可以看作当前线程所执行的字节码的行号指示器。java多线程就是通过对线程的轮流切换并分配处理器的执行时间的方式来实现的,在任意时刻,一个处理器都只会执行某一

2020-09-23 10:45:04

java中局部变量、实例变量和静态变量在方法区、栈内存、堆内存中的分配

Java中的变量根据不同的标准可以分为两类,以其引用的数据类型的不同来划分可分为“原始数据类型变量和引用数据类型变量”,以其作用范围的不同来区分可分为“局部变量,实例变量和静态变量”。根据“Java中的变量与数据类型”中的介绍,“变量是在内存中分配的保留区域的名称。换句话说,它是一个内存位置的名称”,也就是说我们通过这个变量名字就可以找到一个指向这个变量所引用的数据的内存指针,根据变量的类型我们可以知道这个指针之后的几个字节里存储了这个变量所引用的数据。所以,了解变量在方法区、栈内存、堆内存中的分配要了

2020-09-23 10:17:12

MySql优化

转自:https://blog.csdn.net/tiantang_zy/article/details/1051562321、查询缓存MySQL Query Cache是用来缓存我们所执行的SELECT语句以及该语句的结果集,MySql在实现Query Cache的具体技术细节上类似典型的KV存储,就是将SELECT语句和该查询语句的结果集做了一个HASH映射并保存在一定的内存区域中。当客户端发起SQL查询时,Query Cache的查找逻辑是,先对SQL进行相应的权限验证,接着就通过Query Ca

2020-09-22 09:21:42

如何正确使用redis分布式锁

什么是分布式锁?为什么需要分布式锁?在java中,在单进程多线程的情况下,为了防止多个线程共同竞争同一个资源,因此需要锁,java中有显示锁和隐式锁来保证,而在多进程的情况下,普通的锁就无法满足要求了,因此我们需要分布式锁,常用的分布式锁解决方案有三种,分别是基于数据库/redis/zookeeper,本文我们主要讨论redis分布式锁.redis分布式锁实现笔者在面试过程中,问redis分布式锁知识点时的第一个问题就是如何实现一个redis分布式锁,许多候选人直接说,啊,这很简单啊,使用setNx(

2020-09-21 15:33:47

Redis中的内存淘汰机制

Redis过期键的删除策略定时删除,这个就是大家最熟悉的给Key设置过期时间,创建定时器,让定时器在过期时间到来时删除键和值惰性删除,指当客户端取键时才检查键是否过期,不主动删除过期的键 定期删除,每隔一段时间检查数据库,删除过期的键 定时删除+惰性删除目前使用的策略redis采用的是定期删除+惰性删除混合策略,至于为什么不单纯使用定时删除,那是因为用一个定时器监视key,过期自动删除,虽然实现了内存及时释放,但是这样的操作十分消耗CPU资源,高并发的情况下,CPU主要用来处理请求,而不是删除过

2020-09-21 11:36:34

Redis(Java面试题)

一、什么是Redis?Redis是一种高性能的key-value非关系型数据库,他是基于C语言写的,底层采用NIO多路复用机制,使用一个线程去维护多个不同的socket连接,他只有Linux版本的,没有Windows版本的,Windows版本的Redis是网上大神改写的,因为在Windows中NIO多路复用机制底层使用的是selector选择器,通过for循环去遍历连接,容易造成空轮训,效率比较低,而Linux中是采用epoll事件驱动回调机制,主动去调用活跃的socket连接,避免了空轮训,效率比较高。

2020-09-21 11:32:44

Redis 操作命令

一、字符串1 SET key value 设置指定 key 的值2 GET key 获取指定 key 的值。3 GETRANGE key start end 返回 key 中字符串值的子字符4 GETSET key value 将给定 key 的值设为 value ,并返回 key 的旧值(old value)。5 GETBIT key offset 对 key 所储存的字符串值,获取指定偏移量上的位(bit)。6 MGET key1 [key2…] 获取所有(一个或多个)给定 key 的值。

2020-09-21 11:21:54

面试题(一)

相关概念面向对象的三个特征封装,继承,多态.这个应该是人人皆知.有时候也会加上抽象.多态的好处允许不同类对象对同一消息做出响应,即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用).主要有以下优点:可替换性:多态对已存在代码具有可替换性.可扩充性:增加新的子类不影响已经存在的类结构.接口性:多态是超类通过方法签名,向子类提供一个公共接口,由子类来完善或者重写它来实现的.灵活性.简化性.代码中如何实现多态实现多态主要有以下三种方式:接口实现继承

2020-09-20 09:47:44

new String创建了几个对象

String str = new String(“abc”) 到底创建了几个对象?首先String str是定义了一个字符串变量,并未产生对象,=不产生对象,那么只有后面的new String(“abc”)了。把它拆分成"abc"和new String(),首先在字符串常量池去寻找有没有"abc"这个字符串,没有就创建一个“abc”字符串对象在栈中,然后new String把这个字符串对象拷贝一份到堆中,返回这个对象的引用。所以一共产生两个对象试问str变量存储在堆中还是栈中?关键点是区分str是成员

2020-09-19 23:12:35

IO流(Java面试题)

1、什么是比特(Bit),什么是字节(Byte),什么是字符(Char),它们长度是多少,各有什么区别Bit就是比特位,是计算机最小的二进制单位,取值0或1,Byte占有8个比特位, 取值-128~127Char占有两个字节,16个比特位,取值0~65535Bit是数据存储最小单位,计算机只认识0和1Byte是计算机存储容量的基本单位Char是java的一种基本数据类型2、什么是流,按照传输的单位,分成哪两种流JAVA程序中对数据的输入输出称为流分为字节流和字符流字节流: inputS

2020-09-19 22:55:56

可重入函数与不可重入函数

在 实时系统的设计中,经常会出现多个任务调用同一个函数的情况。如果这个函数不幸被设计成为不可重入的函数的话,那么不同任务调用这个函数时可能修改其他任 务调用这个函数的数据,从而导致不可预料的后果。那么什么是可重入函数呢?所谓可重入是指一个可以被多个任务调用的过程,任务在调用时不必担心数据是否会 出错。不可重入函数在实时系统设计中被视为不安全函数。满足下列条件的函数多数是不可重入的:(1)函数体内使用了静态的数据结构;(2)函数体内调用了malloc()或者free()函数;(3)函数体内调用了标准I

2020-09-18 11:21:15

存储管理知识点与例题

1、存储器:速度:寄存器---->主存---->辅存容量:辅存---->主存---->寄存器2、高速缓存和磁盘缓存:高速缓存:解决cpu与主存之间速度不平衡磁盘缓存:解决主存与磁盘之间速度不平衡,他是内存中开辟的一个区间,并不是实际存在的一个存储器3、程序的运行过程:编译、连接、装入编译:将命名空间编程逻辑地址链接:链接是指将这组目标模块以及所需的库函数装配成一个完整的装入模块1、静态链接2、装入时动态链接3、运行时动态链接装入:将模块装入内存1、绝对装入

2020-09-18 09:08:01

存储管理

存储管理功能存储分配和去配分配去配对象内存、外存(相同方法)分配去配时刻进程创建、撤销、交换、长度变化(栈溢出, execl)当处于外存的部分需要调入内存时,操作系统应为其分配内存空间,同时收回外存空间当处于内存的部分需要调出内存时,操作系统应为其分配外存空间,同时收回内存空间分配表:记录已经分配的区域空闲表:记录尚未分配的区域存储共享:两个或多个进程共用内存中的相同区域目的:节省内存、相互通讯内容:代码、数据存储保护防止地址越界:每个进程都具有相对独立的进程空间。如果进程在运

2020-09-17 13:28:40

线程同步的四种常用方式

一、 临界区(CCriticalSection)当多个线程访问一个独占性共享资源时,可以使用临界区对象。拥有临界区的线程可以访问被保护起来的资源或代码段,其他线程若想访问,则被挂起,直到拥有临界区的线程放弃临界区为止。具体应用方式:1、 定义临界区对象CcriticalSection g_CriticalSection;2、 在访问共享资源(代码或变量)之前,先获得临界区对象,g_CriticalSection.Lock();3、 访问共享资源后,则放弃临界区对象,g_CriticalSectio

2020-09-17 11:03:21

进程间通信的五种方式

进程间通信的意思就是在不同进程之间传递信息。它是一组编程接口,让程序员协调不同进程,使能够相互传递消息。IPC目的1)数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几兆字节之间。2)共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。3)通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。4)资源共享:多个进程之间共享同样的资源。为了作到这一点,需要内核提供锁和同步机制。5)进程控

2020-09-17 10:56:11

Linux下的PCB结构体

进程的主要信息:1、pid_t pid标识符:与进程相关的唯一标识符,区别正在执行的进程和其他进程2、状态:描述进程的状态,因为进程有阻塞、挂起、运行等好几个状态,所以都有个表示符来记录进程的执行状态。3、优先级:如果有好几个进程正在执行,就涉及到进程的执行的先后顺序,这和进程的优先级这个标识符有关。4、程序计数器:程序中即将被执行指令的下一条地址。5、内存指针:程序代码和进程相关数据的指针。6、上下文数据:进程执行时处理器的寄存器中的数据。7、I/O状态信息:包括显示的I/O请求,分配给进程

2020-09-17 10:33:56

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到达人
    签到达人
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 阅读者勋章Lv3
    阅读者勋章Lv3
    授予在CSDN APP累计阅读博文达到30天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。