自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(124)
  • 资源 (6)
  • 收藏
  • 关注

原创 如何使用ChatGPT制作一个休闲小游戏集合的网站?

使用chatgpt制作一个休闲游戏网站,网站模板使用ai制作。

2024-04-08 18:07:45 632

翻译 App、H5、PC应用多端开发框架Flutter 2发布

Google于2021年3月3日发布跨平台多端框架Flutter 2。针对web,移动和台式机构建的下一代Flutter。Flutter框架已经推出有两年了,但是之前一直在移动端App发力,慢慢发展到了PC端。在window电脑的应用程序和mac电脑的应用程序。现在Flutter 2 专门面向了web端(电脑浏览器网页、手机浏览器h5页面)、当然小程序这类框架慢慢兼容Flutter框架也会变成大势所趋。这对我们来说意味着什么?以后开发一套程序在多个平台上运行的理想,成为越来越可行越来越现

2021-03-04 12:25:38 1970 1

原创 开源维基百科文档系统mediawiki

MediaWiki 是使用 PHP 编写的免费开源 Wiki 系统。MediaWiki 已使用超过350种语言进行了本地化,其可靠性和强大的功能集为其赢得了庞大而充满活力的第三方用户和开发者社区。系统特点:记录所有的改动版本,能方便的查阅历史更新记录,这使得开放性编辑成为可能。可以自定义监视列表,针对监视指定页面的更改。允许使用模板,方便对相同内容的重复使用、更新。支持分类,并根据分类在不同的文章之间自动产生关联。允许每个用户自行选择系统外观和用户脚本。维基百科在国知道的少一些,

2021-03-02 13:47:14 1784

原创 图解AsyncTask

1.在UI线程使用可以更容易,执行后台操作和发布结果到UI线程。2.AsyncTask是一个帮助类是处理Thread和Handler的帮助类,不是线程框架。处理用时较少的操作(一般是几秒钟)。如果是比较耗时的操作建议使用java.util.conrurrent包处理。3.AsyncTask中的三个泛型分别表示:Params:发送给要执行任务的参数类型Progress:后台运算的进度类型Result...

2018-06-19 21:06:42 331

原创 glide源码解析之GlideModule

