自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(526)
  • 资源 (13)
  • 问答 (4)
  • 收藏
  • 关注

原创 我所理解的JMM-- 2 new原子性

概述文本探讨构造函数是否为原子性问题。案例我们首先如下代码:public class Person { public int age; public Person() { age=20; }}//构造对象public class JavaMain { public static void main(String[] args) { Person person = new Person(); }}

2020-07-19 16:18:00 526

原创 c-8 内存分区之数据区

基础概念一个c源文件经过编译会生成一个二进制文件。而编译器会将我们相同属性的代码放在相近的一段位置。比如我们的全局变量,会放在相近位置,而代码数据又会放在别的二进制位置。如下图所属:例子:#include <stdio.h>//全局初始化区域int globalIntOne=0x123456;int globalIntTwo=0x5201314;//全局未初始化区域int uninitGlobalIntOne;int uninitGlobalIntTwo;void

2020-07-17 22:53:52 270

原创 c-7 字符和字符串函数

本文讲解字符串函数和结构等

2020-07-15 00:39:53 228

原创 我所理解的JMM-- 1概述

JSR 是什么?JSR是Java Specification Requests全称,用于制定java规范的东西。我们的JMM就是制定在JSR中。本文仅讨论JSR133.JMM是什么JMM 是 JAVA Memory Model ,它定义了虚拟机和编译器所需要遵守的规则。JMM存在的意义多线程通信方式大体上分为两种形式:1.消息传递2.共享内存两者分别有各自的优劣:(1)消息传递:往往依赖于事件循环,效率略低,但不需要考虑多线并发问题,如Dart语言便是其中一个。(2)共享内存:多线程共享

2020-07-14 00:32:36 343

原创 c-6 函数调用与内存结构

函数可以提高程序的复用性,减少重复代码。而函数间的调用和返回需要协定大量的协议。比如A函数传参到B函数,需要协定传参顺序,返回地址,寄存器变量的保存等,我们可以把这些统称为上下文切换。我们一个函数一般拥有如下内存结构(栈由高地址指向低地址,高地址为栈底):我们函数调用拥有如下流程:1)参数传入顺序协定首先函数A调用B需要协定传入参数:我们在c语言中有如下几个协定关键字其中举例说明__cdecl:__cdecl全程叫c declaration,传入参数顺序从右到左,函数调用完之后的栈空间由

2020-07-08 23:27:57 259

原创 c-5 IEEE754浮点表示法

