什么是Java虚拟机?为什么可以被称作是“平台无关的编程语言”?

java虚拟机是整个java平台的基石,是实现平台无关性的基础,是用以实现硬件无关与系统无关的关键部分。 java作为编译代码的运行平台,Java虚拟机是一个执行class格式文件的虚拟机进程。拥有自己的指令集(字节码)和各种运行时内存区域,通过要求Class文件符合强制性语法以及特定的结构来保障用户机器不受恶意代码的侵害,只要符合class文件格式就可以在java虚...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

什么是强引用、软引用、弱引用、虚引用以及四种引用的区别及其实现

在JDK1.2以前引用的传统定义: 如果引用类型的数据中存储的数值代表的是另一块内存的起始地址,就称这块内存代表着一个引用。但是这种定义有些狭隘,一个对象在这种定义下只有被引用或者没有被引用两种状态。不具备对于对象状态的描述。所以在之后Java对引用的概念做了扩充,将引用分为强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Referenc...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

Android:Handler消息机制(一)——什么是Handler消息机制

一、什么是Android的消息机制Android的消息机制主要是指Handler的运行机制,handler是一套消息传递异步通信机制,Handler是Android的消息机制的上层接口,在开发过程中只需要和Handler交互即可,目的是将一个耗时任务切换到某个指定的线程中去执行。Handler的运行需要底层的MessageQueue和Lopper一起完成,这三者其实是一个整体。额外使用Mess...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

Android:Handler消息机制(二)——如何使用Handler消息机制

一、消息机制的工作步骤Handler的工作流程分为四个步骤异步通信准备、消息发送、消息循环、消息处理:1.异步通信准备:在主线程中创建处理器对象、消息队列对象、Handler对象,Looper和MessageQueue均属于主线程,在创建MessageQueue后Looper自动进入消息循环,此时Handler自动绑定主线程的Looper、MessageQuene,并且启动子线程2.消...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

java:JVM的内存结构和布局

class文件由JVM中的类加载器加载各个类的字节码文件,加载完毕之后会交由JVM执行引擎执行。在整个程序执行过程中,JVM会用一段内存空间来存储程序执行期间用到的数据和相关信息,这段内存空间被称作为运行时数据区,也就是JVM内存结构。java内存结构包括虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。方法区和堆是所有线程共享的内存区域;而java栈、本地方法栈和程序员计数器是运行是线程私有...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

Android:Handler消息机制(三)——Handler源码分析

一、处理者Handler类里的主要方法:Handler():构造方法sendMessage(Message msg):将消息发送到消息队列post(Runnable r):将消息发送到消息队列dispatchMessage(Message msg):将消息发送给对应的HandlerhandleMessage(Message msg):根据某一个消息进行相关的处理和操作...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

Android:Handler消息机制(四)——为什么主线程不会因Looper.loop()里的死循环卡死

这个问题需要通过三方面来讲:1.为什么主线程不会因为Looper.loop()里的死循环卡死?2.为什么主线程一直在死循环却不会占用大量CPU消耗?3.那究竟是什么导致主线程卡死?一、为什么主线程不会因为Looper.loop()里的死循环卡死?首先理解“线程进入死循环”这个问题, 就是在循环体内具有一段可执行的子程序,由于for(; ;)的调度导致这段子程序持...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

JVM的常量池:什么是字符串常量池、运行时常量池、Class常量池

在 JAVA 语言中有8中基本类型和一种比较特殊的类型String。这些类型为了使他们在运行过程中速度更快,更节省内存,都提供了一种常量池的概念。常量池就类似一个JAVA系统级别提供的缓存。首先,比较有名的常量池有两个,分别是运行时常量池和静态常量池,但是目前可以被称为常量池的有三个:字符串常量池、运行时常量池、静态常量池。这三个常量池的变动的关键时刻是在JDK1.7的时候:(1)...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

JVM的常量池:String.intern()的理解以及字符串常量池解析

