10 hanmindi

尚未进行身份认证

暂无相关描述

等级
博文 36
排名 9w+

String, StringBuffer, StringBuilder

1String(1)String的创建机理由于String在Java世界中使用过于频繁,Java为了避免在一个系统中产生大量的String对象,引入了字符串常量池。其运行机制是:创建一个字符串时,首先检查池中是否有值相同的字符串对象,如果有则不需要创建直接从池中刚查找到的对象引用;如果没有则新建字符串对象,返回对象引用,并且将新创建的对象放入池中。但是,通过new方法创建的String对象...

2019-06-12 00:49:01

强引用、软引用、弱引用、虚引用

在Java语言中,除了基本数据类型外,其他的都是指向各类对象的对象引用;Java中根据其生命周期的长短,将引用分为4类。1强引用特点:我们平常典型编码Objectobj=newObject()中的obj就是强引用。通过关键字new创建的对象所关联的引用就是强引用。当JVM内存空间不足,JVM宁愿抛出OutOfMemoryError运行时错误(OOM),使程序异常终止,也不会靠随意回...

2019-06-05 19:17:05

final、finally、finalize

1.final修饰类:不可被继承修饰方法:不可重写修饰变量:不可修改,只能约束引用不可以被再次赋值。匿名内部类访问局部变量时需要使用final,因为Innerclass实际会copy一份局部变量,final可以防止出现数据一致性问题2.finally:Java保证重点代码一定要被执行的机制,try-finally,除非在finally前执行了System.exi...

2019-06-05 18:01:36

Exception和Error

Exception和Error都继承了Throwable类,在java中只有Throwable类的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成部分。Exception和Error体现了java平台设计者对不同异常情况的分类,Exception是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,进行相应处理。Error是指在正常情况下,不大可能出现的情况,...

2019-06-05 10:30:58

对Java平台的理解

“一次编译、到处运行”说的是Java语言跨平台的特性,Java的跨平台特性与Java虚拟机的存在密不可分,可在不同的环境中运行。比如说Windows平台和Linux平台都有相应的JDK,安装好JDK后也就有了Java语言的运行环境。其实Java语言本身与其他的编程语言没有特别大的差异,并不是说Java语言可以跨平台,而是在不同的平台都有可以让Java语言运行的环境而已,所以才有了Java一次编译,...

2019-06-04 18:30:57

仿微信语音对话实现

要实现下面的布局(先思考下如何实现,看似简单,或许会有所收获)<FrameLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><com.example.weixinrecorder.view.AudioReco...

2018-03-09 09:31:54

