一站式理解线程概念与应用

线程 进程:资源分配的最小单位 线程:程序执行的最小单位 线程开启 方法一:定义类继承Thread,重写run方法 优点:直接使用Thread类中的方法,代码简单 缺点:如果已经有了父类,就不能用这种方法 class MyThread extends Thread { @Override public void run() {} } MyThread mt = new MyThread(); mt.start(); 方法二:定义类实
分类: 其他 发布时间: 02-24 23:49 阅读次数: 0

Android类加载器概念与应用

类加载器 负责将.class文件加载到内存中,并为之生成对应的Class对象 当程序使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来对其初始化 加载:指将class文件读入内存,并为之创建一个Class对象。任何类被使用时系统都会建立一个Class对象 连接: 验证 是否有正确的内部结构,并和其他类协调一致 准备 负责为类的静态成员分配内存,并设置默认初始化值 解析 将类的二进制数据中的符号引用替换为直接引用 初始化:我们以前讲过的初始化步骤 Cl
分类: 其他 发布时间: 02-24 23:49 阅读次数: 0

Android进程概念与应用

进程 应用场景 类似音乐类、跑步健身类、手机管家类等长时间需要在后台运行的应用Android中的进程 Android中的进程 前台 > 可见 > 服务 > 后台 > 空 Foreground process 前台进程(满足任一个条件) 1、拥有一个正在和用户交互的Activity(也就是说Activity 的onResume()方法被执行了) 2、拥有一个被用户的正在交互的Activity 绑定的Service 3、拥有一个以“前台模式”运行的Service–该Service 已经被调用了st
分类: 其他 发布时间: 02-24 23:49 阅读次数: 0

Android一站式IO流总结

IO流 概念:处理设备间数据传递 常用父类 字节流抽象父类:InputStream、OutputStream 字符流抽象父类:Reader、Writer 字节流 FileInputStream\FileOutputStream FileInputStream fis = new FileInputStream("before.mp3"); //创建输入流对象,关联致青春.mp3 FileOutputStream fos = new FileOutputStream("after.mp3")
分类: 其他 发布时间: 02-24 23:48 阅读次数: 0

Ant解析与使用

Ant的使用 简介 一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,多用于 Java 环境中的软件开发。由Apache软件基金会所提供.Ant 也可以有效地用于构建非Java应用程序,如 C 或 C++ 的应用程序。更一般地,Ant 可以用来驾驶任何类型的能在目标和任务来描述过程 安装与使用 下载:http://ant.apache.org/bindownload.cgi 安装:解压缩到指定目录下即可 环境变量配置: ANT_HOME:安装目录(D:\program\ant-1
分类: 其他 发布时间: 02-24 23:48 阅读次数: 0

Android插件化

Android插件化 减少安装包大小,实现app功能模块化动态扩展 发展历程 需解决三个问题 插件中代码的加载和与主工程的互相调用 插件中资源的加载和与主工程的互相访问 四大组件生命周期的管理 框架发展的三代 第一代 dynamic-load-apk:使用ProxyActivity静态代理技术由ProxyActivity去控制插件中PluginActivity的生命周期 缺点:插件中的activity必须继承PluginActivity,开发时要小心处理context,开发侵入性高 第二代 在
分类: 其他 发布时间: 02-24 23:47 阅读次数: 0

Binder机制详解

Binder机制 Android系统中进程间通讯(IPC)的一种方式,Android中ContentProvider、Intent、aidl都是基于Binder 内存管理 Binder最大只能传1M的数据,因为Binder驱动只预留了一段1M大小的虚拟地址 mmap中定义BINDER_VM_SIZE为1M,Binder数据需要跨进程传递,需要在内核上开辟空间,所以允许在Binder上传递的数据不是无限大的 Binder 架构 通信采用C/S架构,包含Client、 Server、 Servic
分类: 其他 发布时间: 02-24 23:47 阅读次数: 0

JNI 与 NDK

