- 通俗易懂:什么是Java虚拟机(JVM)?它的主要作用是什么?
大龄下岗程序员
mysqljavamysqlspring
Java虚拟机(JavaVirtualMachine,JVM)是一种软件实现的抽象计算机,它负责执行Java字节码(Bytecode)。Java程序并不是直接在物理计算机上运行,而是先由Java编译器将源代码编译成与平台无关的字节码,然后由JVM负责读取字节码并在实际硬件架构上运行。JVM的主要作用包括以下几个方面:1.跨平台性-JVM是Java语言“一次编写,到处运行”(WriteOnce,Ru
- 实验吧CTF密码学Writeup-古典密码Writeup
syxvip
古典密码分值:10来源:北邮天枢战队难度:易参与人数:6803人GetFlag:2507人答题人数:2791人解题通过率:90%密文内容如下{796785123677084697688798589686967847871657279728278707369787712573798465}请对其进行解密提示:1.加解密方法就在谜面中2.利用key值的固定结构格式:CTF{}密文全是数字,ascll码
- Java面试知识库
迷茫的21世纪的新轻年
面试题java面试
Java面试知识库Java基础Java是个面向对象的语言,如何理解面向对象呢?面向对象的三大基本特征:继承、封装、多态继承:子类继承父类,父类的属性和方法继承到子类。封装:将现实世界的事物抽象为一个Java类,该类封装了事物的属性、方法。多态:子类继承父类,可以通过重写(overwrite)父类方法,实现一个方法具有不同的实现。面向对象的五大基本原则:单一职责原则、开放封闭原则、里氏替换原则、依赖
- 英语精读笔记.新概念第三册(5)The facts确切数字
英文研习社
文章原文:Editorsofnewspapersandmagazinesoftengotoextremestoprovidetheirreaderswithunimportantfactsandstatistics.Lastyearajournalisthadbeeninstructedbyawell-knownmagazinetowriteanarticleonthepresident'spal
- 编写Linux内核模块实现文件拷贝
双珵
linux
经评论区反馈:如果Linux内核版本为4.XX,那么需要在vfs_read和vfs_write的地方更改为kernel_read和kernel_write操作系统课程实验1添加内核模块每个人题目都是自己选择的,题目1已经有一位校友给出了标准答案,我捣鼓的是文件拷贝这题,弄了很久也记录一下,给后面的学弟学妹参考题目4:设计一个带参数的模块,其参数为源文件和目标文件的文件名(可能带路径),模块功能是实
- VC读写INI文件
hhaoma
c++学习iniwinapipathfilec
在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,程序初始化时再读入.具体应用如下:一.将信息写入.INI文件中.1.所用的WINAPI函数原型为:BOOLWritePrivateProfileString(LPCTSTRlpAppName,LPCTSTRlpKeyName,LPCTSTRlpString,LPCTSTRlpFileN
- 显示/隐藏 隐藏文件
BenjaminCool
https://www.jianshu.com/p/ac682cf53cea显示隐藏文件打开终端,输入命令:defaultswritecom.apple.finderAppleShowAllFiles-booleantrue;killallFinder该命令将finder的隐藏文件显示出来,并重新启动Finder。隐藏隐藏文件打开终端,输入命令:defaultswritecom.apple.fin
- FFmpeg将视频包AVPacket通过视频流方式写入本地文件
林鸿群
ffmpeg音视频
1.写视频头voidwriteVideoHeader(constchar*videoFileName){intr=avformat_alloc_output_context2(&pFormatCtx,nullptr,nullptr,videoFileName);if(rstreams[0]->codecpar->width=1280;pFormatCtx->streams[0]->codecpar
- JVM(Java虚拟机)概述
龙大.
JVMJavajvmjava开发语言
1.JVM的定义和作用JVM(JavaVirtualMachine)是一个能够运行Java字节码的虚拟计算机。它是Java平台的核心组成部分,负责执行编译后的Java程序,提供跨平台运行的能力。JVM使得Java程序可以在任何安装了JVM的操作系统上运行,无需对代码进行修改,实现了"一次编写,到处运行"(WriteOnce,RunAnywhere)的理念。2.JVM架构组件JVM主要由以下几个核心
- ACM中Java输入输出
_Matthew
#Java的零星知识java开发语言
ACM中Java输入输出最初写算法时,是用Scanner的。因为当时接触的测试数据基本都是以算法的复杂度为主,但是后面遇到大量的输入数据时。发现Scanner远远不能满足条件。下面列出几种常用的输入输出方式。(输出统一用printwriter,系统的system.out太慢,结尾要释放缓存才能输出,不然数据放在缓存中输不出来)1.ScannerScanner这个类最慢,但是最好用,因为这个类没有缓
- HIVE表中导入导出数据的几种方式
qq_37805784
hive大数据数据仓库
一:往HIVE表中导入导出数据语法结构:[]带括号的表示可选择字段LOADDATA[LOCAL]INPATH‘filepath’[OVERWRITE]INTOTABLEtablename[PARTITION(partcol1=val1,partcol2=val2…)]各种参数说明:1-hive只对导入该表中的数据按照自己的方式处理,对于错误的数据不管,超出直接丢弃。2-Load操作只是单纯的复制/
- C#--StreamWriter和StreamReader对象及常用函数
海绵波波107
C#c#数据库服务器
目录StreamReaderReadLine()Split()StreamWriterWriteLine()Flush()Close()StreamReaderStreamReader是C#中用于从流(如文件、内存流等)中读取文本数据的类。它提供了多种方法来读取不同类型的数据。以下是一些StreamReader类的常用方法:StreamReader(Stream):构造函数,创建一个新的Strea
- C#控制台应用程序
林祖师
C#c#开发语言
C#控制台应用程序时基于文本的,在命令行中运行。它们通常执行需要编写的脚本的简单任务,例如编译文件或加密配置文件的一部分。一、向用户显示输出控制台应用程序执行的两个最常见的任务是写入和读取数据,前者使用WriteLine、Write方法来输出数据。使用编号的位置参数进行格式化生成格式化字符串的一种方式是使用编号的位置参数。WriteLine、Writede的方法就支持这一特性,对于不支持这一特性的
- Webserve(4): HTTP解析
傲慢与偏见L
httpchrome网络协议
//写HTTP响应boolhttp_conn::write(){inttemp=0;if(bytes_to_send==0){//将要发送的字节为0,这一次响应结束。modfd(m_epollfd,m_sockfd,EPOLLIN);init();returntrue;}while(1){//分散写temp=writev(m_sockfd,m_iv,m_iv_count);if(temp=m_iv
- C#游戏开发
举目沧桑
c#
1.基础1.基本结构usingSystem;namespaceHelloWorldApplication{classHelloWorld{staticvoidMain(string[]args){/*我的第一个C#程序*/Console.WriteLine("HelloWorld");Console.ReadKey();}}}1.C#程序主要包括以下部分1.命名空间声明(Namespacedecl
- MySQL表锁与行锁
信缘 ꈍ 随缘
mysql数据库java
//MyISAM查看表的情况:showopentables;加锁:locktable表名read(write),表二read(write);释放锁:unlocktables;分析表锁定:showstatuslike'table%';//innoDB事务四个特性:ACID(Atomicity:原子性、Consistent:一致性、Isolation:隔离性、Durable:持久性)并发事务处理带来的
- Monitoring Changes in Your Database Using DDL Triggers
lchstudy
databasetriggersparsingtablecommandcmd
IntroductionAdditions,deletions,orchangestoobjectsinadatabasecancauseagreatdealofhardshipandrequireadbaordevelopertorewriteexistingcodethatmayreferenceaffectedentities.Tomakemattersworsetrackingdownth
- python写入文件自动换行
~heart将心比心
pythonpython前端html
我们在使用python写入文件时,会遇到用空格和换行的地方。在python中我们会使用open()函数来打开文件,open()函数接受两个参数,第一个参数时文件的路径,第二个参数时打开文件的模式,例如withopen("1.txt",mode="a",encoding='utf-8')asf:我们在打开文件后,我们可以使用write()函数来将内容写入文件中,例如f.write(na)write(
- golang 实现http请求调用
杨杨小朋友
golanghttpxcode
packagemainimport("fmt""log""net/http")funcHelloServer(whttp.ResponseWriter,req*http.Request){fmt.Println("InsideHelloServerhandler")//fmt.Fprint()和fmt.Fprintf()都是可以用来写入http.ResponseWriter的函数(他们实现了io.
- Java中的‘锁’- synchronized、ReentrantLock、ReentrantReadWriteLock
kevin0016
1、隐式锁对称线程同步synchronized用法:1、在方法声明时使用;2、修饰代码块中使用隐式规则1、当两个并发线程访问同一个对象object中的synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行2、当一个线程访问object的一个synchronized(this)同步代码块时,其他的线程可以访问该object中的非synchronized(this)同步代码
- 使用Elasticsearch 7.9.1实现对word,pdf,txt文件的全文内容检索
localhostAND
elasticsearch搜索引擎lucene
使用Elasticsearch7.9.1实现对word,pdf,txt文件的全文内容检索POST/docwrite/_doc?pipeline=attachment{"name":"测试PDF2","type":"pdf","content":""}GET/docwrite/_search{"_source":["name","type"],"query":{"match":{"attachmen
- 前端导入导出
m0_45127388
前端
1、将后端excel二进制文件导出excel下载import{read,utils,writeFileXLSX}from"xlsx";constuseExportExcel=(excelData:string,fileName:string)=>{constwb=read(excelData);constws=wb.Sheets[wb.SheetNames[0]];//从工作表生成数据行const
- 160. Intersection of Two Linked Lists
SilentDawn
ProblemWriteaprogramtofindthenodeatwhichtheintersectionoftwosinglylinkedlistsbegins.Notes:Ifthetwolinkedlistshavenointersectionatall,returnnull.Thelinkedlistsmustretaintheiroriginalstructureafterthefu
- 【QT】关于QSerialPort的错误处理 (Error Handling)及错误类型
我不是程序猿儿
QT之路qt开发语言
QSerialPort是Qt框架中用于串口通信的类,它提供了与串行端口进行数据读写和配置的功能。这个类封装了底层操作系统对串口的处理,使得开发者可以方便地在跨平台应用中实现串口通信。回顾:写数据(WritingData)要向串口写数据,首先需要打开串口并配置相关参数(如波特率、数据位、校验位等)。写数据通常使用write()方法。例如:QSerialPortserial;serial.setPor
- 【IO】使用read和write实现文件拷贝
挽漓
linux
#include#include#include#include#include#includeintmain(intargc,constchar*argv[]){intpt=open("./1.read.c",O_RDONLY);intptw=open("./write.text",O_WRONLY|O_CREAT|O_TRUNC,0664);if(pt<0){perror("open");re
- C++ 网络编程学习二
cliu1_16
C++Linuxc++
C++网络编程学习二asio异步写操作asio异步读操作asio异步echo服务端asio异步服务器中存在的隐患asio异步写操作async_write_some是异步写的函数:传入buffer和回调函数以及参数以后,发送后会调用回调函数。voidSession::WriteToSocketErr(conststd::string&buf){//make_shared延长_send_node的生命
- rust使用curl下载文件并打印下载进度
成长的小树
rust开发语言后端
usecurl::easy::Easy;usestd::fs::File;usestd::io::Write;fnmain(){letsource_url="https://pic.3gbizhi.com/2019/0927/20190927085959737.jpeg";letcollect:Vec=source_url.split("/").collect();letfile_path=col
- MongoDB之角色与权限及创建用户与授权操作详解
小袁搬码
MongoDB数据库mongodb数据库文档数据库
MongoDB之角色与权限及创建用户与授权操作详解文章目录MongoDB之角色与权限及创建用户与授权操作详解1.角色与权限1.角色分类2.权限说明2.MongDB创建用户及删除用户1.创建用户2.查看用户信息3.修改用户密码3.db.runCommand创建用户与授权1.创建用户2.更改用户权限1.角色与权限1.角色分类角色分类角色分类中的具体角色数据库用户角色read、readWrite数据库管
- InputStreamReader和BufferedReader的区别
浪白条
.InputStream、OutputStream处理字节流的抽象类InputStream是字节输入流的所有类的超类,一般我们使用它的子类,如FileInputStream等.OutputStream是字节输出流的所有类的超类,一般我们使用它的子类,如FileOutputStream等.2.InputStreamReaderOutputStreamWriter处理字符流的抽象类InputStrea
- 《The Art of InnoDB》第二部分|第4章:深入结构-磁盘结构-撕裂的页面(doublewrite buffer)
无码之宗
写一本书《TheArtofInnoDB》交个朋友oracle数据库database
4.5撕裂的页面目录4.5撕裂的页面4.5.1双写缓冲区的作用4.5.2双写缓冲区的结构4.5.3双写缓冲区与Redolog的协同工作流程4.5.2双写缓冲区写入时机4.5.3禁用双写缓冲区4.5.4小结未完待续...上文我们学习了redolog的结构和其工作原理,它是一个记录物理逻辑的日志,描述了数据库记录的逻辑变化,用于崩溃恢复
- LeetCode[Math] - #66 Plus One
Cwind
javaLeetCode题解AlgorithmMath
原题链接:#66 Plus One
要求:
给定一个用数字数组表示的非负整数,如num1 = {1, 2, 3, 9}, num2 = {9, 9}等,给这个数加上1。
注意:
1. 数字的较高位存在数组的头上,即num1表示数字1239
2. 每一位(数组中的每个元素)的取值范围为0~9
难度:简单
分析:
题目比较简单,只须从数组
- JQuery中$.ajax()方法参数详解
AILIKES
JavaScriptjsonpjqueryAjaxjson
url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。
type: 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和 delete也可以使用,但仅部分浏览器支持。
timeout: 要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.ajaxSetup()方法的全局
- JConsole & JVisualVM远程监视Webphere服务器JVM
Kai_Ge
JVisualVMJConsoleWebphere
JConsole是JDK里自带的一个工具,可以监测Java程序运行时所有对象的申请、释放等动作,将内存管理的所有信息进行统计、分析、可视化。我们可以根据这些信息判断程序是否有内存泄漏问题。
使用JConsole工具来分析WAS的JVM问题,需要进行相关的配置。
首先我们看WAS服务器端的配置.
1、登录was控制台https://10.4.119.18
- 自定义annotation
120153216
annotation
Java annotation 自定义注释@interface的用法 一、什么是注释
说起注释,得先提一提什么是元数据(metadata)。所谓元数据就是数据的数据。也就是说,元数据是描述数据的。就象数据表中的字段一样,每个字段描述了这个字段下的数据的含义。而J2SE5.0中提供的注释就是java源代码的元数据,也就是说注释是描述java源
- CentOS 5/6.X 使用 EPEL YUM源
2002wmj
centos
CentOS 6.X 安装使用EPEL YUM源1. 查看操作系统版本[root@node1 ~]# uname -a Linux node1.test.com 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux [root@node1 ~]#
- 在SQLSERVER中查找缺失和无用的索引SQL
357029540
SQL Server
--缺失的索引
SELECT avg_total_user_cost * avg_user_impact * ( user_scans + user_seeks ) AS PossibleImprovement ,
last_user_seek ,
 
- Spring3 MVC 笔记(二) —json+rest优化
7454103
Spring3 MVC
接上次的 spring mvc 注解的一些详细信息!
其实也是一些个人的学习笔记 呵呵!
- 替换“\”的时候报错Unexpected internal error near index 1 \ ^
adminjun
java“\替换”
发现还是有些东西没有刻子脑子里,,过段时间就没什么概念了,所以贴出来...以免再忘...
在拆分字符串时遇到通过 \ 来拆分,可是用所以想通过转义 \\ 来拆分的时候会报异常
public class Main {
/*
- POJ 1035 Spell checker(哈希表)
aijuans
暴力求解--哈希表
/*
题意:输入字典,然后输入单词,判断字典中是否出现过该单词,或者是否进行删除、添加、替换操作,如果是,则输出对应的字典中的单词
要求按照输入时候的排名输出
题解:建立两个哈希表。一个存储字典和输入字典中单词的排名,一个进行最后输出的判重
*/
#include <iostream>
//#define
using namespace std;
const int HASH =
- 通过原型实现javascript Array的去重、最大值和最小值
ayaoxinchao
JavaScriptarrayprototype
用原型函数(prototype)可以定义一些很方便的自定义函数,实现各种自定义功能。本次主要是实现了Array的去重、获取最大值和最小值。
实现代码如下:
<script type="text/javascript">
Array.prototype.unique = function() {
var a = {};
var le
- UIWebView实现https双向认证请求
bewithme
UIWebViewhttpsObjective-C
什么是HTTPS双向认证我已在先前的博文 ASIHTTPRequest实现https双向认证请求
中有讲述,不理解的读者可以先复习一下。本文是用UIWebView来实现对需要客户端证书验证的服务请求,网上有些文章中有涉及到此内容,但都只言片语,没有讲完全,更没有完整的代码,让人困扰不已。但是此知
- NoSQL数据库之Redis数据库管理(Redis高级应用之事务处理、持久化操作、pub_sub、虚拟内存)
bijian1013
redis数据库NoSQL
3.事务处理
Redis对事务的支持目前不比较简单。Redis只能保证一个client发起的事务中的命令可以连续的执行,而中间不会插入其他client的命令。当一个client在一个连接中发出multi命令时,这个连接会进入一个事务上下文,该连接后续的命令不会立即执行,而是先放到一个队列中,当执行exec命令时,redis会顺序的执行队列中
- 各数据库分页sql备忘
bingyingao
oraclesql分页
ORACLE
下面这个效率很低
SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM IPAY_RCD_FS_RETURN order by id desc) A ) WHERE RN <20;
下面这个效率很高
SELECT A.*, ROWNUM RN FROM (SELECT * FROM IPAY_RCD_
- 【Scala七】Scala核心一:函数
bit1129
scala
1. 如果函数体只有一行代码,则可以不用写{},比如
def print(x: Int) = println(x)
一行上的多条语句用分号隔开,则只有第一句属于方法体,例如
def printWithValue(x: Int) : String= println(x); "ABC"
上面的代码报错,因为,printWithValue的方法
- 了解GHC的factorial编译过程
bookjovi
haskell
GHC相对其他主流语言的编译器或解释器还是比较复杂的,一部分原因是haskell本身的设计就不易于实现compiler,如lazy特性,static typed,类型推导等。
关于GHC的内部实现有篇文章说的挺好,这里,文中在RTS一节中详细说了haskell的concurrent实现,里面提到了green thread,如果熟悉Go语言的话就会发现,ghc的concurrent实现和Go有点类
- Java-Collections Framework学习与总结-LinkedHashMap
BrokenDreams
LinkedHashMap
前面总结了java.util.HashMap,了解了其内部由散列表实现,每个桶内是一个单向链表。那有没有双向链表的实现呢?双向链表的实现会具备什么特性呢?来看一下HashMap的一个子类——java.util.LinkedHashMap。
- 读《研磨设计模式》-代码笔记-抽象工厂模式-Abstract Factory
bylijinnan
abstract
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
package design.pattern;
/*
* Abstract Factory Pattern
* 抽象工厂模式的目的是:
* 通过在抽象工厂里面定义一组产品接口,方便地切换“产品簇”
* 这些接口是相关或者相依赖的
- 压暗面部高光
cherishLC
PS
方法一、压暗高光&重新着色
当皮肤很油又使用闪光灯时,很容易在面部形成高光区域。
下面讲一下我今天处理高光区域的心得:
皮肤可以分为纹理和色彩两个属性。其中纹理主要由亮度通道(Lab模式的L通道)决定,色彩则由a、b通道确定。
处理思路为在保持高光区域纹理的情况下,对高光区域着色。具体步骤为:降低高光区域的整体的亮度,再进行着色。
如果想简化步骤,可以只进行着色(参看下面的步骤1
- Java VisualVM监控远程JVM
crabdave
visualvm
Java VisualVM监控远程JVM
JDK1.6开始自带的VisualVM就是不错的监控工具.
这个工具就在JAVA_HOME\bin\目录下的jvisualvm.exe, 双击这个文件就能看到界面
通过JMX连接远程机器, 需要经过下面的配置:
1. 修改远程机器JDK配置文件 (我这里远程机器是linux).
 
- Saiku去掉登录模块
daizj
saiku登录olapBI
1、修改applicationContext-saiku-webapp.xml
<security:intercept-url pattern="/rest/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<security:intercept-url pattern=&qu
- 浅析 Flex中的Focus
dsjt
htmlFlexFlash
关键字:focus、 setFocus、 IFocusManager、KeyboardEvent
焦点、设置焦点、获得焦点、键盘事件
一、无焦点的困扰——组件监听不到键盘事件
原因:只有获得焦点的组件(确切说是InteractiveObject)才能监听到键盘事件的目标阶段;键盘事件(flash.events.KeyboardEvent)参与冒泡阶段,所以焦点组件的父项(以及它爸
- Yii全局函数使用
dcj3sjt126com
yii
由于YII致力于完美的整合第三方库,它并没有定义任何全局函数。yii中的每一个应用都需要全类别和对象范围。例如,Yii::app()->user;Yii::app()->params['name'];等等。我们可以自行设定全局函数,使得代码看起来更加简洁易用。(原文地址)
我们可以保存在globals.php在protected目录下。然后,在入口脚本index.php的,我们包括在
- 设计模式之单例模式二(解决无序写入的问题)
come_for_dream
单例模式volatile乱序执行双重检验锁
在上篇文章中我们使用了双重检验锁的方式避免懒汉式单例模式下由于多线程造成的实例被多次创建的问题,但是因为由于JVM为了使得处理器内部的运算单元能充分利用,处理器可能会对输入代码进行乱序执行(Out Of Order Execute)优化,处理器会在计算之后将乱序执行的结果进行重组,保证该
- 程序员从初级到高级的蜕变
gcq511120594
框架工作PHPandroidhtml5
软件开发是一个奇怪的行业,市场远远供不应求。这是一个已经存在多年的问题,而且随着时间的流逝,愈演愈烈。
我们严重缺乏能够满足需求的人才。这个行业相当年轻。大多数软件项目是失败的。几乎所有的项目都会超出预算。我们解决问题的最佳指导方针可以归结为——“用一些通用方法去解决问题,当然这些方法常常不管用,于是,唯一能做的就是不断地尝试,逐个看看是否奏效”。
现在我们把淫浸代码时间超过3年的开发人员称为
- Reverse Linked List
hcx2013
list
Reverse a singly linked list.
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
p
- Spring4.1新特性——数据库集成测试
jinnianshilongnian
spring 4.1
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
- C# Ajax上传图片同时生成微缩图(附Demo)
liyonghui160com
1.Ajax无刷新上传图片,详情请阅我的这篇文章。(jquery + c# ashx)
2.C#位图处理 System.Drawing。
3.最新demo支持IE7,IE8,Fir
- Java list三种遍历方法性能比较
pda158
java
从c/c++语言转向java开发,学习java语言list遍历的三种方法,顺便测试各种遍历方法的性能,测试方法为在ArrayList中插入1千万条记录,然后遍历ArrayList,发现了一个奇怪的现象,测试代码例如以下:
package com.hisense.tiger.list;
import java.util.ArrayList;
import java.util.Iterator;
- 300个涵盖IT各方面的免费资源(上)——商业与市场篇
shoothao
seo商业与市场IT资源免费资源
A.网站模板+logo+服务器主机+发票生成
HTML5 UP:响应式的HTML5和CSS3网站模板。
Bootswatch:免费的Bootstrap主题。
Templated:收集了845个免费的CSS和HTML5网站模板。
Wordpress.org|Wordpress.com:可免费创建你的新网站。
Strikingly:关注领域中免费无限的移动优
- localStorage、sessionStorage
uule
localStorage
W3School 例子
HTML5 提供了两种在客户端存储数据的新方法:
localStorage - 没有时间限制的数据存储
sessionStorage - 针对一个 session 的数据存储
之前,这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不