java原理
文章平均质量分 89
HarmonyOS Coder369
这个作者很懒,什么都没留下…
展开
-
GPUImage工作原理
本篇主要讲解GPUImage底层是如何渲染的,GPUImage底层使用的是OPENGL,操控GPU来实现屏幕展示由于网上OpenGL实战资料特别少,官方文档对一些方法也是解释不清楚,避免广大同学再次爬坑,本篇讲解了不少OpenGL的知识,并且还讲解了花了大量时间解决bug的注意点GPUImage工作原理概论GPUImage最关键在于GPUImageFramebuffer这个类,这个类会保存当前处理好的图片信息。 GPUImage是通过一个链条处理图片,每个链条通过target连接,每个targ原创 2021-10-02 17:28:22 · 523 阅读 · 0 评论 -
java synchronized详解
Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问object的一个synchroni原创 2016-09-04 22:52:19 · 320 阅读 · 0 评论 -
Activity、Task、应用和进程
很想弄清楚启动一个Activity和Task(任务)的关系,网上也有很多相关资料,由从源码来具体分析的,也有针对launchmode来分析,但都不是自己的,理解起来总不是那么容易,为此,尝试着自己去理解其中的逻辑。不过事先需要弄清楚两个问题:谁负责管理Activity?Android的framework框架中采用C/S的方式实现由后台服务ActivityManagerService原创 2016-08-13 20:29:55 · 1202 阅读 · 0 评论 -
Activity4种启动模式对比
表1-1 Activity4种启动模式对比区别是否允许多个实例如何决定所属Task是否每次都生成新实例是否允许其他Activity存在于本Task内standard可被多次实例化,同一个Task的不同的实例可位于不同的Task中,每个Task也可包含多个实例存放于Start Activity()的Task。除非设置FLAG_ACTIVIT原创 2016-08-13 20:11:23 · 619 阅读 · 0 评论 -
请描述下Activity的生命周期
1. 创建 onCreate - 启动onStart – 开始 onResume – 暂停 onPause – 结束 onStop – 销毁onDestroy2. 答:你自己写的Activity会按需要重载这些方法,onCreate是免不了的,在一个Activity正常启动的过程中,他们被调用的顺序是 onCreate -> onStart -> onResume, 在Activity被原创 2016-08-13 19:37:36 · 5195 阅读 · 0 评论 -
父Activity(A)启动,点击启动子Activity(B),子Actvity退出,返回父Activity调用顺序如下
必调用的三个方法:onCreate() –> onStart() –> onResume(),用AAA表示(1)父Activity(A)启动,点击启动子Activity(B),子Actvity退出,返回父Activity调用顺序如下:AAA –> onFreeze() –> onPause() –> B onCreate() -> B onStart() -> B onResume –>原创 2016-08-13 19:35:51 · 2334 阅读 · 0 评论 -
android国内一线互联网公司内部面试题库
以下面试题来自于百度、小米、乐视、美团、58、猎豹、360、新浪、搜狐内部题库熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。一、java基础1.接口的意义(百度)规范、扩展、回调2.抽象类的意义(乐视)为其子类提供一个公共的类型 封装子类中得重复内容 定义抽象方法,子类虽然有不同的实现 但是定义是一致的3.内部类的作用(百度,乐视)内部类可以用多个实原创 2016-08-13 19:26:24 · 3005 阅读 · 0 评论 -
Android 70道面试题汇总不再愁面试
本文为开发者奉献了70道经典Android面试题加答案--重要知识点几乎都涉及到了,你还等啥,赶紧收藏吧!! 1. 下列哪些语句关于内存回收的说明是正确的? (b) A、 程序员必须创建一个线程来释放内存 B、 内存回收程序负责释放无用内存 C、 内存回收程序允许程序员直接释放内存 D、 内存回收程序可以在指定的时间释放内存对象 2. 下面异常是属于Run原创 2016-08-13 19:24:35 · 1401 阅读 · 0 评论 -
Android之NDK开发
一、NDK产生的背景 Android平台从诞生起,就已经支持C、C++开发。众所周知,Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第三方应用都必须使用Java语言。但这并不等同于“第三方应用只能使用Java”。在Android SDK首次发布时,Google就宣称其虚拟机Dalvik支持JNI编程方式,也就是第三方应用完全可以通过JNI调用自己的C动态原创 2016-08-13 19:23:40 · 448 阅读 · 0 评论 -
Android中的动画类型有两种,一种是Tween动画、还有一种是Frame动画
Android中的动画类型有两种,一种是Tween动画、还有一种是Frame动画。Tween动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化;另一种Frame动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。下面将一一详细介绍: 本博客参考自网络,结合自己一点理解,实为学习之用,不为其他目的。一,Tween动画 又称“补间动原创 2016-08-13 19:17:49 · 1220 阅读 · 0 评论 -
Android中如何在应用A中启动或安装应用B
有时候一个应用需要启动另外一个应用来完成操作,比如在某些应用中打开闹钟,相机,日历等等。启动或安装相应的应用的方法:Step1:判断是否安装目标应用。只要知道目标应用的安装包名就可以通过判断"/data/data/packagename"是否存在来实现。[java] view plain copy/** * 判断是否安装目标应原创 2016-08-13 19:16:02 · 427 阅读 · 0 评论 -
Android 应用程序之间数据共享
Android是如何实现应用程序之间数据共享的?一个应用程序可以将自己的数据完全暴露出去,外界根本看不到,也不用看到这个应用程序暴露的数据是如何存储的,或者是使用数据库还是使用文件,还是通过网上获得,这些一切都不重要,重要的是外界可以通过这一套标准及统一的接口和这个程序里的数据打交道,例如:添加(insert)、删除(delete)、查询(query)、修改(update),当然需要一定的权限才可原创 2016-08-13 19:14:13 · 6919 阅读 · 0 评论 -
实现滑动到底部时上拉加载更多的功能的listview
先看效果图:[java] view plain copy print?/** * 继承自SwipeRefreshLayout,从而实现滑动到底部时上拉加载更多的功能. */ public class RefreshLayout extends SwipeRefreshLayout implements原创 2016-08-28 15:50:37 · 2322 阅读 · 0 评论 -
内存溢出 out of memory 内存泄露 memory leak ;memory leak会最终会导致out of memory!
内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。memory leak会原创 2016-09-05 10:21:28 · 604 阅读 · 0 评论 -
BAT笔试
都是一些非常非常基础的题,是我最近参加各大IT公司笔试后靠记忆记下来的,经过整理献给与我一样参加各大IT校园招聘的同学们,纯考Java基础功底,老手们就不用进来了,免得笑话我们这些未出校门的孩纸们,但是IT公司就喜欢考这些基础的东西,所以为了能进大公司就~~~当复习期末考吧。花了不少时间整理,在整理过程中也学到了很多东西,请大家认真对待每一题~~~ 下面都是我自己的答案非官方,仅供参考,如原创 2016-09-04 23:01:11 · 1954 阅读 · 0 评论 -
Java transient关键字使用小记
Java transient关键字使用小记 哎,虽然自己最熟的是Java,但很多Java基础知识都不知道,比如transient关键字以前都没用到过,所以不知道它的作用是什么,今天做笔试题时发现有一题是关于这个的,于是花个时间整理下transient关键字的使用,涨下姿势~~~好了,废话不多说,下面开始:1. transient的作用及使用方法原创 2016-09-05 16:18:54 · 436 阅读 · 0 评论 -
spring boot与spring mvc的区别
Spring 框架就像一个家族,有众多衍生产品例如 boot、security、jpa等等。但他们的基础都是Spring 的 ioc和 aop ioc 提供了依赖注入的容器 aop ,解决了面向横切面的编程,然后在此两者的基础上实现了其他延伸产品的高级功能。Spring MVC是基于 Servlet 的一个 MVC 框架 主要解决 WEB 开发的问题,因为 Spring 的配置非常复杂,各种XML...转载 2018-04-07 11:36:38 · 726 阅读 · 0 评论 -
Android总结篇系列:Android广播机制----学习
Android总结篇系列:Android广播机制1.Android广播机制概述Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器)。广播作为Android组件间的通信方式,可以使用的场景如下:1.同一app内部的同一组件内的消息通信(单个或多个线程之间);2.同一app内部的不同组件之间的消息通信(单个进程);3.同...转载 2018-04-07 11:26:27 · 362 阅读 · 0 评论 -
RecyclerView实现多种item布局-----学习
RecyclerView实现多种item布局 在项目中列表是基本都会用到的,然而在显示列表时,我们需要的数据可能需要不止一种item显示,对于复杂的数据就需要多种item,以不同的样式显示出来,这样效果是很棒的,我们先看一下效果我们可以看到,这个Re...转载 2018-04-07 11:05:26 · 689 阅读 · 0 评论 -
Glide使用学习
Glide简介An image loading and caching library for Android focused on smooth scrolling一个专注于流畅滑动的图片加载和缓存库优势其实现在,图片加载和缓存的库已经超级多了,Glide是目前谷歌官方推荐的加载库,它有一个比较牛的特点就是支持GIF格式的图片播放,目前的人气也超级高!!另外还可以设置渐变的加载效果,控制相关缓存...转载 2018-04-07 11:01:12 · 308 阅读 · 0 评论 -
学习Service全部内容
转载请注明出处(万分感谢!): http://blog.csdn.net/javazejian/article/details/52709857 出自【zejian的博客】 Service全部内容基本会在本篇涉及到,我们将围绕以下主要知识点进行分析:Service简单概述Service在清单文件中的声明Service启动服务实现方式及其详...转载 2018-04-07 10:50:36 · 531 阅读 · 0 评论 -
Handler的运行机制
Handler的运行机制Handler的作用:当我们需要在子线程处理耗时的操作(例如访问网络,数据库的操作),而当耗时的操作完成后,需要更新UI,这就需要使用Handler来处理,因为子线程不能做更新UI的操作。Handler能帮我们很容易的把任务(在子线程处理)切换回它所在的线程。简单理解,Handler就是解决线程和线程之间的通信的。Handler的使用使用的handler的两种形式: 1.在...原创 2018-04-07 10:42:41 · 403 阅读 · 0 评论 -
AIDL使用以及IPC原理分析(进程间通信)
AIDL使用以及IPC原理分析(进程间通信)概要为了大家能够更好的理解android的进程间通信原理,以下将会从以下几个方面讲解跨进程通讯信:1. 必要了解的概念2. 为什么要使用aidl进程间通信3. 可能遇到的问题以及解决办法4. aidl的使用,通过android提供的aidl实现一个进程间通信5. 不使用aidl,手动编写Binder实现进程间通信6. 分析aidl的原理,梳理andrio...原创 2018-04-07 10:40:51 · 361 阅读 · 0 评论 -
内存泄露
内存泄露Android应用的内存泄露,其实就是Java虚拟机的堆内存泄漏.转载出处http://blog.csdn.net/ccj6591.知识储备1.Java内存模型 相关内存对象模型,参照博客精讲Java内存模型1) 寄存器(register)。这是最快的保存区域,这是主要由于它位于处理器内部。然而,寄存器的数量十分有限,所以寄存器是需要由编译器分配的。我们对此没有直接的控制权,也不可能在自己...转载 2018-04-09 23:09:12 · 1277 阅读 · 0 评论 -
深入浅出 Retrofit(一)
android 开发中,从原生的 HttpUrlConnection 到经典的 Apache 的 HttpClient ,再到对前面这些网络基础框架的封装,比如 Volley 、 Async Http Client ,Http 相关开源框架的选择还是很多的,其中由著名的 Square 公司开源的 Retrofit 更是以其简易的接口配置、强大的扩展支持、优雅的代码结构受到大家的追捧。1.1原创 2017-05-31 08:57:16 · 546 阅读 · 0 评论 -
校园WiFi客户端(Android版本0.9版)
忙完事情,难得有自己休息时间;专心开发个轻量APP郑重声明:有同学问:“用楼主的app输入用户名密码,会被后台发一份到楼主的服务器吗?”回复:没有的,有考虑这种担心,可能大家会觉得不安全。如果大家还是不放心,可以把整个APP的源码共享出来。代码里没有留后门,也没有非法记录用户名和密码的功能。希望最终可以把APP(包括源码)移交给信息中心官方维护,方便Andr原创 2017-04-17 15:22:59 · 1571 阅读 · 0 评论 -
CentOS下Nagios的安装与配置(下半篇)
八、查看初步配置情况8.1 启动完成之后,登录Nagios Web监控页http://192.168.1.108/nagios/ 查看相关信息。8.2 点击左面的Current Status -> Hosts 可以看到所定义的三台主机已经全部UP了。8.3 点击Current Status -> Services 查看服务监控情况。看到Nagios-Li原创 2016-12-04 11:51:56 · 730 阅读 · 0 评论 -
Hadoop安装配置(VMware + CentOS 6.5 64位)
环境系统环境:VMware + CentOS 6.5 64位。Hadoop版本:基于原生 Hadoop 2,可适合任何 Hadoop 2.x.y 版本,本文以Hadoop 2.6.0 (stable) 为例。创建hadoop用户创建新用户hadoop(推荐) :sudo useradd -m hadoop -s /bin/bash原创 2016-12-04 11:33:46 · 1250 阅读 · 0 评论 -
下拉刷新、上拉加载更多控件实现原理及解析
效果预览接受的建议,来一个动态图,方便大家知道这是个什么东西。demo动机项目中,需要一个支持任意View的下拉刷新+上拉加载控件,GitHub上有很多现成的实现,如Android-PullToRefresh,android-Ultra-Pull-To-Refresh等,这些Library都非常优秀,但是Android-PullToRefresh已经不在维护了,转载 2016-08-28 15:46:25 · 976 阅读 · 0 评论 -
View树的绘图流程
整个View树的绘图流程是在ViewRoot.java类的performTraversals()函数展开的,该函数做的执行过程可简单概况为 根据之前设置的状态,判断是否需要重新计算视图大小(measure)、是否重新需要安置视图的位置(layout)、以及是否需要重绘 (draw),其框架过程如下:转载 2016-08-28 15:35:17 · 1034 阅读 · 0 评论 -
蓝牙----Android的蓝牙开发
此例子基于 Android demo对于一般的软件开发人员来说,蓝牙是很少用到的,尤其是Android的蓝牙开发,国内的例子很少 Android对于蓝牙开发从2.0版本的sdk才开始支持,而且模拟器不支持,测试至少需要两部手机,所以制约了很多技术人员的开发; 鉴于很多开发人员现在也有蓝牙开发的需求,也为了大家少走些弯路,先将我积攒的一点点在Android蓝牙开原创 2016-06-23 09:23:39 · 482 阅读 · 0 评论 -
java反射详解
本篇文章依旧采用小例子来说明,因为我始终觉的,案例驱动是最好的,要不然只看理论的话,看了也不懂,不过建议大家在看完文章之后,在回过头去看看理论,会有更好的理解。下面开始正文。【案例1】通过一个对象获得完整的包名和类名?123456789101112131415package Refl原创 2016-06-30 14:38:56 · 368 阅读 · 0 评论 -
Android 框架练成 教你打造高效的图片加载框架
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/41874561,本文出自:【张鸿洋的博客】1、概述优秀的图片加载框架不要太多,什么UIL , Volley ,Picasso,Imageloader等等。但是作为一名合格的程序猿,必须懂其中的实现原理,于是乎,今天我就带大家一起来设计一个加载网络、本地的图片框架。有人可能会转载 2016-06-30 13:24:42 · 661 阅读 · 0 评论 -
nagios邮件告警设置方法成功版本
nagios邮件告警设置方法成功版本方法/步骤1yum remove sendmail建议先卸载掉系统自带的sendmail,改用postfix来作为邮件告警发出的客户端步骤阅读2并用rpm -qa | grep sendmail来确认sendmail已经卸载步骤阅读3ser原创 2016-06-30 13:09:09 · 2232 阅读 · 0 评论 -
设计模式 ----命令模式 之 管理智能家电
继续设计模式哈,今天带来命令模式,二话不说,先看定义:定义:将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。这尼玛定义,看得人蛋疼,看不明白要淡定,我稍微简化一下:将请求封装成对象,将动作请求者和动作执行者解耦。好了,直接用例子来说明。需求:最近智能家电很火热啊,未来尼玛估计冰箱都会用支付宝自动买东西了,,,,假设现在有电视、电脑、电转载 2016-06-29 11:33:35 · 714 阅读 · 0 评论 -
设计模式---单例模式
继续设计模式,这个模式用得应该很频繁啊,而且也比较简单,如果现在你还不能纸笔随手写个单例出来,你就得加油了哈~直接介绍几种线程安全的且我觉得还比较不错的方式:1、是不是号称恶汉,就是类加载就初始化了[java] view plain copyprint?package com.zhy.pattern.singlton; public c转载 2016-06-29 09:38:18 · 396 阅读 · 0 评论 -
设计模式---工厂模式
今天继续设计模式之旅,给大家带来工厂模式,简单列一下这个模式的家族:1、静态工厂模式2、简单工厂模式3、工厂方法模式4、抽象工厂模式是不是觉得,我勒个去,这工厂还能列出这么多分类,哈哈,下面开始各个击破。1、静态工厂模式这个最常见了,项目中的辅助类,TextUtil.isEmpty等,类+静态方法。下面开始详细介绍:略。2、简单工厂模式下面开始谈谈卖肉夹馍,最近转载 2016-06-29 09:19:56 · 304 阅读 · 0 评论 -
设计模式---观察者模式
先来看看观察者模式的定义:定义了对象之间的一对多的依赖,这样一来,当一个对象改变时,它的所有的依赖者都会收到通知并自动更新。好了,对于定义的理解总是需要实例来解析的,如今的微信服务号相当火啊,下面就以微信服务号为背景,给大家介绍观察者模式。看一张图:其中每个使用者都有上图中的3条线,为了使图片清晰省略了。如上图所示,服务号就是我们的主题,使用者就是观察者。现在我们明确下功能转载 2016-06-27 14:22:20 · 360 阅读 · 0 评论 -
设计模式一 策略模式
今天不想写代码,给大家带来一篇设计模式的文章,帮助大家可以把系统组织成容易了解、容易维护、具有弹性的架构。先来看看策略模式的定义:策略模式(Strategy Pattern):定义了算法族,分别封装起来,让它们之间可相互替换,此模式让算法的变化独立于使用算法的客户。好了,对于定义,肯定不是一眼就能看明白的,不然这篇文章就收尾了,对于定于大家简单扫一眼,知道个大概,然后继续读下面的文章,转载 2016-06-27 14:10:59 · 355 阅读 · 0 评论 -
Android 屏幕适配方案
概述dp vs 百分比百分比的引入引入自动生成工具参考链接转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/45460089;本文出自:【张鸿洋的博客】1、概述大家在Android开发时,肯定会觉得屏幕适配是个尤其痛苦的事,各种屏幕尺寸适配起来蛋疼无比。如果我们换个角度我们看转载 2016-06-27 13:51:38 · 326 阅读 · 0 评论