大致过程:在该类的class常量池中会存放一些符号引用,在类加载之后,会将class常量池中存放的符号引用加载到内存中的运行时常量池中,然后经过验证,准备阶段之后,会在堆中生成驻留字符串的实例对象(也就是””括起来的),然后将这个对象的引用存到全局String Pool中,也就是StringTable中,最后在解析阶段,要把运行时常量池中的符号引用替换成直接引用,通过直接查询Str...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

DIV文字展示(省略...、超出滑动等) - 使用white-space

省略文字…white-space: nowrap; // 一行显示overflow: hidden; // 不允许滚动text-overflow: ellipsis; // 省略符号...截图超出滑动white-space: nowrap; // 一行显示overflow-x: scroll;// 允许x轴方向滚动截图书写格式保留、溢出white-space:pre...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

git stash命令(bug分支操作)

1、git stash list展示当前存储的列表:如果没有stash过,不会展示东西1、git stash存储数据:存数据之前展示当前工作区和暂存区的修改git statusgit status输出三类文件信息:Changes to be committed: (已经在stage区, 等待添加到HEAD中的文件)Changes not staged for commit: (有修...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

ES6 Generator 函数到底是什么?怎么使用?(一)

先上一段代码:function * f () { yield 2;}function * test () { try { yield 1; yield * f(); // 等同于for ... of for (let i of f()) { console.log(执行了for ... of) console.log(i); } yield 3; }...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

解决跨域窗口的通信问题

Js前端解决方案:  1、片段识别符(fragment identifier)  2、跨文档通信API(Cross-document messaging)- window.postMessage()片段标识符  片段标识符指的是URL # 号后面的部分  比如http://example.com/xxx.html#flag的flag;改变片段标识符,页面不会刷新父窗口改变子窗口的URL...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

浏览器数据库IndexedDB - 增删查改实例

代码 :gitHub - indexedDB-Demo
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

你是否知道自己适合做什么?

从一个人的真实经历开始聊起:迈克尔·本特  记录片《 败局启示录》里的迈克尔·本特,是一名拳击手。他曾4次获得纽约金手套公开赛冠军,5次获得全国冠军。  到这里你可能会说,他是个成功人士。  但是他却说:“我不想成为职业拳击手”。  小时候他就把这个想法告诉父亲了,但是换来的却是一顿打。父亲的偶像是拳王阿里,想让儿子成为拳王,所以从小培养他打拳击。  在他首次登上职业拳台,第一场比赛...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

如何让被遮挡层可以进行事件点击?(纯CSS方法)

css属性添加:外层(被遮挡的层){ pointer-events: none;}内层(要发生事件的层){ pointer-events: auto;}  pointer-events属性本身有很多取值,但只有none和auto可以用在浏览器上,其他都只能应用在SVG上取值none:元素永远不会成为鼠标事件的target取值auto:与pointer-events属性未指...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

Flex弹性布局 入门实例

利用flex布局,写了从一到九的麻将排版格式父元素(容器):flex containerflex-direction: 子元素(项目)的排列方向,默认 rowflex-wrap: 子元素(项目)的总宽度超出时是否换行,默认 nowrapflex-flow: 上两种属性的简写,默认 row nowrapjustify-content: 主轴 main axis 的对齐方式,默认 fle...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

Lodash和Moment.ls 工具库安装和使用

作用:Lodash 通过降低 array、number、objects、string 等等的使用难度,让 JavaScript 变得更简单遍历 array、object 和 string对值进行操作和检测创建符合功能的函数安装与使用:1、浏览器环境:<script src=lodash.js></script>2、通过 npm:$ npm i -...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

浏览器隐藏滚动条-支持火狐、谷歌、edge

下面是隐藏滚动条的样式:元素/样式选择器 { overflow-y: auto; // 隐藏滚动条 &必须是scss/less里面才有用 &::-webkit-scrollbar { /* WebKit */ display: none; } -ms-overflow-style:none; /* Edge */ scrollbar-width: none; /...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

JS的reduce方法使用(数组去重)

话不多说:直接贴代码let a = {}let s = [ {index: 1, name: 张三}, {index: 1, name: 李四}, {index: 2, name: 王五}].reduce((pre, cur) => { (a[cur.index] ? false : (a[cur.index] = true)) && pre.push(cur) return pre}, [])console.log(s)效果图:...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0