GlideModule是对glide全局配置相关的类,这里介绍相关配置的源码解析一般的用法是这样public class GlideConfiguration implements GlideModule {    @Override    public void applyOptions(Context context, GlideBuilder builder) {

2016-08-28 18:50:26 1732

原创 Glide源码之生命周期

glide是怎么和activity、fragment绑定声明周期的呢?咱们使用glide样例        RequestManager requestManager = Glide.with(mContext);        requestManager.load(url)                .diskCacheStrateg

2016-08-28 13:51:48 1977

原创 Handler源码解析三------ MessageQueue源码

Handler源码解析三------ MessageQueue源码Handler中相关的messageQueue,这里对其源码进行介绍本文是基于android api 23的源码,先上源码。共873行/* * Copyright (C) 2006 The Android Open Source Project * * Licensed under the Apache Lic

2016-08-22 01:51:29 780

原创 Handler源码解析二------- Looper源码

Handler源码解析二------- LooperHandler相关的线程处理,还有Looper、Message和MessageQueue,下面会一一介绍。本篇介绍Looper的源码分析的是android api23 的源码,先上全部源码,在一个一个方法介绍/* * Copyright (C) 2006 The Android Open Source Project

2016-08-22 00:06:40 282

原创 Handler源码解析

Handler 源码解析线上Handler类源码/* * Copyright (C) 2006 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in

2016-08-15 01:08:45 432

原创 android 列表优化

android的列表优化1.每个item重复使用的,基本初学者都已经了解了2.item中的图片一般都是经过压缩的,一般开发都是用图片组件直接套上去就用了,这个图片该怎么压缩呢?这个的话在图片组件中是可以设置图片相关的参数的,如对图片压缩   bitMap.compress(Bitmap.CompressFormat.JPEG, 100, baos);对图片设置  Bit

2016-08-12 14:07:11 394

原创 AsyncTask源码解析二-----工作线程

上一篇由于后面写的匆匆,没有把工作线程处理那部分写的详细。今天主要把工作线程相关的概念介绍一下,及他们在AsyncTask中的使用。1.ThreadFactory2.BlockingQueue3.LinkedBlockingQueue4.Executor5.ThreadPoolExecutor6.SerialExecutor7.WorkerRunnable8.C

2016-08-10 00:04:36 289

原创 AsyncTask源码解读

android AsyncTask源码学习,AsyncTask的使用与源码学习,android中UI线程和非UI线程相互通讯实战和学习

2016-08-07 01:25:32 423

转载 gradle报错

gradle编译脚本需要重新下载gradle问题使用gradlew来build项目时,总是需要下载gradle-2.8-all.zip。但是gradle-2.8-all.zip非常大,有60MB左右,而服务器又在国外,因此经常各种下载失败。从本地安装的方法如下:先下载gradle-2.8-all.zip包。把下载好的zip包放到{project.dir}\gra

2016-07-30 22:35:02 703

转载 Android源代码结构分析

Android源代码结构分析Google提供的Android包含了:Android源代码,工具链,基础C库,仿真环境,开发环境等,完整的一套。第一级别的目录和文件如下所示:[cpp] view plain copy----------------  ├── Makefile            全局的Makefi

2016-05-08 16:08:45 722

原创 android内存泄露总结

解决内存溢出方法:1.强引用导致内存不释放。    相关描述:1.强引用(正常赋值的)、软引用(高速缓存、可被回收)、弱引用(gc的时候回收,不影响原对象垃圾收集)    解决方法:找到强引用不释放的地方改成弱引用,leakcanary分析2.WebView是否会导致内存溢出会,见下面参考文章,WebView内存泄露3.内存分析工具ddms、mat分析(一)dd

2016-03-31 17:12:17 387

原创 android热补丁初探之二 热补丁分析对比

android热补丁初探之二 热补丁分析对比2015,年,各大国内互联网公司都开始研究热补丁技术,android热补丁技术层出不穷,下面是总结的热补丁的技术对比分析,主要针对以下三种类型:1.hotfix (QQ空间)2.andfix  (支付宝)3.DynamicAPK(携程)这三个都是国内的三家公司分享的开源技术。此篇文章主要集中前两种讲解以及和

2016-03-11 19:35:22 634

原创 android热补丁初探

android热补丁初探----HotFixDemo1.先来个代码结构2.热补丁的文章有好多了,我这里就不赘述了。来两个链接QQ空间 的链接https://mp.weixin.qq.com/s?__biz=MzI1MTA1MzM2Nw==&mid=400118620&idx=1&sn=b4fdd5055731290eef12ad0d17f39d4a&scene=1&sr

2016-02-26 14:44:57 602 1

原创 android canvas save 和 restore 用法

Android 中 Canvas中   canvas.save();和canvas.restore();的用法面试中遇到这个问题,就自己测试了一下下面是从其他博客转载过来的:自己照着实现了一下。这里canvas.save();和canvas.restore();是两个相互匹配出现的,作用是用来保存画布的状态和取出保存的状态的。这里稍微解释一下,

2016-02-19 14:59:56 503

转载 android 内存泄露

尊重原创作者,转载请注明出处:http://blog.csdn.net/gemmem/article/details/13017999此文承接我的另一篇文章:Android进程的内存管理分析 首先了解一下dalvik的Garbage Collection:如上图所示,GC会选择一些它了解还存活的对象作为内存遍历的根节点(GC Ro

2016-01-07 17:00:14 397

原创 android应用清除应用缓存原理

android应用清除应用缓存总结一般需要自己实现两个api1.获取缓存大小2.清除缓存缓存目录1.清除本应用内部缓存(/data/data/com.xxx.xxx/cache) 获取路径方法     context.getCacheDir().getAbsolutePath()2.清除本应用SharedPreference(/data/data/com.xxx.xxx/s

2015-12-31 11:46:16 1309

转载 清理和删除svn信息

svn信息是根据文件夹里面的 .svn 文件夹保存相关配置的,删除此文件夹即可去掉svn信息:linux下:find . -type d -name ".svn"|xargs rm -rf 或find . -type d -iname ".svn" -exec rm -rf {} /; windows下:1 复制项目文件夹,跳过隐藏文件(.svn一般是设

2015-12-30 10:16:15 372

原创 Android异步消息处理机制详解及源码分析

1 背景之所以选择这个知识点来分析有以下几个原因:逛GitHub时发现关注的isuss中有人不停的在讨论Android中的Looper , Handler , Message有什么关系。其实这个知识点对于Android初学者来说很常用,但是初学者可能前期一直处于会用不知其原理的阶段。这个知识点也是Android面试中一个高频问题。基于以上几点也得拿出来分析分析,该篇博客从实

2015-12-24 17:17:19 635

转载 android toast 时间

前言  Toast相信大家都不会陌生吧,如果对于Toast不甚了解,可以参考我的上一篇博客《Android:谈一谈安卓应用中的Toast情节》,里面有关于Toast基础比较详细的介绍。但是如果你想要看的是最原汁原味的Toast攻略,我非常建议你:出门右转,谷歌官网,据说是一个非常给力的地儿,一般人我还不告诉他呢。但是!如果官网的开发者指南都满足不了你的胃口的话,那你还是得准备点西瓜瓜子回来

2015-12-18 17:12:39 500

转载 android studio导入 so ,jar 文件。

环境为: Android Studio 1.0.2如果是jar文件的话,请直接拷贝jar文件到项目的libs文件夹下,然后运行:Sync Project with Gradle Files。如下图2中方式均可。一:或者:这2种方法均可。如何将so文件导入到android studio的项目中呢?需要在项目的目下

2015-12-08 18:30:09 310

转载 android Graphics(三):区域(Range)

我自己的一句警言,送给大家:想要跟别人不一样,你就要跟别人不一样。----- Harvic 相关文章:1、《android Graphics(一):概述及基本几何图形绘制》2、《android Graphics(二):路径及文字》3、《android Graphics(三):区域(Range)》4、《android Graphics(四):c

2015-08-04 21:28:34 347

转载 深入Log4J源码之Log4J Core

深入Log4J源码之Log4J Core毕业又赶上本科的同学会,还去骑车环了趟崇明岛,六月貌似就没消停过,不过终于这些事情基本上都结束了,我也可以好好的看些书、读些源码、写点博客了。Log4J将写日志功能抽象成七个核心类/接口:Logger、LoggerRepository、Level、LoggingEvent、Appender、Layout、ObjectRender。其类图如下:

2015-02-27 13:53:23 793

原创 java log4j日志热配置

log4j日志热配置有两种,一种是定时开线程去扫描日志文件有没有变化另一种是用事件去触发日志文件的变化log4j本身都支持这两种下面就把我写的代码贴上java project文件结构Log4jTimerUpdate.java这个是定时更新配置文件,也就是程序会自动扫描log4j配置文件package com.demo;import org

2015-02-06 15:22:03 851

转载 java发送http请求

package com.service; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.net

2015-01-08 11:36:20 513

转载 log4j输出多个自定义日志文件

og4j的强大功能无可置疑,但实际应用中免不了遇到某个功能需要输出独立的日志文件的情况,怎样才能把所需的内容从原有日志中分离,形成单独的日志文件呢?其实只要在现有的log4j基础上稍加配置即可轻松实现这一功能。  先看一个常见的log4j.properties文件,它是在控制台和myweb.log文件中记录日志:log4j.rootLogger=DEBUG, stdout, logfi

2015-01-06 19:25:48 494

原创 js日期比较【随手记录】

/**    *传过来两个字符串2015-1-5,2014-12-30 23:59:59格式     *返回true表示begin>end    */function dateCompare(begin, end){if(end.length > 10){ end=end.substring(0,10);}var beginArrs = begin.split("-

2015-01-06 17:45:57 405

转载 java删除文件和文件夹

以前在javaeye看到过关于Java操作文件的一篇文章,写的很好,但找了半天也没找到,就把找到底几篇文章整理一下,做个总结,算是一个学习备份…… 1,验证传入路径是否为正确的路径名(Windows系统,其他系统未使用)  Java代码  // 验证字符串是否为正确路径名的正则表达式  private static String matches = "[A-

2014-11-04 09:56:00 524

转载 java和xml相互转换,java bean转xml文件

一、前言。    最近正在做一个项目,根据需求计划需要一种 Object XML的工具,而JAXB就非常符合需求,于是以下是近天来的研究心得。二、JAXB技术介绍1.         什么是JAXB?    Java  Architecture for XML Binding (JAXB)是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。该过程中,

2014-11-02 11:43:35 2374

转载 spring的定时任务配置【收藏,已留备用】

spring的定时任务配置分为三个步骤:1、定义任务2、任务执行策略配置3、启动任务1、定义任务class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">executefalse2、任务执行策略配置

2014-11-02 11:25:04 466

转载 java Response详解

今天在来看一下Response容器的相关知识,其实这篇blog早就应该编写了,只是最近有点忙,所以被中断了。下面我们就来看一下Response容器的相关知识吧。Response和我们即将在后面说到的Request容器是一一对应的,他是web容器在用户每次请求服务端的时候,创建的一对容器对象,Response容器是服务端返还给客户机的一个响应内容对象容器,比如说:响应头,响应行,实体数据等信息,而R

2014-11-01 16:12:04 13217

原创 eclipse反编译插件jad myeclipse2013实测

先来个附件jad.zip

2014-09-14 19:03:02 1184 2

转载 ava多线程-工具篇-BlockingQueue

前言:     在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。认识BlockingQueue阻塞队列,顾名思义,首先它是一个队列,而一个队列

2014-07-31 17:24:23 636

转载 java 装饰模式---java io使用的模式

装饰模式又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。装饰模式的结构  装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任。换言之,客户端并不会觉得对象在装饰前和装饰后有什么不同。装饰模式可以在不使用创造更多子类的情况下,将对象的功能加以扩展。  装饰模式的类图如下:    在装饰模式中的角色有:  ●

2014-07-28 17:55:06 600

转载 java架构师喜欢问的问题

JDK1.5新增的功能   ==>>>字符流和字节流的区别,使用场景,相关类   ==>>>线程安全的概念,实现线程安全的几种方法   ==>>>抽象类和接口的区别,使用场景   ==>>>hash算法的实现原理,hashcode的实现原理   ==>>>error和exception的区别,RuntimeException和非RuntimeException的区别   ==>

2014-07-28 16:44:18 585

原创 glassfish的安装与部署ubuntu

开发一直用的是tomcat,公司的服务器用的是glassfish。于是就研究了

2014-07-04 11:10:35 2082

转载 Apache 配置 java web tomcat

1>修改 httpd.conf 文件中:LoadModule proxy_module modules/mod_proxy.soLoadModule proxy_connect_module modules/mod_proxy_connect.soLoadModule proxy_http_module modules/mod_proxy_http.soLoadModule pro

2014-06-28 23:27:13 573

盲盒交友公众号版本3款合集.zip

脱单盲盒、盲盒交友 包含 盲盒免公众号运营版.zip 脱单盲盒_度小满支付.zip 微信盲盒_微信支付.zip 微信盲盒.zip 三款程序源码,度小满支付和微信支付是同一源码两中支付方式,源码提供学习交流,如果需要上线部署的话,需要有服务器、域名等。使用微信支付需要开通公众号开通支付权限才可以。

2021-12-14

android热补丁demo

android 热补丁demo,hotfix 实现方式

2016-02-26

android 中canvas的save和resotre用法

android 中canvas的save和resotre用法 测试代码

2016-02-19

android中canvas的save和restore用法

android中canvas的save和restore用法 源码 测试代码

2016-02-19

Myeclipse反编译插件jad

eclipse 反编译插件jad 教程在 http://blog.csdn.net/methods2011/article/details/39271877

2014-09-14

java面试题静态加载顺序构造方法

http://blog.csdn.net/methods2011/article/details/8584463 Java中的继承与静态static等的执行先后顺序的面试题 java面试题静态加载顺序构造方法 继承与static 面试题目如下:请写出程序执行完成之后的结果。 package extend; public class X { Y y=new Y(); static{ System.out.println("tttt"); } X(){ System.out.println("X"); } public static void main(String[] args) { new Z(); } } class Y{ Y(){ System.out.println("Y"); } } class Z extends X{ Y y=new Y(); static{ System.out.println("tt"); } Z(){ System.out.println("Z"); } } 先不告诉最后结果,我们先来分析下。一步一步推出结果。 1.首先分析一段程序的执行后的结果,我们得先找到程序的入口,然后才能着手分析。 也就是main()方法。 2.我们发现main()方法在X类中,要执行main()方法,还得先将X类加载到内存中。 3.X类加载完成后,会做什么事情呢?别急,先来看看static的作用,不知道吧。告诉你:static就是在类被第一次加载的时候执行,以后就不再执行。 4.知道了static的作用,那么X类被加载,那么就会先执行X类的静态属性和静态语句块(static),执行先后顺序看谁在前面就先执行谁。只在此时执行,以后都不会。 5.所以一个输出结果为tttt,没问题了吧。 6.X类的static语句块执行完了,就该执行main()方法啦。 7.new Z();此方法被执行。 8.既然new Z();那么Z类就要被加载。因为Z类继承X类。所以必须先加载X类才行。因为X类已经被加载。所以此时不用再加载X类了。Z类加载好了就要执行Z类的static语句块 9.那么就会打印出tt了吧。 10.都加在完后就要实例化对象了。 11.实例化Z之前,还得先实例化X对吧。因为子类的构造方法都会调用父类的构造方法。 12.那就先实例化X类吧。 13.执行X方法前还得先初始化对不。也就是获取所有属性。那么X类的属性Y就会获取。 14.即X类的Y y=new Y();要被执行。也就是会打印Y。 15.接着执行System.out.println("X"); 16.然后就是执行Z的构造方法 17.同样先获取Z的属性Y y=new Y();打印Y。 18.再执行System.out.println("Z"); 整个过程就是这样了。现在知道结果了吧: tttt tt Y X Y Z http://snow4909.diandian.com/post/2013-02-17/40049419937 记住,面试有可能会标出一些语句的,让你选择这些语句的执行顺序。不过只要知道原理,就没什么难的了。 执行先后顺序: 1、类加载到内存时static 加载进内润 2、调用类的构造方法时先调用父类的构造方法,在调用子类的构造方法 3、类初始化时,先初始化类的属性成员,在执行构造方法。

2013-02-17

空空如也

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

TA关注的人

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