IntentService——异步的,会自动停止的服务

  服务默认运行在主线程当中,如果要处理耗时操作,就必须开启子线程进行相关逻辑处理。同时,由于服务一旦启动,就会一直处于运行状态,必须调用stopService()或stopSelf()方法才能让服务停止。所以要实现让一个服务在执行完毕后自动停止的功能,在onStartCommand()方法中可以这样写:newThread(newRunnable(){...

2018-03-06 17:43:51

前台服务

  服务几乎都是在后台运行的,但由于其系统优先级比较低,当系统出现内存不足的情况下,就有可能回收掉正在后台运行的服务。如果希望服务一直保持运行状态,可以考虑使用前台服务。  前台服务跟后台服务最大的区别在于,它会一直有一个正在运行的图标在系统的状态栏显示,下拉状态状态栏后可以看到更加详细的信息,非常类似通知的效果。publicclassMyServiceextendsServ...

2018-03-06 16:50:44

活动(Activity)和服务(Service)进行通信模板

  比如现在想在MyService里提供一个下载功能,然后在活动中可以决定何时开始下载,以及随时查看下载进度。实现这个功能的思路是创建一个专门的Binder对象来对下载功能进行管理。代码如下所示:publicclassMyServiceextendsService{privateDownloadBindermBinder=newDownloadBinder...

2018-03-06 16:01:20

通用网络请求实现之HttpURLConnection和OkHttp

  网络请求是一个耗时操作,所以我们需要开启一个子线程来发起网络请求,同时,由于耗时逻辑都是在子线程里进行的,那么服务器响应的数据就无法返回,这时我们应该考虑使用Java的回调机制。publicinterfaceHttpCallbackListener{voidonFinish(Stringresponse);voidonError(Exceptione);}...

2018-03-05 18:56:55

json解析的常用方式(不使用第三方库)

  解析json数据有很多种方法,可以使用官方提供的JSONObject,也可以使用谷歌的开源库GSON,另外,一些第三方的开源库如Jackson,FastJSON等也非常不错。接下来主要学习前两种解析方式的用法。JSONObjectjson数据:[{"id":"5","version":"2.1","name":"cbook"},{"id":&

2018-03-05 17:13:43

OkHttp基本使用

添加依赖库compile'com.squareup.okhttp3:okhttp:3.4.1'//可以自行修改成最新版本Get请求OkHttpClientclient=newOkHttpClient();Requestrequest=newRequest.Builder()         .url("http://www.baidu.com")//可以连...

2018-03-05 13:39:48

WebView最基本设置使用说明

...WebViewwebView=(WebView)findViewById(R.id.web_view);webView.getSettings().setJavaScriptEnabled(true);webView.setWebViewClient(newWebViewClient());webView.loadUrl("http://www.baidu.com");.....

2018-03-05 11:48:38

android调用摄像头拍照

  该功能使用到的场景比较多,下面能过一个实例介绍其使用,布局比较简单只有两个控件,上面Button下面ImageView,Button用于打开摄像头进行拍照,而ImageView用于将拍到的图片显示出来。publicclassCameraTestActivityextendsAppCompatActivity{publicstaticfinalintTAKE...

2018-03-05 11:12:28

android多媒体之播放音视频

播放音频  在Android中播放音频文件一般都是使用MediaPlayer类来实现,它对多种格式的音频文件提供了非常全面的控制方法。常用的控制方法有:setDataSource(),prepare(),start(),pause(),reset()(将MediaPlayer对象重置到刚刚创建的状态),seekTo(),stop()(停止播放音频,调用这个方法后的MediaPlay...

2018-03-03 00:56:36

通知的使用

  相比于广播接收器和服务,在活动里创建通知的场景还是比较少的,一般只有当程序进入到后台的时候我们才需要使用通知。但是无论在哪里创建通知,整体的步骤都是相同的。NotificationManagermanager=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);  由于几乎Android系统的...

2018-03-02 10:41:52

内容提供器(ContentProvider)的安全性

内容提供器是如何做到保证隐私数据不会泄露出去的?  因为内容提供器的良好机制,所有的CRUD操作都一定要匹配到相应的内容URI格式才能进行,而我们当然不可能向UriMatcher中添加隐私数据的URI,所以这部分数据根本无法被外部程序访问到,安全问题也就不存在了。...

2018-03-01 12:52:10

程序运行时申请权限

  大家都知道,Android6.0系统的新特性是运行时权限,为简单起见,下面以CALL_PHONE这个权限为例来示例如何使用。  CALL_PHONE这个权限是编写拨打电话的功能是需要声明的,因为拨打电话会涉及用户手机的资费问题,因而被列为危险权限。  首先,在清单文件AndroidManifest.xml中添加以下权限声明:<uses-permissionandroid:n...

2018-03-01 03:58:41

android创建数据库,表整体流程

  实例化SQLiteOpenHelper,调用getWritableDatabase()或getReadableDatabase(),当检测到当前程序中还没有创建指定的数据库时,于是会创建数据库并调用SQLiteOpenHelper实例中的onCreate()方法,这个方法中,我们通常会使用SQLiteDatabase调用execSQL来创建数据库表,此时,数据库和表就都创建好了。当检测到要...

2018-02-28 16:06:48

瞬时数据,android中的数据持久化及方式

  瞬时数据:指那些存储在内存当中,有可能会因为程序关闭或其它原因导致内存被回收而丢失的数据。  数据持久化就是指将那些内存中的瞬时数据保存到存储设备中,保证即使手机或电脑关机的情况下,这些数据仍然不会丢失。  保存在内存中的数据是处于瞬时状态的,而保存在存储设备中的数据是处于持久状态的,持久化技术则提供了一种机制可以让数据在瞬时状态和持久状态之间进行转换。  Android系统中主要...

2018-02-28 11:32:39
奖章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周上午根据用户上周的博文发布情况由系统自动颁发。