Float 存储格式IEEE754标准中 以32位float存储方式举例说明:其中符号位占据1位。指数位占据8位。尾数23位。指数位:当然指数位也被叫做阶码 ,阶码使用移码进行表示。移码如果阶码的数位为N(有几个二进制位 ,即bit),那么那么我们首先需要计算出一个偏移值,bias=2n-1-1作为偏数值,然后你想计算数为X,移码的结果为E.那么E=bias+x.为何偏移是2^n-1^后文会讲解。(也有人使用bias=2n-1表示偏移值,这里表示的2进制在n-1位数最大表示的数值,比如n

2020-07-05 19:38:11 1083

原创 c-04 CPU基本运算与补码

现代计算机cpu只能进行逻辑运算,即 与,或,非,异或,左移 右移。关于这块的具体原因可以Google搜索逻辑门等相关电路学科知识。那么我们所有的加减乘除都必须使用上述上个基本逻辑去完成。而补码的出现就是为了辅助计算。补码其实跟c语言无关,但是是因为学c语言期间学的所以记录下。如何使用基本逻辑运算完成加法运算?假设我们存在两个数据:A = 1,B = 1。(注意这里的1是二进制,也就是A+B=10)在计算机计算A+B:进位部分 对A和B进行逻辑与操作,那么本案例中:A与B=1所以进位部分

2020-07-05 00:15:06 925

原创 c-3 随机函数

以下为c常见随机数生成方法#include <stdio.h>#include<time.h>#include <stdlib.h>void main(){ srand(time(NULL)); printf("%d\r\n",rand()); getchar();}srand函数和rand函数在vc库的实现如下#include <cruntime.h>#include <mtdll.h>#include

2020-07-02 23:57:56 255

原创 c-2 大小端

在现代计算机中利用高低电频区分数据,换句话说所有数据只能有两种表现形式。所以我们用二进制各种排列组合形成一个文件。我们存储一个数据如999(对应十六进制为03E7)存储在硬盘或内存。其中03为高地址字节,E7为地址字节。大端模式:第一种存储999这个数据的方式 让03放入硬盘开始位置,E7放入硬盘结束位置。也就是这种存储方式叫做大端模式。那么最后的存储结果是03E7,这种存储方式让我们查看数据的时候非常自然。但是换一个方向去思考,就是数据的高地址位放存储低地址位,这在逻辑上显得突兀。小端模式第二种

2020-07-02 23:42:45 565

原创 C-1 入门知识

笔者在WIN10和VC6.0下学习的笔记。标题编译编译在VC安装目录C:\Program Files (x86)\Microsoft Visual Studio\VC98\Bin就IDE编译套件。文件信息如下:

2020-07-02 00:21:55 754

原创 Gradle生命周期

Gradle执行构建需要经过三个阶段:初始化阶段配置阶段执行阶段本文将就三个阶段,所触发的回调做讲解。初始化阶段解释执行settings.gradle脚本确定子参与构建的子工程。然后每个确定的子工程会创建一个Project对象。开发者可在 settings.gradle中使用include("xxx")语法添加子工程。如下settings.gradle文件所述:rootProject.name = 'JavaExample'//包含子工程 属于 初始化阶段include 'Chil

2020-06-30 01:04:32 411

原创 Gradle 依赖关系和冲突

前言在java编程过程中不免使用大量的第三方库文件,当存多个库文件存在同包同类名的情况时,将发生不可预计的错误,所以依赖冲突是必须解决的一个常规性问题。什么是依赖传递简单来说就是就是A工程依赖B,B依赖C和D。那么A工程将得到B,C和D工程的类。Gradle对于传递依赖 可以把传递依赖变为编译时依赖,也可以默认打包进宿主工程中。-gradle 关闭全部传递依赖//A 工程依赖声明dependencies { //依赖B工程(B工程同时依赖C,D)。 // 但是把传递依赖

2020-06-08 23:47:02 791

原创 Groovy 构建生成器

我们在使用Groovy感觉到解析xml于json 时特别方便,其实这一切背后都依赖于groovy的MOP的实现,但是我们要整个利用这个特性或许太复杂,所以groovy提供了一些帮助类帮我们简化操作。BuilderSupport首先我们看下这个类的一些方法回调class MyBuild extends BuilderSupport { /** * 当一个闭包内部添加一个新的子节点 * @param parent * @param child */

2020-05-26 22:55:14 554

原创 Groovy Xml解析

生成XML:MarkupBuilder方式:import groovy.xml.MarkupBuilderimport groovy.xml.StreamingMarkupBuilderdef stream = new ByteArrayOutputStream(200)def osw = new OutputStreamWriter(stream)def builder = new MarkupBuilder(osw)builder.asd { book {

2020-05-25 21:42:43 1344

原创 Groovy Json解析

如何生成Json字符串JsonBuilder利用元编程的特性帮助我们快速生成一个json字符串import groovy.json.JsonBuilderdef json = new JsonBuilder()json.book { info { name = "Java入门到放弃" author = "XiaoMing" } version { mainVersion "1.0" }}//漂亮的格式化输出js

2020-05-24 23:23:33 1454

原创 Groovy MOP3-metaclass

本章将简单讲解metaclass。What MetaClassMetaClass是Goorvy实现语言动态核心类,用于路由方法/属性调用,扩展等.Where MetaClass对于Groovy对象内部存在一个metaclass属性,对于Java对象的metaclass对象存在groovy.lang.MetaClassRegistry中。举个例子:def registry = GroovySystem.getMetaClassRegistry()println registry.getMetaC

2020-05-21 22:46:19 293

原创 Groovy MOP-2

对于Groovy创建的类MOP方法或者属性存在以下调用协议:再看了上面的对类的扩展方法后我们来看看MOP方法调用协议部分:协议一 :对于一个Groovy创建的类(后面简写为POGO),如果实现了GroovyInterceptable接口,那么所有的方法调用都必须线调用invokeMethodclass Person implements GroovyInterceptable { @Override Object invokeMethod(String name, Object

2020-05-20 22:49:56 189

原创 Groovy MOP-1

静态方法/属性注入:String.metaClass.'static'.sayHello = { println("hello world")}String.'sayHello'()String.sayHello()构造函数注入:String.metaClass.constructor = { Integer p -> new String("hello world" + p)}println new String(1)实例属性/方法注入String.me

2020-05-20 00:15:25 387

原创 Groovy读取properties文件

在java配置文件中经常需要读取properties文件,在groovy提供了一些非常方便的方式。我们看下properties长什么样://connfig.propertiesname = "张三"age = 1ConfigSlurper就是一个帮助类,他可以读取标准的properties文件或者groovy脚本形式的配置文件。def config=new ConfigSlurper().parse(new File("/Users/fmy/IdeaProjects/groovy2/src/

2020-05-13 22:59:48 2565

原创 Groovy脚本执行

Groovy是一个可以解释执行的语言,在解释执行的情况下具有以下基础语法特征。groovy xxx.groovy方式运行一个groovy文件.在解释执行的Groovy文件中,有如下特点:文件运行在一个Script对象中。def关键字可以省略举个例子://省略def不写name = "XiaoMing123"//闭包不写defmyClosure = { age = 3 println(age)}println(name)myClosure.call()//运行

2020-05-13 22:49:09 1723

原创 Groovy 方法扩展

在Groovy允许对一个类的进行添加额外的静态方法或者实例方法。步骤:编写一个静态方法。在META-INF/service/org.codehaus.groovy.runtime.ExtensionModule文件声明扩展函数位置。打成jar 。Demo:我们首先实现对String实例方法进行扩展,判断这个字符和另一个字符串是否包含字符*。扩展函数语法要求:必须有至少一个参数,且第一个参数类型是扩展的类函数必须为静态package org.fmyclass StringExt

2020-05-13 20:21:59 908

原创 Groovy的Bean对象

get 和set函数groovy中所有类成员编译后会自动生成get set 函数class Person{ def name def age def high def sex}在编译后会自动生成get和set函数(其他生成函数请无视,这是元编程内容)。public class Person implements GroovyObject { private Object name; private Object age; private

2020-05-09 22:55:31 497

原创 Groovy函数调用

函数声明def [返回值类型] 函数名:其中[返回值类型]可以省略,那么返回类型为任意对象def int fun1() { println "fun1" return 1}def fun2() { println "fun2" return 1}函数不需要显示return当一个函数返回时,默认以最后一行的对象作为返回值def fun3() { println "fun3" //函数最后一行作为返回值 1}def f

2020-05-09 22:42:16 5451

原创 Groovy 闭包

闭包声明我们看下如何声明一个闭包:def myClosure={ println("I'm Closure")}//调用闭包的方式一myClosure()//调用闭包的方式二myClosure.call()输出:I’m ClosureI’m Closure闭包参数在默认情况下闭包会传递一个null数值,如果没有命名这个参数那么以it命名。def myClos...

2020-05-07 12:55:50 204

原创 Groovy集合

本章将简单将继续讲解Groovy集合的语法糖

2020-05-05 23:49:27 385

原创 Groovy循环

本文讲解java不存在的几种遍历函数或者方式for 循环IntRange方式IntRange方式的for循环class Main { public static void main(args) { //输出1到3 for (i in 1..3) { println("$i") } }}其实1…3...

2020-05-04 18:04:29 614

原创 Groovy 基本语法

本文将简单讲解Groovy语言相关基础知识,如果你学过其他的类Kotlin活swift那么你讲非常轻松了解其语法。关于groovy工程的创建和启动这里并不过多说明,大家可以直接使用idea即可变量定义groovy中变量定义具有自动推断机制,也就是无需声明类型。变量的定义可以采用def关键字。class Main { public static void main(args) { ...

2020-05-04 15:32:12 537

原创 Kotlin协程核心库分析-7 Sequence

Sequence是一个kotlin序列生成器对象,其他语言也都有其相对应的Api(如Dart)。简单看下如下例子fun foo(): Sequence<Int> = sequence { // 序列构建器 for (i in 1..3) { Thread.sleep(100) // 假装我们正在计算 yield(i) // 产生下一个值 ...

2020-04-29 22:37:50 529

原创 Kotlin协程核心库分析-6 范围协程

范围协程的使用和简单分析

2020-04-26 20:54:03 624

原创 Kotlin协程核心库分析-5 Job异常处理器注意点

开工

2020-04-25 14:59:44 718

原创 Kotlin协程核心库分析-4 Job父子取消

本文开始讲解:父Job取消时如何取消子Job

2020-04-23 22:13:27 949

原创 Kotlin协程核心库分析-3 Job链

概述我们知道协程启动后可以在内部在启动一个子协程,当存在这样的结构化层级时父协程的取消会引起子协程立即跟随取消,当子协程存在未捕获的异常时同样会级联到父协程的取消。并且协程启动后返回的Job对象时可以监听完成和取消事件。这一切背后的都靠背后一个链表保存所有的子协程和监听器。...

2020-04-19 22:40:05 1211

原创 App签名

待续import java.math.BigInteger;import java.util.Base64;public class Main { public static void main(String[] args) { String s = toByteArray("1985f800b4cd27c69343ebffb3adcca2e995e6ffc51a8...

2020-04-17 21:04:48 226

原创 Kotlin协程核心库分析-2 Job简述

未完待续。。Job是标准库中启动协程后返回的对象,代表着协程本次作业。我们可以判断协程是否结束,是否取消,是否完成并且可以取消当前协程以及嵌套子协程。我们简单的看下面的代码如何获取job对象fun main() { val job = GlobalScope.launch { } //协程是否存活 job.isActive //是否取消 ...

2020-04-15 23:33:09 2308 2

原创 Kotlin协程核心库分析-1 Dispatchers

Kotlin标准库的线程切换

2020-03-29 19:56:41 4225

原创 Kotlin协程源码分析-8 拦截器

前言协程拦截器ContinuationInterceptor作用:线程切换hook结果(一般用不到)我们开发Swing或者Android更新UI需要在特定的线程上进行操作,那么这里就涉及线程的切换问题,那么我们看看ContinuationInterceptor在本章中如何使用和源码分析。简单案例class MyContinuation() : Continuation<St...

2020-03-29 17:41:14 1695 2

原创 Kotlin协程源码分析-6 suspendCoroutineUninterceptedOrReturn注意点

学完状态机之后来看看他可以帮我们理解什么。我们回头看看suspendCoroutineUninterceptedOrReturn获取挂起函数的注意点:1.不要轻易在同一个调用挂起函数的栈帧中调回Continuation.resumeWithException或者Continuation.resume2. 如果不是立即返回结果,请务必返回kotlin.coroutines.intrinsics...

2020-03-27 21:58:10 1350

原创 Kotlin协程源码分析-7 Context左向链表

Context如何存储对象在自身

2020-03-24 21:01:43 793 3

原创 Kotlin协程源码分析-5 状态机

上文链接:Kotlin协程源码分析-4 状态机在上文中最后一行 “挂起函数的Continuation对象如何才能获取?”。“如何返回一个挂起标识符COROUTINE_SUSPENDED”。本文将做就这两个问题详细介绍获取挂起函数的Continuation对象你可以直接看kotlin协程库实现方式得到答案。这里直接给出答案。suspend fun mySuspendOne() = susp...

2020-03-23 21:53:27 1764 7

原创 Kotlin协程源码分析-4 状态机

今天就来分析所谓的协程的状态机首先来看一个问题,我们知道suspend 函数会在编译后生成一个传入continuation的函数。那么我们如何自己拿到这个传入的对象呢?这个对象又有什么作用?请看如下代码即可//com.example.studycoroutine.chapter.four.MyCoroutine.ktsuspend fun commonSuspendFun(): Stri...

2020-03-22 21:49:10 2494 3

MyDebugger.rar

MyDebugger.rar

2021-12-12

frida-12.8.20-py2.7-macosx-10.9-intel.egg

mac frida相关工具。如果你使用pip install frida-tools过慢时,请下载此资源,然后放入/Library/Python/2.7/site-packages/目录下

2020-04-05

腾讯2016安全比赛第一题

安全比赛第一题的题目apk.要求写出注册机.考点位于反编译后的so库.

2018-07-21

AIDL bindservice流程图

aidl binserive的流程图 内含png oom两个原文。http://blog.csdn.net/qfanmingyiq/article/details/78094417

2017-09-29

Android使用的libjpeg库文件

可以用于Android下使用libjpeg。内部有arm x86 x64的静态库和头文件

2017-08-29

电脑Gif制作器licecap126-install

电脑安装软件后移动窗口到某一区域点击record录制 然后按下stop键生成gif图

2016-10-20

Navicat Premium数据管理

Navicat Premium 可视化管理一些轻量级数据库如 mysql sqlite内含补丁

2016-09-07

仿QQ截图工具

一款仿照QQ截图的工具简单实用

2016-09-06

ColorCop屏幕取色器

获取屏幕某个点的RGB颜色值 无广告简洁 开发者必备

2016-09-05

fastjson 阿里巴巴json工具jar包

阿里巴巴的json解析生成 的jar包 如快速解析json生成javabean 或者javabean生成json

2016-09-02

fastjson 阿里巴巴的解析生成json工具

2016-09-01

GSON 包含源码和DOC

谷歌解析json工具

2016-09-01

json解析器

用于解析json数据 并且清晰的结构图

2016-08-30

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

TA关注的人

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