JNI 与 NDK JNI 定义:Java Native Interface,即 Java本地接口 作用: 使得Java 与 本地其他类型语言(如C、C++)交互,Java代码与C,C++语言代码相互调用 注意: JNI是 Java 调用 Native 语言的一种特性 JNI 是属于 Java 的,与 Android 无直接关系 背景:Java 具备跨平台的特点,所以Java 与 本地代码交互的能力非常弱 解决方案: 采用 JNI特性 增强 Java 与 本地代码交互的能力 实现步骤 1、在J
分类: 其他 发布时间: 02-24 23:46 阅读次数: 0

Android系统源码目录

Android系统源码目录 源码下载 官网:http://androidxref.com/ 镜像:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/ 百度网盘:http://pan.baidu.com/s/1ngsZs 整体架构 编译后的源码目录会多增加一个out文件夹,用来存储编译产生的文件 Android源码根目录 描述 abi 应用程序二进制接口 art 全新的ART运行环境( Android运行时库 ) bionic 系统C库 bootabl
分类: 其他 发布时间: 02-24 23:46 阅读次数: 0

记一道MISC图片题(拖延癌晚期)

title: 记一道misc图片题 date: 2017-10-26 15:17:12 tags: MISC 记一道MISC图片题(拖延癌晚期) 几个月前实验班考核的一个杂项 这个题是今年实验班考核的时候一个学长出的300分的杂项,然后当时没做出来…回来之后在学长的提示下做出来了otz… 就是一道脑洞题…不过学到了一些新的工具使用。所以总结一下。 最近清理window虚拟机找到了一些做的时候的截图什么的想起来了这事。觉得有的东西还是觉得记录一下。(虽然本拖延癌晚期患者已经拖了几个月…) 原本好
分类: 其他 发布时间: 02-24 23:46 阅读次数: 0

RSA入门总结

title: RSA入门总结 date: 2017-11-13 03:14:43 tags: CRYPTO RSA …先简单说一下rsa相关的东西。 RSA 算法的可靠性由其极大整数因数分解的难度决定。 也就是说,极大整数做因数分解愈困难,RSA 算法愈可靠。 在还没找到一种快速因数分解的算法之前,rsa加密还是很可靠的。目前短的 RSA 秘钥可能被强力方式破解。而只要密钥长度足够长,用RSA加密的信息实际上是不能被解破的。 最近稍微看了一下相关的东西。然后整理了一下。 a^b是a的b次方…忘
分类: 其他 发布时间: 02-24 23:45 阅读次数: 0

文件上传部分总结

title: 文件上传总结 date: 2017-11-18 15:17:12 tags: WEB emmmmmmm之前班上小组分环境,我们组刚好做的文件上传漏洞。当时考察的是检测文件头验证绕过和apache解析漏洞。于是做一些相关总结。 文件上传漏洞是个非常常见且容易理解的一个漏洞,有很多的漏洞场景和利用方式。 现今文件上传的校验一般分为: 客户端javascript校验(也即是网页上一段javascript脚本校验上传文件的后缀名,此时并未发送数据包,可以通过burp等修改直接绕过) 服务
分类: 其他 发布时间: 02-24 23:45 阅读次数: 0

通过一张火车票可以得到什么

