自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jakezhang1990的专栏

你今天的努力,都是为了让你明天更有价值,强力研读Strong study,life-long learning终生学习。

  • 博客(166)
  • 收藏
  • 关注

原创 泛型应用范例

接口定义完成,但是接口中没有任何的方法,这样的接口称为标识接口。

2023-03-08 12:00:36 142 1

原创 java知识7------泛型

java泛型

2022-11-10 14:30:40 193

原创 关于Java多线程---------(4,经典案例-生产者与消费者、线程的生命周期)

生产者生产的是信息,就可以定义一个信息类,生产者和消费者同时占有这个信息类的引用,那么,就可以将生产者和消费者两个线程通过信息类联合在一起。生产者不断生产,消费者取走生产者生产的产品;生产者实现多线程机制;消费者实现多线程机制;

2022-11-03 19:49:46 261

原创 java知识6-----多线程

java多线程

2022-09-14 11:25:35 171

原创 java知识5-----包及访问控制权限

包、访问控制权限

2022-09-09 11:35:44 264

原创 java知识4-----异常

异常

2022-08-29 11:47:15 154

原创 java知识3-----核心2-面向对象高级 续3

Object类、包装类、匿名内部类

2022-08-24 11:52:07 141

原创 java知识3-----核心2-面向对象高级 续2

抽象类、接口的区别及应用用---设计模式:模板设计、工厂设计、代理设计、适配器设计

2022-07-27 16:02:30 127

原创 java知识3-----核心2-面向对象高级 续1--对象多态性

可以发现,通过子类进行父类对象的实例化操作,即对象发生向上转型之后,如果调用的方法被子类覆写过,则调用的肯定都是子类中覆写过的方法,但是当方法没有被覆写过,则调用的就是父类中继承过来的方法,也就是从父类中去找的方法。但是知道B类的情况下,就可以通过BextendsA,知道B是A的子类,这样,就知道了A和B两个类是有关系的;进行向上转型,运行后可以发现,子类对象向上转型成父类对象后,调用的方法依然是子类覆写过的方法。转型后,因为操作的是父类对象,所以是无法找到在子类中定义的新方法的。.............

2022-07-27 15:48:53 256

原创 java知识2-----核心1-面向对象基础-----续1

这里写目录标题static 关键字static关键字的作用static属性、static方法java中的内存区域划分:1,栈内存:保存对象名称(保存访问的堆内存的地址)2,堆内存:保存每个对象的具体属性3,全局数据区:保存static类型的属性4,全局代码区:保存所有方法的定义static的使用限制static 关键字static关键字的作用java中可以使用static声明属性和方法,非static声明的属性或者方法,每个对象都占有各自的堆栈空间,如果希望一个属性被所有对象所共同拥有,则可以将其声明

2022-05-23 11:14:32 188 1

原创 java知识2-----核心1-面向对象基础-----续

String类的常用方法查询jdk-API文档是最权威的使用方式,java提供的各种方法、接口都做了详细的说明。1,字符数组与字符串的互转:public class StringAPIDemo01{ public static void main(String args[]){ String str1 = "hello" ; // 定义字符串 char c[] = str1.toCharArray() ; // 将一个字符串变为字符数组 for(int i=0;i<c.leng

2022-05-13 10:18:34 253

原创 知识点6-----数据结构 树 Tree

目录标题树 Tree树的定义、结点、结点的度、内部结点、叶子结点结点的层次、兄弟结点、树的深度有序与无序树树林树的存储结构双亲表示法孩子表示法孩子兄弟表示法树 Tree树的定义、结点、结点的度、内部结点、叶子结点树是n(n大于等于0)个结点的有限集。 n=0时称为空树。在任意一颗非空树中: 1),有且仅有一个根root结点。 2),当n>1时,其余结点可分为m(m>0)个互不相交的有限集,其中每一个集合本身又是一棵树,并且称为根的子树SubTree。 结点拥有的子树数称为节点的度。

