自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(96)
  • 资源 (3)
  • 收藏
  • 关注

原创 JDK1.8Serializable接口详解

java.io.Serializable接口是一个标志性接口,在接口内部没有定义任何属性与方法。只是用于标识此接口的实现类可以被序列化与反序列化。一、如何让某些属性不参与序列化与反序列化的过程?如果一个属性被transient关键字修饰,那么此属性就不会参与对象序列化与反序列化的过程。二、类的属性发生了增减那么反序列化时会有什么影响?调用反序列化的方法,使用删除name属性之前的animal.dat文件进行反序列化,运行结果表时还是能正常的反序列化。由此可知,类的属性的增删并不能对对象的反序

2020-05-10 09:52:06 1605 1

原创 Android老版本httpclient高版本兼容

Android 6.0 版本已移除对 Apache HTTP 客户端的支持Android 6.0 版本移除了对ApacheHTTP客户端的支持。如果您的应用使用该客户端,并以 Android 2.3(API 级别为9)或更高版本为目标平台,请改用 HttpURLConnection 类。此API效率更高,能够通过透明压缩和响应缓存减少网络使用,并可最大限度降低耗电量。要继续使用 Apache...

2020-01-09 15:46:27 1241

转载 安卓开发中非常炫的效果集合

所有效果Dome下载地址:https://github.com/20994842/A-collection-of-Android-development-very-dazzling-effect1.很简单却很酷的粒子破碎效果介绍:实现思路1.新建一个 BeanParticle,表示一个粒子对象;新建一个 ViewExplosionField作为画布用来显示破碎的粒子;新建一...

2019-12-25 15:46:04 861 1

原创 invalidate和requestLayout的区别

invalidate和requestLaoyout都是刷新View用的,下面这张图一目了然表示他们的区别此外invalidate与postInvalidate两者的区别也很重要:invalidate是在主线程调用,postInvalidate在非主线程中调用...

2019-09-05 15:42:25 440

原创 FragmentPagerAdapter和FragmentStatePagerAdapter基本用法与区别

使用ViewPager+fragment的时候,经常使用下面几种方式ViewPager viewPager = findViewById(R.id.viewPager);// 方式一viewPager.setAdapter(new PagerAdapter() { private String mTitles[] ; private List<Vie...

2019-09-05 15:26:26 1492

原创 在应用内打开另一个app的指定页面

方案 一 此方案需要跳转的对应页面activity的exported = true,带intent-filter的除外//这里是 包名 以及 页面类的全称ComponentName componentName = new ComponentName("com.example.csii", "com.example.csii.SplashActivity"); ...

2019-08-23 11:22:16 1385

转载 Build类常量列表

Build类中的常量列表Build类可以用来获取Android系统的相关信息。Build类中定义了一系列的public static final的常量,和两个静态内部类(VERSION和VERSION_CODES),两个静态类中又分别包含了一些其他的public static final的常量。所有Build类中定义的常量列举如下(字段含义仅供参考)。这些常量中Build.TIME是long类型...

2019-08-16 15:52:27 399

原创 网页如何区分不同渠道

网页区分不同渠道最长用的标志就是 userAgent,安卓可以通过String agent = webSettings.getUserAgentString();webSettings.setUserAgentString(agent + "/iepay");来设置自己的渠道标识,需要注意的是,只能向上添加,如果直接用自己的渠道标识覆盖原来的信息,会无法加载网页。...

2019-08-15 17:34:08 727

原创 Android 网页交互详解和mWebview.evaluateJavascript带参数注意事项