title: 通过一张火车票可以得到什么 date: 2018-8-22 14:15:11 tags: MISC 通过一张火车票可以得到什么 摘要 假期回学校的时候,在火车东站被陌生人骗钱200块。报警之后也没有反馈。 自己太不小心了…QAQ小姐姐们一定要注意不要被坏人利用了自己的善良啊( 当时照了一张骗子出示的火车票。 虽然不一定是本人的…就试着看看通过一张火车票能查到什么。 身份证编码方式 火车票面上有个人完整姓名和少了四位出生日期的身份证号码。 票面上身份证号码是: 5001071997
分类: 其他 发布时间: 02-24 23:45 阅读次数: 0

学习《机器学习100天》第11天 K近邻法(k-NN)

github上的项目,跟着一起学习 K近邻法(k-NN)实现 首先回顾一下k近邻算法,根据k个邻居的信息,决定预测值。 代码实现: 导入相关库 导入数据集 划分数据集为训练集和测试集 特征缩放 使用K-NN对数据集数据进行训练 从sklearn.neighbors导入KNeighborsClassifier classifier = KNeighborsClassifier() classifier.fit() 对测试集进行预测 classifier.predict() 生成混淆矩阵
分类: 其他 发布时间: 02-24 23:44 阅读次数: 0

学习《机器学习100天》第12天 支持向量机SVM

github上的项目,跟着一起学习 项目地址 https://github.com/MLEveryday/100-Days-Of-ML-Code 1、什么是SVM 有监督 可用于分类和回归,主要用于分类 根据特征值,构建n维空间,数据点投影到该空间 2、数据如何分类 找到一个超平面 3、如何定义最佳超平面 最大化一个距离,这个距离是到超平面最近的点的距离 4、线性和非线性数据 线性数据直接用超平面划分 非线性数据,需变换到另一个空间,再划分 5、参数 核函数(kernel):寻找超平面,就是通
分类: 其他 发布时间: 02-24 23:44 阅读次数: 0

学习《机器学习100天》第13天 支持向量机(SVM)

github上的项目,跟着一起学习 项目地址 https://github.com/MLEveryday/100-Days-Of-ML-Code SVM实现 导入库 导入数据 拆分为训练集和数据集 特征量化 从sklearn.preprocessing导入StandardScaler sc=StandardScale() 训练集=sc.fit_transform(训练集) 测试集=sc.fit_transform(测试集) 适配SVM到训练集 从sklearn.svm导入SVC classif
分类: 其他 发布时间: 02-24 23:44 阅读次数: 0

学习《机器学习100天》第14天 支持向量机(SVM)的实现

github上的项目,跟着一起学习 项目地址 https://github.com/MLEveryday/100-Days-Of-ML-Code 原项目这一天给出的是代码,和第13天实现的代码相同,那么我今天就继续从理论上理解一下SVM。 找到一篇解释SVM的文章。地址是http://www.blogjava.net/zhenandaci/archive/2009/02/13/254519.html。现简单记录如下: (一)SVM的八股简介 一些概念: 1、机器学习本质:对问题真实模型的逼近
分类: 其他 发布时间: 02-24 23:43 阅读次数: 0

学习《机器学习100天》第15天 朴素贝叶斯分类器(Naive Bayes Classifier)和黑盒机器学习(Black Box Machine Learning)

github上的项目,跟着一起学习 项目地址 https://github.com/MLEveryday/100-Days-Of-ML-Code 原项目这一天的任务: 学习不同类型的朴素贝叶斯分类器同时开始Bloomberg的课程(https://bloomberg.github.io/foml/#home)。课程列表中的第一个是黑盒机器学习。它给出了预测函数,特征提取,学习算法,性能评估,交叉验证,样本偏差,非平稳性,过度拟合和超参数调整的整体观点。 一、朴素贝叶斯分类器 1、先验概率与后验
分类: 其他 发布时间: 02-24 23:43 阅读次数: 0

学习《机器学习100天》第16天 通过内核技巧实现支持向量机

github上的项目,跟着一起学习 项目地址 https://github.com/MLEveryday/100-Days-Of-ML-Code 原项目这一天的任务: 使用Scikit-Learn库实现了SVM算法以及内核函数,该函数将我们的数据点映射到更高维度以找到最佳超平面。 一、sklearn中的SVM算法 数据标准化处理 从sklearn.preprocessing导入StandardScaler standardScaler = StandardScaler() standardSc
分类: 其他 发布时间: 02-24 23:43 阅读次数: 0

学习《机器学习100天》第17天 决策树

github上的项目,跟着一起学习 项目地址 https://github.com/MLEveryday/100-Days-Of-ML-Code 原项目这一天的任务:在Coursera开始深度学习的专业课程 说明:由于机器学习相关的基础尚未完全掌握,决定接下来不完全按照原项目的计划来,根据原项目后面的,看了什么就记录什么。今天先看看后面的决策树。 一、决策树是什么? 监督学习算法 主要用于分类 二、决策树的例子 假设需要划分的数据是这样的: 决策树就是把这些数据切片: 对应的决策树是这样的:
分类: 其他 发布时间: 02-24 23:43 阅读次数: 0