2022-04-21 19:33:47 635

原创 知识点5----数据结构 键值对 HashMap、LinkedHashMap(LruCache缓存)

目录标题键值对、key-value、entry实体、散列链表键值对、key-value、entry实体、散列链表HashMap是键值对的数据结构,存储的时候使用的是散列式存储。public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable {public abstract class AbstractMap<K, V&gt

2022-04-09 10:38:22 1433

原创 ArrayList LinkedList注意点

ArrayList内部使用的了一个Object数组来存储数据元素,所以ArrayList开辟的是一块连续的内存,是顺序存储的,有所有顺序存储的特性,查询快,插入删除慢。注意点:不可以for循环的remove ArrayList的元素值得一提的是,在for循环中是不可以直接remove元素的,否则很容易出现IndexOutOfBoundsException异常,为什么呢,查看源码,可以知道,remove的过程其实是删除某个节点,然后将节点后的元素都向前移动了,但是for循环结束条件的ArrayList对

2022-01-30 10:01:10 640

原创 ArrayList、LinkedList继承结构图

#mermaid-svg-TOSq3aEqsLANZ72v .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-TOSq3aEqsLANZ72v .label text{fill:#333}#mermaid-svg-TOSq3aEqsLANZ72v .node rect,#mermaid-svg-TOSq3aEqsL

2022-01-29 20:47:47 1192

原创 java知识4-----数据结构 List

这里写目录标题数据结构概念逻辑结构:物理结构经典数据结构线性表(List):顺序存储方式线性表(ArrayList):链式存储方式线性表(LinkedList):链表的插入:链表的删除:循环链表双向循环链表双向循环链表的插入双向循环链表的删除ArrayListLinkedList继承结构数据结构概念数据结构:数据之间相互存在着一种或多种特定的关系的元素的集合。逻辑结构:数据对象中数据元素之间的相互关系分为:集合结构线性结构属性结构图形结构物理结构物理结构即存储结构。顺序存储结构

2022-01-29 14:54:27 1103

原创 java知识3-----核心2-面向对象高级

面向对象高级。

2022-01-27 15:15:17 391

原创 java知识2-----核心1-面向对象基础

面向对象基础

2022-01-27 15:14:34 335

原创 java知识1----基础

目录标题Java学习路径如何学JavaJava学习路径1,java基础程序设计:数据类型、控制语句、数组、方法;2,面向对象程序设计:封装、继承、多态、设计模式、异常、包;3,Java新特性:泛型、枚举、装箱,拆箱、可变参数、Annotation;4,应用程序开发:类集、二叉树、链表、类库、多线程、IO、反射、网络、JDBC/Oracle,MySQL。如何学Java1,基本功扎实-----编程基本功,编程能力;2,学会查找doc文档,依靠文档而不是依靠人脑记忆;3,背代码,这是编程最重要

2021-12-08 15:17:11 429

原创 Camera框架

标题一、Android最新Camera 整体框架二、Android Camera2 和HAL3 的基本了解1) Camera2 接口什么时候开始引入的?2)一些只有 Camera2 才支持的高级特性3)何为HAL3?一、Android最新Camera 整体框架Android Camera整体框架主要包括三个进程:app进程、camera server进程、hal进程(provider进程)。进程之间的通信都是通过binder实现,其中app和camera server通信使用 AIDL(Android

2021-12-07 12:09:25 772 1

原创 framework开发三:Android编译过程分析

目录1,build/envsetup.sh分析;2,lunch做了什么,如何增加和删除lunch;3,使用Android编译命令编译单个的模块;Android编译过程及脚本分析:1,build/envsetup.sh分析;2,lunch做了什么,如何增加和删除lunch;3,Android编译命令使用;在执行Android编译过程中,整个过程主要分为:这就是Android的整个编译过程。1,build/envsetup.sh分析;执行了这个脚本以后干了什么事情?就干了以上的2件事。这个

2021-06-26 00:16:53 386

原创 framework开发二:环境准备

目录环境准备源代码准备Android源代码的目录结构及其功能环境准备1,准备Ubuntu的主机,可以直接去Ubuntu官网下载即可,可以搞一个VMware或者直接搞一个云主机。装好系统,再装一下Android编译必须要用到的相关的工具和相关的库文件:sudo apt-get install git-core gnupg flex bison gperf zipsudo apt-get install curl libc6-dev-i386 lib32ncurses5-devsudo apt-ge

2021-06-24 23:49:07 179

原创 framework开发一:Android架构

目录目标Android系统架构与分层整个Android系统是由软件和硬件组成的。软件部分,从底层到上层一共可以分为以下几个部分:Android系统也是分层的:近期换了工作,做的是系统定制framework层开发,回想以前做Android的APP-做Android音视频编解码方向的APP,到现在做Android系统底层开发,觉得还是差别比较大,入门是一个比较困难的过程,这里记录一下学习历程。Android系统的源代码数量非常庞大,这些代码主要分为4层,从低到高为Linux内核层、系统库层、应用程序框架层和

2021-06-23 23:11:53 689 3

原创 算法---二分查找(折半查找)

二分法查找,也称为折半法,是一种在有序数组中查找特定元素的搜索算法。[一维数组,折半查找]假如有一组数为3,12,24,36,55,68,75,88要查给定的值24.可设三个变量front,mid,end分别指向数据的上界,中间和下界,mid=(front+end)/2。开始令front=0(指向3),end=7(指向88),则mid=3(指向36)。因为a[mid]>x,故应在前半段中查找。令新的end=mid-1=2,而front=0不变,则新的mid=1。此时x>a[mid],故

2021-04-06 14:51:31 1259

原创 指针数组、数组指针

在C语言和C++等语言中,数组元素全为指针变量的数组称为指针数组。指针数组中的元素都必须具有相同的存储类型、指向相同数据类型的指针变量。指针数组比较适合用来指向若干个字符串,使字符串处理更加方便、灵活。数组指针 是指向数组首元素的地址的指针,其本质为指针(这个指针存放的是数组首地址的地址,相当于2级指针,这个指针不可移动);指针数组是数组元素为指针的数组,其本质为数组。数组指针 只是一个指针变量,是C 语言里专门用来指向二维数组的,它占有内存中一个指针的存储空间。指针数组是多个指针变量,以数组

2021-04-01 22:36:29 495

原创 C、java内存分析

1、在C语言里面,内存主要分为两大块:code area、data area。code area就是代码区,特点是在程序运行过程中地址是不会发生改变的。data area分为静态区,堆区,栈区。静态区静态区就是保存各静态变量和常量的。堆堆是使用malloc、calloc、realloc内存动态分配函数以后,分配到的内存。堆是小端存储,存储进来的变量地址大小是升序,越到后面,开辟的地址值越大。栈栈是保存零时变量的区域,但是大小只有2M,所以并不能保存过多的数据。栈内存,先进后出,是大端存储

2021-03-21 16:18:08 235

原创 指针小总结

1,指针存储的是内存地址,2,在32位系统中指针的大小是4字节,在64位系统中指针的大小是8字节,这是固定的,不管是int指针还是char指针,还是什么类型的二级指针,都是这个大小。3,指针的类型在前。int *a;4,指针指向的类型在后。int aa=10;int *a=&aa;5,数组的指针,可以进行指针的++,–运算。数组名就是数组名取地址,也就是数组的指针就是数组在内存中存储的起始地址。6,数组指针,指针数组。...

2021-03-07 22:45:23 70

原创 android 关键网址收藏,国内镜像下载gradle配置,腾讯站点,阿里云站点下载

Android studio各版本官方下载地址:https://developer.android.google.cn/studio/archiveAndroid studio稳定版下载地址:https://developer.android.google.cn/studioAndroid开发中文站点:https://developer.android.google.cn/Android studio排错:http://tools.android.com/build/studio...

2021-02-19 09:34:49 2935 1

原创 C#语言接入Sonar代码静态扫描

C#语言接入Sonar代码静态扫描相较于Java、Python来说,相对麻烦一些。Sonar检测C#代码时需要预先编译,而且C#代码必须用MSbuid进行编译,如果需要使用SonarQube对C#进行代码质量分析,则需要下载Sonar-Scanner-MSBuild和MSBuild,其中要求MSBuild在V14.0以上。https://www.cnblogs.com/jinjiangongzuoshi/p/11648785.htmlhttps://mp.weixin.qq.com/s/Jj6lzZmu

2021-01-22 10:19:36 1196

原创 视频编解码传输基础

视频传输通话流程:手机摄像头的数据格式是nv21,数据为什么采用yuv而不采用rgb呢?argb表示像素需要的字节更大。每个像素都需要4字节表示亮度a,4x3字节表示rgb三色值,一共需要4x4=16字节;YUV方式,同样还是用4个字节表示亮度,剩下一个字节表示u,一个字节表示v,这样就表示出了这个像素,只需要4+1+1=6字节。因为人眼对亮度是比较敏感的,所以要尽可能的保存更多的亮度的值来精确表达亮度的实际值,人眼对色度不太敏感,所以可以降低色度的存储的数据,不用那么精确的表达色度的实际值,人眼

2021-01-14 11:44:01 693

原创 视频分析原理

目录标题DSP芯片原理讲解MediaCodec编码机制MediaCodec解码H264、H265原理,深度解析视频解码流程H265硬解码兼容问题DSP芯片原理讲解MediaCodec编码机制MediaCodec解码H264、H265原理,深度解析视频解码流程H265硬解码兼容问题...

2021-01-06 14:31:48 3083

原创 音视频基础1:H264、H265、MPEG-4、VP8、VP9编码基础知识

这里写自定义目录标题个人认知,程序员职业发展出路个人认知,程序员职业发展出路随着5G时代的到来,音视频成功走上风口,程序员如何发展,其实不管是入门级选手还是30岁,35岁中年危机的IT开发者,异或是更年长的IT开发者,都会有自己的职业发展路线。总结来说,目前大部分人的职业路线,职业出路,或者说职业遇到瓶颈以后解决方案可以总结为一下几种,程序员是天天解决问题,天天给各种问题解决方案的人,对于自己的职业当然也得给出最好的解决方案:,转行;最简单粗暴的,从写代码的工作变换到开个杂货铺,开个烧烤摊,或者考个

2021-01-04 19:07:06 6857 2

原创 视频编码原理基础知识、面试题整理

这里写自定义目录标题面试题1,宏块越大视频大小越大还是越小?视频编码的宏块越大,视频大小就会越小,对于H264编码来说,宏块大小是从4X4–16X16个像素,所以,当16X16的宏块越多,视频文件就会越小,当4X4的宏块越多,视频文件就会越大。面试题2,H264和H265对比。1,H265压缩性能高,没有牺牲视频画面质量。这就决定了它文件大小小,网络传输快,视频画面质量高。也就是说在提高压缩性能的同时提高了画面质量,那么H265是怎么做到的呢?H265的宏块大小是从4X4到64X64个像素,那么

2021-01-04 18:24:02 1528

原创 C#学习入门

这里写目录标题学习方法c#基础专业术语开发1. 使用记事本编程2. IDEdemoC# 程序的基本结构(构成)和注释学习方法学习一门新的语言,有几个注意点,可以迅速学习好这门语言,就算是0基础的门外汉,非计算机人员也可以。 1)英文能力 可以看懂基本的英文单词,可以把开发中需要用到的词语转换为英文。 2) 代码量(500行) 7遍疗法 每天坚持500行以上的代码量,不懂的部分,生疏的部分,手敲7遍。 3)自学能力 API 可以去查阅API文档。靠文档记忆,而不是靠

2020-10-22 12:02:36 272

原创 unity3d开发环境搭建,Android插件安装

这里写目录标题背景unity3d环境搭建安装Android插件支持。相关博客:2背景最近做VR和AR的项目,需要用到unity,需要把unity项目打包发布到Android平台,也就是打包出一个apk。之前对unity一点也不了解,走了一些弯路,迷茫了一阵,现在把unity3d环境搭建及安装,安装Android平台插件,做个简单整理,后续,整理一套系统的unity的学习笔记出来,记录自己的学习历程,方便自己复习也帮助他人。unity3d环境搭建下载地址:unity 中国官网: https://un

2020-10-19 10:35:30 2138

原创 MySQL 中文查询条件返回结果为空 查询结果为空

问题:最近在做一个APP,APP要通过jdbc直接调用SQL访问MySQL的数据库,其他问题先不说,遇到一个奇怪的现象,同样一条SQL语句,用Navicat去执行的时候,就可以查出来数据库记录数据,但是放在代码里,这条SQL语句就查不出来数据,显示查询结果是null,啊哟,神奇了,排查bug经过:1.项目中为了效率使用了hutool作为数据库连接池,难道是这个第三方库有bug,不可能啊,这种大型的已经使用这么长久的库怎么会出现这种低端问题,但是还是更新到了最新版本,没卵用,不是这里的问题。2.难道是

2020-10-13 20:26:59 2953

原创 Android中绘制图表的几个优秀开源库

现在又个需求要绘制一个3d的饼图,找了很多第三方开源库,略微总结一下。1.j4lChartAndroid.jarhttp://www.java4less.com/charts/chart.php?info=download2.HelloCharts for Androidhttps://github.com/jakezhang1990/hellocharts-android3.XCL-Chartshttps://github.com/jakezhang1990/XCL-Charts-mast

2020-10-09 15:52:25 1180

原创 面试问题单--持续更新。。。

总结一波面试题,持续更新,方便自己也帮助别人。。。。目录问题1:问题1:Activity的启动模式,生命周期,两个Activity跳转的生命周期,如果一个Activity跳转到另一个Activity再按下Home按键,再回到Activity的生命周期是什么?启动模式:生命周期:两个Activity跳转的生命周期,如果一个Activity跳转到另一个Activity的生命周期:MainActivity跳转到MainActivity2,然后按Home按键,再回到Activity:.

2020-09-14 10:46:49 135

原创 H264/H265码流类型

文章目录H.264码流H.264码流格式Annex BAVCCH.265码流H.264码流H264中,NALU类型1-5为视频帧,其余则为非视频帧。在解码过程中,我们只需要取出NALU头字节的后5位,即将NALU头字节和0x1F进行与计算即可得知NALU类型,即:NALU类型 = NALU头字节 & 0x1F type=5表示关键帧I帧,6表示sps,7表示pps。H.264码流格式H.264标准中指定了视频如何编码成独立的包,但如何存储和传输这些包却未作规范,虽然标准中包含了一个A

2020-09-01 20:37:18 6101

原创 硬件编解码,软件编解码,H.263、H.264、H.265/HEVC概念

概念硬件编解码通常称为硬编码硬解码,软件编解码称为软编码软解码。软编码软解码主要依赖的是CPU资源,设备普通使用也是使用CPU做计算,所以开始编解码视频的时候CPU会飙升起来,发热就无法避免。硬编解码主要依赖的是GPU,这样就大大解放了CPU,性能上得到大大提升,在移动设备上主要使用的就是硬解码。在高分辨率视频流中也是使用硬件编码,现在主流是使用英伟达显卡。对视频数据编解码一般有两种方式:1、软件的方式。软编解码主要是通过X264,X265等软件编解码器对数据进行处理,优点是灵活,可以根据需要进

2020-09-01 10:31:25 11448

空空如也

空空如也

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

TA关注的人

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