android 4.4以下跟H5交互需要调用webview的loadUrl(javascript:方法名(参数))来实现调用js方法。如果需要网页获取返回值还需要网页调用安卓 @JavaScriptInterface 注解的方法才可以。Android 4.4以上调用webview.evaluateJavascript(javascript:方法名(参数),new ValueCallback{...

2019-08-15 17:28:32 19195

转载 Android 动态权限管理各版本差异方案

1.Android6.0之后运行时权限策略从Android6.0(API23)开始,对系统权限做了很大的改变,在之前用户安装app前,只是把app需要的使用的权限列出来告知用户一下,app安装后都可以访问这些权限。从6.0开始,一些敏感权限需要在使用是动态申请,并且用户可以选择拒绝授权访问这些权利,已授予过的权限,用户也可以去app设置界面去关闭授权。这对用户来说提高了安全性,可以防止一些应用...

2019-06-28 20:20:24 625

原创 安卓Environment路径总览

<files-path name="name" path="path" /> 物理路径相当于Context.getFilesDir() + /path/<cache-path name="name" path="path" /> 物理路径相当于Context.getCacheDir() + /path/<external-path nam...

2019-06-28 19:56:02 391

原创 java用double和float进行小数计算精度不准确

大多数情况下,使用double和float计算的结果是准确的,但是在一些精度要求很高的系统中或者已知的小数计算得到的结果会不准确,这种问题是非常严重的。《EffectiveJava》中提到一个原则,那就是float和double只能用来作科学计算或者是工程计算,但在商业计算中我们要用java.math.BigDecimal,通过使用BigDecimal类可以解决上述问题,java的设计者给编...

2019-06-26 08:55:09 3890

原创 Socket基于TCP和UDP编程基本步骤

TCP编程的服务器端一般步骤是:  1、创建一个socket,用函数socket();  2、设置socket属性,用函数setsockopt(); * 可选  3、绑定IP地址、端口等信息到socket上,用函数bind();  4、开启监听,用函数listen();  5、接收客户端上来的连接,用函数accept();  6、收发数据,用函数send()和recv(),...

2019-06-24 16:54:30 2831

原创 WebView方法详解

/*** 是否支持缩放,配合方法setBuiltInZoomControls使用,默认true*/setSupportZoom(boolean support)/*** 是否需要用户手势来播放Media,默认true*/setMediaPlaybackRequiresUserGesture(boolean require)/*** 是否使用WebView内置的...

2019-06-20 16:59:56 236

转载 分布式 Git - 分布式工作流程

分布式工作流程同传统的集中式版本控制系统(CVCS)不同,开发者之间的协作方式因着 Git 的分布式特性而变得更为灵活多样。在集中式系统上,每个开发者就像是连接在集线器上的节点,彼此的工作方式大体相像。而在 Git 网络中,每个开发者同时扮演着节点和集线器的角色,这就是说,每一个开发者都可以将自己的代码贡献到另外一个开发者的仓库中,或者建立自己的公共仓库,让其他开发者基于自己的工作开始,为自己...

2019-06-20 11:26:52 189

转载 Git 基础 - 记录每次更新到仓库

记录每次更新到仓库现在我们手上已经有了一个真实项目的 Git 仓库,并从这个仓库中取出了所有文件的工作拷贝。接下来,对这些文件作些修改,在完成了一个阶段的目标之后,提交本次更新到仓库。请记住,工作目录下面的所有文件都不外乎这两种状态:已跟踪或未跟踪。已跟踪的文件是指本来就被纳入版本控制管理的文件,在上次快照中有它们的记录,工作一段时间后,它们的状态可能是未更新,已修改或者已放入暂存区。而所...

2019-06-20 11:07:35 111

转载 Git 基础 - 远程仓库的使用

远程仓库的使用要参与任何一个 Git 项目的协作,必须要了解该如何管理远程仓库。远程仓库是指托管在网络上的项目仓库,可能会有好多个,其中有些你只能读,另外有些可以写。同他人协作开发某个项目时,需要管理这些远程仓库,以便推送或拉取数据,分享各自的工作进展。 管理远程仓库的工作,包括添加远程库,移除废弃的远程库,管理各式远程库分支,定义是否跟踪这些分支,等等。本节我们将详细讨论远程库的管理和使用。...

2019-06-20 10:42:59 82

转载 Git 基础 - 打标签

打标签同大多数 VCS 一样,Git 也可以对某一时间点上的版本打上标签。人们在发布某个软件版本(比如 v1.0 等等)的时候,经常这么做。本节我们一起来学习如何列出所有可用的标签,如何新建标签,以及各种不同类型标签之间的差别。列显已有的标签列出现有标签的命令非常简单,直接运行git tag即可:$ git tagv0.1v1.3显示的标签按字母顺序排列,所以标签的...

2019-06-20 10:32:48 104

转载 Git 分支 - 分支的变基

分支的变基把一个分支中的修改整合到另一个分支的办法有两种:merge和rebase。在本章我们会学习什么是变基,如何使用变基,为什么变基操作如此富有魅力,以及我们应该在什么情况下使用变基。基本的变基操作请回顾之前有关合并的一节(见图 3-27),你会看到开发进程分叉到两个不同分支,又各自提交了更新。图 3-27. 最初分叉的提交历史。之前介绍过,最容易的整...

2019-06-20 10:14:12 650

转载 Git 分支 - 远程分支

远程分支远程分支(remote branch)是对远程仓库中的分支的索引。它们是一些无法移动的本地分支;只有在 Git 进行网络交互时才会更新。远程分支就像是书签,提醒着你上次连接远程仓库时上面各分支的位置。我们用(远程仓库名)/(分支名)这样的形式表示远程分支。比如我们想看看上次同origin仓库通讯时master分支的样子,就应该查看origin/master分支。如果...

2019-06-18 18:23:41 260

转载 Git 分支 - 利用分支进行开发的工作流程

利用分支进行开发的工作流程现在我们已经学会了新建分支和合并分支,可以(或应该)用它来做点什么呢?在本节,我们会介绍一些利用分支进行开发的工作流程。而正是由于分支管理的便捷,才衍生出了这类典型的工作模式,你可以根据项目的实际情况选择一种用用看。长期分支由于 Git 使用简单的三方合并,所以就算在较长一段时间内,反复多次把某个分支合并到另一分支,也不是什么难事。也就是说,你可以同时拥有多个...

2019-06-18 18:22:43 472

转载 Git 分支 - 分支的管理

分支的管理到目前为止,你已经学会了如何创建、合并和删除分支。除此之外,我们还需要学习如何管理分支,在日后的常规工作中会经常用到下面介绍的管理命令。git branch命令不仅仅能创建和删除分支,如果不加任何参数,它会给出当前所有分支的清单:$ git branch iss53* master testing注意看master分支前的*字符:它表示当前所在的分...

2019-06-18 18:17:10 111

转载 Git 分支 - 何谓分支

何谓分支为了理解 Git 分支的实现方式,我们需要回顾一下 Git 是如何储存数据的。或许你还记得第一章的内容,Git 保存的不是文件差异或者变化量,而只是一系列文件快照。在 Git 中提交时,会保存一个提交(commit)对象,该对象包含一个指向暂存内容快照的指针,包含本次提交的作者等相关附属信息,包含零个或多个指向该提交对象的父对象指针:首次提交是没有直接祖先的,普通提交有一个祖先,由...

2019-06-18 18:13:14 315

转载 Git 分支 - 分支的新建与合并

分支的新建与合并现在让我们来看一个简单的分支与合并的例子,实际工作中大体也会用到这样的工作流程:开发某个网站。 为实现某个新的需求,创建一个分支。 在这个分支上开展工作。假设此时,你突然接到一个电话说有个很严重的问题需要紧急修补,那么可以按照下面的方式处理:返回到原先已经发布到生产服务器上的分支。 为这次紧急修补建立一个新分支,并在其中修复问题。 通过测试后,回到生产服务器所...

2019-06-18 18:12:27 159

转载 compileSdkVersion,minSdkVersion,targetSdkVersion还有buildToolsVersion的区别

compileSdkVersion指的是你当前android sdk的版本minSdkVersion指的是应用最低兼容的android sdk版本targetSdkVersion指的是应用向前兼容的android sdk版本buildToolsVersion指的是当前构建工具的版本minSdkVersion<=targetSdkVersion<=compileSdkVe...

2019-05-29 14:37:13 197

原创 android.support v4、v7、v13、v14、v17的区别和应用场景

google提供了Android Support Library package 系列的包来保证来高版本sdk开发的向下兼容性,即我们用4.x开发时,在1.6等版本上,可以使用高版本的有些特性,如fragement,ViewPager等,下面,简单说明下这几个版本间的区别:Android Support v4: 这个包是为了照顾1.6及更高版本而设计的,这个包是使用最广泛的,eclipse新建...

2019-05-29 14:35:54 513

转载 各个厂商手机不打印log日志的解决方法

360手机1) 在桌面的【其他应用】文件夹找到【用户反馈】,或通过搜索找到【用户反馈】2 )点击系统问题反馈3 )等复现问题,让问题出现2~3次4 )问题复现之后,直接到文件管理、本地存储,找到根目录下的“log或者mtklog”文件,将文件压缩后发送给工作人员MIUI:1) 在拨号键输入 *#*#284#*#* 来抓日志(不包括前后空格),过程可能要 1 分钟左右,成功后通...

2019-05-28 09:38:49 2490

原创 Java 泛型

1. Java中的泛型是什么 ? 使用泛型的好处是什么?  在集合中存储对象并在使用前进行类型转换是多么的不方便。泛型防止了那种情况的发生。它提供了编译期的类型安全,确保你只能把正确类型的对象放入集合中,避免了在运行时出现ClassCastException。  2. Java的泛型是如何工作的 ? 什么是类型擦除 ?  泛型是通过类型擦除来实现的,编译器在编译时擦除了所有类...

2019-05-23 16:52:33 109

原创 深入解析Java反射

反射简介反射 (Reflection) 是 Java 的特征之一,它允许运行中的 Java 程序获取自身的信息,并且可以操作类或对象的内部属性。通过反射,我们可以在运行时获得程序或程序集中每一个类型的成员和成员的信息。程序中一般的对象的类型都是在编译期就确定下来的,而 Java 反射机制可以动态地创建对象并调用其属性,这样的对象的类型在编译期是未知的。所以我们可以通过反射机制直接创建对象,即使...

2019-05-23 16:37:33 145

原创 关键字final与static详解

final1. 数据声明数据为常量,可以是编译时常量,也可以是在运行时被初始化后不能被改变的常量。对于基本类型,final 使数值不变; 对于引用类型,final 使引用不变,也就不能引用其它对象,但是被引用的对象本身是可以修改的。final int x = 1;// x = 2; // cannot assign value to final variable 'x'fi...

2019-05-23 16:12:56 151

原创 二叉树的镜像

public void Mirror(TreeNode root) { if (root == null) return; swap(root); Mirror(root.left); Mirror(root.right);}private void swap(TreeNode root) { TreeNode t = root.l...

2019-05-20 16:53:00 100

原创 合并两个排序的链表

递归public ListNode Merge(ListNode list1, ListNode list2) { if (list1 == null) return list2; if (list2 == null) return list1; if (list1.val <= list2.val) { li...

2019-05-20 16:48:14 120

原创 反转链表

递归public ListNode ReverseList(ListNode head) { if (head == null || head.next == null) return head; ListNode next = head.next; head.next = null; ListNode newHead = ReverseLis...

2019-05-20 16:47:26 92

原创 I/O 模型

一个输入操作通常包括两个阶段:等待数据准备好 从内核向进程复制数据对于一个套接字上的输入操作,第一步通常涉及等待数据从网络中到达。当所等待数据到达时,它被复制到内核中的某个缓冲区。第二步就是把数据从内核缓冲区复制到应用进程缓冲区。Unix 有五种 I/O 模型:阻塞式 I/O 非阻塞式 I/O I/O 复用(select 和 poll) 信号驱动式 I/O(SIGIO) 异...

2019-05-20 11:16:46 121

原创 Android SharedPreferences的commit与apply区别

Android提供了一个简单快捷的保存键值对到文件的类SharedPreferences。通过SharedPreferences读写参数会遇到一些问题:API25中,apply方法的注释。大致意思就是apply是一个原子请求(不需要担心多线程同步问题)。commit将同步的把数据写入磁盘和内存缓存。而apply会把数据同步写入内存缓存,然后异步保存到磁盘,可能会执行失败,失败不会收到错误回调。...

2019-05-20 10:48:46 4475

原创 Android中给一个字符串设置不同样式

SpannableStringBuilder builder = new SpannableStringBuilder(string);//ForegroundColorSpan 为文字前景色,BackgroundColorSpan为文字背景色ForegroundColorSpan greenSpan = new ForegroundColorSpan(Color.parseColor(...

2019-05-14 17:03:23 1302

原创 NDK 预构建库配置

Android NDK r5引入预构建库(动态和静态)的支持,即在你的应用程序中包含和使用库的预构建版本。这个特性可能在两方面有用:1、你想发布你自己的库给第三方NDK开发者而不分发你的源代码。2、你想使用你自己的库的预构建版本以加速你的构建。这个文档解释这种支持是如何工作的。一、声明一个预构建库模块:每个预构建库必须向构建系统声明为一个单一独立模块。这里有个小示例,我们假...

2019-05-05 10:27:52 298

原创 Java运行时内存模型

Android原生开发以Java为主,而Java程序都是运行在Java虚拟机(JVM)之上的且内存全权交给虚拟机去管理,那虚拟机的运行时内存模型是如何构成的?堆和栈,相信很多人都能脱口而出,但这只是对内存粗略的一种划分,其中”堆”对应内存模型的Java堆;”栈”则是指虚拟机栈,但是实际上Java运行时内存模型比这复杂多了,在SUN制定的Java虚拟机规范中,运行时内存模型,分为线程私有和共享数据区...

2019-04-28 10:57:48 575 1

原创 JVM垃圾收集器

新生代垃圾收集器Serial此垃圾收集器年代久远,用于新生代的垃圾收集,采用复制算法。是单线程的垃圾收集器也就是不管你的服务器有多少CPU,反正它就用其中的一个CPU启动一个线程去处理垃圾回收,并且停止所有工作线程等待它回收完成。所以它在收集时会STW(stop the world)。能与其搭配的老年代收集器是CMS与Serial Old。Serial与Serial Ol...

2019-04-28 10:53:14 173

原创 Binder的工作机制

直观来说,Binder是Android中的一个类,它实现了IBinder接口,从IPC的角度来说,Binder是Android中的一种跨进程通信的一种方式,同时还可以理解为是一种虚拟的物理设备,它的设备驱动是/dev/binder/。从Framework角度来说,Binder是ServiceManager的桥梁。从应用层来说,Binder是客户端和服务端进行通信的媒介。我们先来了解一下这个类中...

2019-04-26 17:50:46 299

android理财通源码

学习Android的一个很好项目,项目内容少但很完整,非常适合初学者

2014-05-13

java学生管理系统

一个基本的教学管理系统,登录后可以实现对学员的增加和查询的功能,并提供良好的操作界面。从学生实体中抽象出来的数据有学生Id,学生姓名,出生日期,电话,地址。

2013-11-02

javaGUI程序设计——记事本功能实现

运用java的初步知识制作的一个简易的记事本,你自己可以类比着添加其他功能,有兴趣的话可以试试。

2013-11-02

空空如也

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

TA关注的人

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