u012481172的专栏

私信 关注
泼墨成空
码龄7年

从零开始,每天进步一点点。

  • 133,820
    被访问量
  • 85
    原创文章
  • 45,820
    作者排名
  • 39
    粉丝数量
  • 于 2013-10-17 加入CSDN
获得成就
  • 获得68次点赞
  • 内容获得11次评论
  • 获得35次收藏
荣誉勋章
TA的专栏
  • 炭灰似雪
    10篇
  • Java EE
    5篇
  • Android系统
    11篇
  • 计算机网络技术
    6篇
  • 算法
    5篇
  • OS(Windows)
    1篇
  • Java
    16篇
  • Java多线程
    5篇
  • Android网络
  • Java 设计模式
    1篇
  • Android框架层
    10篇
  • Android开源项目
    1篇
  • ArcGIS for Android
  • Ant
    5篇
  • C/C++
    1篇
  • Android概念
    2篇
  • Android组件
  • Android资源
  • Android动画
    1篇
  • Android多媒体与相机
  • Android数据存储
  • Android性能优化
    1篇
  • Android安全
  • Android布局
    3篇
  • 各种错误异常
    1篇
  • JS前端
    1篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

Java基础概念

我们已知Java有三大主要特性:封装、继承、多态。为了更全面的探索学习,我们把接口、抽象也加入到其主要特性之列。故,本篇就探讨Java的五大特性:封装、继承、多态、接口、抽象。提供一个java学习网址:https://www.tutorialspoint.com/java/java_encapsulation.htm封装继承多态接口 封装封装是Java的基础特性之一。...
原创
1367阅读
0评论
3点赞
发布博客于 3 年前

AndroidStudio优化指南

1、AS打包时将无用的资源排除掉,使其不被打包进apk。在app.gradle中添加minifyEnabled true和shrinkResources true即可,如下: buildTypes { release { minifyEnabled true shrinkResources true min
原创
407阅读
0评论
0点赞
发布博客于 5 年前

SRS流媒体编译部署

一、下载代码:         git clone https://github.com/ossrs/srs。     注意,下载完成后只有main.go,main.test.go,README.mk三个文件,此时要切换到分支上去,比如用以下命令是切换到srs2.0上:         git pull && git checkout2.0release二、编译      
原创
4472阅读
0评论
1点赞
发布博客于 5 年前

JS杂七杂八

一、JS跨域请求       浏览器对于JS跨域请求默认是关闭的,所谓跨域请求就是跨网站域名请求,比如在A站去请求B站的数据是不被允许的,严格来说跨域是指不同域名或不同端口号之间的请求,如下是区别:
原创
364阅读
0评论
0点赞
发布博客于 5 年前

Launcher启动过程详解

Android的Home界面是如何启动的?
原创
402阅读
0评论
0点赞
发布博客于 5 年前

ART和Dalvik的比较

ART是什么?他和Dalvik是什么关系?
原创
1909阅读
0评论
1点赞
发布博客于 5 年前

View事件拦截的两种方法

通常ViewGroup要对事件进行拦截可以通过重写onInterceptTouchEvent()方法并返回true,就表示要对事件进行拦截,拦截之后事件就不会再传递到子View,自然的,子View的onTouchEvent()方法也不会被调用了。      另外如果你不想重写ViewGroup的onInterceptTouchEvent()来拦截事件的话,可以让父容器调用requestDisa
原创
5300阅读
0评论
0点赞
发布博客于 5 年前

Android初窥

一、App如何存在于系统?      Android APP是用Java语言编写的由Android SDK工具编译并和其它资源文件一起打包到APK文件。一个APK文件包含了要安装的App所需要的一切内容。一单安装到设备上,每一个Android APP就生存在它自己的安全沙箱。  (1)Android操作系统是一个多用户Linux系统,每一个app就是一个不同的用户。  (2)系
原创
283阅读
0评论
0点赞
发布博客于 5 年前

BindService详解

Service启动得两种方式分别为startService()、bindService(),但是他们的使用场景是不一样的。。。
原创
4759阅读
2评论
0点赞
发布博客于 5 年前

Binder详解

最近在阅读源码时屡屡被Binder给绕进去了,感觉这玩意好像特别的重要,所以就单独的抽出来仔细的研究下,本文主要是从java层面来分析,对于底层内核的Binder驱动就不做深入探讨了,由于本文是以AIDL的使用情景来分析的,所以对于不会使用AIDL的童鞋先看另一篇文章http://blog.csdn.net/u012481172/article/details/50925381。废话不多说。
原创
4091阅读
0评论
3点赞
发布博客于 5 年前

Ant读取XML文件的值

ANt读取xml值
原创
2300阅读
0评论
1点赞
发布博客于 5 年前

AndroidManifest.xml文件详解

AndroidManifest.xml文件详解
原创
4047阅读
0评论
2点赞
发布博客于 5 年前

关于NoClassDefFoundError错误

以前遇到过NoClassDefFoundError错误,解决后也没当回事,然后今天又出现了,所以记录下。      NoClassDefFoundError是一个错误,而ClassNOtFoundException是一个异常,这是有区别的。     NoClassDefFoundError出现在Android中都是由于没有打包进dex文件中所导致的,我几次遇到这样的情况就是首先反编译dex
原创
841阅读
0评论
1点赞
发布博客于 5 年前

Android应用的uid和pid

大家在用开发工具连接手机时一定见过下图的进程编号:    PID和UID存在的意义        Pid是进程ID,Uid是用户ID,只是Android和计算机不一样,计算机每个用户都具有一个Uid,哪个用户start的程序,这个程序的Uid就是那个用户,而Android中每个程序都有一个Uid,默认情况下,Android会给每个程序分配一个普通级别互不相同的 Uid,如果应用之间要互
原创
5001阅读
0评论
3点赞
发布博客于 5 年前

批处理语法详解

批处理语法
原创
3184阅读
0评论
1点赞
发布博客于 5 年前

Android中获取各种服务是哪里来的

当app第一次加载时就开始注册了那些服务,具体来说就是在应用创建ContextImpl实例的时候调用了SystemServiceRegistry类来进行注册,其注册的服务(就是具体的相关的服务的实例)保存在HashMap的对象SYSTEM_SERVICE_FETCHERS中:      private static final HashMap> SYSTEM_SERVICE_FETCHERS
原创
1645阅读
0评论
0点赞
发布博客于 5 年前

JVM之类加载机制

在上一篇文章中我们了解了Class文件存储格式的具体细节,在Class文件中描述的各种信息,最终都要加载到虚拟机中之后才能运行和使用。而虚拟机如何加载这些Class文件?Class文件中的信息进入到虚拟机后会发生什么变化?这些都是本文所需要解决的问题!      虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化最终形成了可以被虚拟机直接使用的Java类型,这就
原创
227阅读
0评论
0点赞
发布博客于 5 年前

JVM之类文件结构

实现语言无关性的基础仍然是虚拟机和字节码存储格式。Java虚拟机不和包括Java在内的任何语言绑定,它至于“Class”文件这种特定的二进制文件格式所关联,Class文件中包含了Java虚拟机指令集和符号表以及若干其它辅助信息。       Java语言中的各种变量、关键字和运算符号的语义最终都是有多条字节码指令组合而成,因此字节码命令所能提供的语义描述能力肯定会比Java语言本身更加强大。
原创
1046阅读
0评论
1点赞
发布博客于 5 年前

从init.rc说起

1 简述Android init.rc文件由系统第一个启动的init程序解析,此文件由语句组成,主要包含了四种类型的语句:Action,Commands,Services,Options.在init.rc文件中一条语句通常是占据一行.单词之间是通过空格符来相隔的.如果需要在单词内使用空格,那么得使用转义字符"\",如果在一行的末尾有一个反斜杠,那么是换行折叠符号,应该和下一行合并成一起来处
转载
193阅读
0评论
0点赞
发布博客于 5 年前

C/C++拾起

static关键字     static修饰的全局变量和函数只能在本文件类使用。const关键字    const是指常数,这种数存放在rom中,也就是硬盘里,只有使用的时候才读取到内存。const数不能被修改,也不能是局部变量。
原创
207阅读
0评论
0点赞
发布博客于 5 年前

AIDL的使用

什么是AIDL    aidl的全称是Android Interface Definition Language,这是为了实现跨进程通信而在客户端和服务端编写的接口。
原创
433阅读
1评论
1点赞
发布博客于 5 年前

JVM之垃圾收集器与分配策略

通过以上JVM两篇文章的介绍,我们大致了解了Java的内存模型以及对象的存储和分配,本文在基于以上知识开始讲解内存的回收,本文尝试解决以下的几个问题: (1)哪些内存需要回收? (2)什么时候进行内存回收? (3)如何回收内存?   上篇文章文章我们已经讲解了Java内存运行时内存区域的各个部分,其中程序计数器、虚拟机栈和本地方法栈三个区域随线程而生随线程而灭;栈中的栈帧随着方法的
原创
372阅读
0评论
1点赞
发布博客于 5 年前

JVM之内存区域分配

JVM的内存模型,对象的分配
原创
2541阅读
2评论
2点赞
发布博客于 5 年前

Java之问(一)

如何强制执行垃圾回收?  (1)首先,垃圾回收是JVM自动处理的,我们不能强制致敬,尽管我们可以调用System.gc()。  (2)JVM不能保证GC能够直接开始回收。  (3)每一个class都从Object基础了finalize()方法。  (4)当垃圾回收器觉得应用中没有更多的引用对象存在时就会调用finalize()。因此我们手动调用finalize()并没有什么多大作用
原创
244阅读
0评论
0点赞
发布博客于 5 年前

JVM之Java程序与内存映射

什么是JVM       首先看下一个Java程序是如何在机器上执行的:      Java源程序(.java文件)-->Java编译器(如Eclipse) -->字节码(.class文件)-->JVM编译器--> 装配 -->机器码 --> 经过系统总线 -->微处理器-->逻辑门 -->电路 -->设备硬件.
原创
866阅读
0评论
1点赞
发布博客于 5 年前

Java到底是值传递还是引用传递

在Java中,方法的参数传递永远是值传递,不存在引用传递。  实际上,如果一个方法的参数是一个对象,那么当传递这个对象的时候实际上是传递的一个对象的地址过来,而不是传递的一个引用(变量)更不是对象本身,所谓引用变量就是我们 A a = new A(),此a就是一个引用变量,它的值就是一个指向A对象的地址。如果我们把a作为某一个方法的参数传递过去,那么此时传递的仅仅是这个引用a的值(对象的地址)
原创
216阅读
0评论
1点赞
发布博客于 5 年前

finally会执行吗

如下代码,finally里的代码是否会执行?public class MainQueue { public static void main(String args[]) { System.out.println(MainQueue.test()); } public static int test() { try { return 0; } finally {
原创
239阅读
0评论
0点赞
发布博客于 5 年前

Lock & Condition

Synchronized同步块的不足      在多线程环境下保证线程同步的方法大多是使用synchronized关键字,但是这个关键字在某些环境下是很死板的。其主要缺点如下:     (1)如果一个线程已经在一个synchronized块中执行,另一个线程视图进入这个同步块,那么它必须等待直到当前占用这那个同步块的线程执行完并退出。如果线程一直没有进入同步块,那么那个等待的线程就一直
原创
280阅读
0评论
1点赞
发布博客于 5 年前

基于栈虚拟机和基于寄存器虚拟机的比较

基于寄存器的虚拟机和基于栈的虚拟机有什么不同?
原创
8115阅读
2评论
6点赞
发布博客于 5 年前

Dalvik虚拟机详解(上)

什么是Dalvik?    首先,每一个Android应用都运行在它自己的进程中也就是它自己的Dalvik虚拟机实例,也即每个app都有自己的dalvik虚拟机实例,他们都是私有的不共享的。Dalvik虚拟机一开始就被设计成可以在一个设备上高效的大量运行(Dalvik虚拟机实例)。Dalvik虚拟机执行器会执行.dex格式的文件。Dalvik虚拟机是基于寄存器的。什么是Zygote?
原创
4969阅读
0评论
1点赞
发布博客于 5 年前

一个APP是否可以没有Activity?

app是否可以没有Activity?能否实现一个没有界面的app?
原创
2410阅读
0评论
1点赞
发布博客于 5 年前

什么是字符串(String)的不变性?

Strnig的不变性是指什么
原创
4244阅读
1评论
3点赞
发布博客于 5 年前

如何正确停止一个线程

首先肯定是不能用Thread的stop()方法的,因为此方法是非常不安全的,而且已经被废弃了,那么在这里就给出一种官方的推荐方案。    private static Thread mThread; private static Thread mThread; static StringMain.MyRunnable mRunnable = new StringMain().new MyRu
原创
6951阅读
0评论
3点赞
发布博客于 5 年前

常用命令合集

1、查看所有Android设备上所有进程    手机连上电脑,cmd→adb shell,然后输入ps命令即可显示所有进程。
原创
208阅读
0评论
0点赞
发布博客于 5 年前

关于View的一些问题

1、View的回调方法的顺序是怎样的View从加载开始一些列的回调方法的流程如下:  onFinishInflate()→onMeasure()→onSizeChanged()→onLayout()→onDraw()→onWindowFocusChanged()。onMeasure()和onLayout()以及onDraw()有可能会执行多次。
原创
291阅读
0评论
1点赞
发布博客于 5 年前

Android小知识清单(二)

1、Toast的另一种用法    Toast我们通常用来提示文字,但是也可以用来显示整个View来显示,如下: Toast toast = new Toast(getApplicationContext()); toast.setGravity(Gravity.FILL, 0, 0); toast.setView(toastView); toast.show(
原创
494阅读
0评论
0点赞
发布博客于 5 年前

BlockingQueue!

Queue接口继承了Collection接口,其内部定义了六个方法,分为三大类,分别是新增元素、删除元素、检索元素。每一个大类都提供了两个方法,这两个方法的作用可以用下面的表格来描述:        (1).add()和offer():这两个方法是向队列添加元素,不同之处在于如果队列已经添加满了还继续添加add()方法就会抛出异常,而offer()会返回false值(如果队列没有满,则of
原创
3111阅读
0评论
3点赞
发布博客于 5 年前

Ant之Task

每个Task都是一系列的可执行的代码。    一个Task可以包含大量的属性,属性值也可以引用Property,这些引用都会在执行之前由Ant完成解析。
原创
865阅读
0评论
0点赞
发布博客于 6 年前

Ant之Target

Target的属性及其使用
原创
375阅读
0评论
0点赞
发布博客于 6 年前

Ant之Project

Ant的Project节点有三个属性,包括basedir、name和default
原创
293阅读
0评论
1点赞
发布博客于 6 年前

Ant开篇之安装

今天刚好有时间,就学习一下Ant的用法吧,也为了自动化编译打包测试作准备~。一、下载Ant并配置环境变量    下载Ant很简单,zip压缩包不大,最新版本也就7.9M,国内也可以去Apache官网下载http://ant.apache.org/; 下载之后解压到任意目录,然后配置环境变量Path,在Path后追加解压后的bin路径,比如:F:\apache-ant-1.9.6-bin\a
原创
263阅读
0评论
0点赞
发布博客于 6 年前

Android开发之Tools使用

在Google退出AndroidStudio之前我们都是用的Eclipse+ADT插件来完成,在Google提供的SDK中有一个tools目录,该目录下包含了很多有用的工具!今天就来总结一下有哪些我们平时忽略的但是又很有技巧的工具吧!
原创
1389阅读
0评论
0点赞
发布博客于 6 年前

APK安装详解

一、APK安装相关概念    这里,我们只介绍有界面的安装,也就是对于存在于手机上的apk文件的安装,这种安装方式需要我们手动确认安装,在点击apk文件时,系统会个弹出一个安装界面,在这个界面上会列出该apk所需要获取手机的所有权限,比如“读取联系人”、“发送短信”、“拍摄照片和视频”、“获取位置”、“获取账户信息”、“停止平面锁定”等等权限,总之所有我们在AndroidMainfest.xm
原创
2540阅读
0评论
0点赞
发布博客于 6 年前

Java反射的用法详解

Java反射详解,如何通过反射获取类的私有属性,如何通过反射调用类的私有方法?
原创
1971阅读
0评论
1点赞
发布博客于 6 年前

Java静态代理与动态代理demo

这里提供了静态代理和动态代理的入门写法~一看即懂!
rar
发布资源于 6 年前

Java动态代理的实现

Java动态代理的实现,Java动态代理的作用?
原创
427阅读
0评论
1点赞
发布博客于 6 年前

代理模式Proxy

Android中的代理模式使用,什么是代理模式
原创
373阅读
0评论
2点赞
发布博客于 6 年前

APK反编译

APK反编译使用apktool、dex2jar、jd-gui。。。
原创
318阅读
0评论
1点赞
发布博客于 6 年前

Activity启动过程详解

如何启动一个Activity?当我们调用startActivity()或startActivityForResult()后是如何启动Activity的?Activity的启动模式分析
原创
4405阅读
0评论
3点赞
发布博客于 6 年前

计算机系统的硬件结构之存储器

一、存储器概述1.存储器分类2.存储器的层次结构二、主存储器(内存)1.主存储器概述2.半导体存储芯片3.随机存取存储器4.只读存储器5.存储器与CPU的连接6.存储器的校验7.提高访存速度的措施三、高速缓冲存储器1.概述2.Cache--主存地址映射3.替换策略
原创
2969阅读
0评论
3点赞
发布博客于 6 年前

计算机的基本组成

CPU的组成、运算器和控制器的功能。计算机的时钟周期、处理器性能指标。       (1)计算机的基本组成       (2)存储器       (3)CPU的结构和功
原创
882阅读
0评论
0点赞
发布博客于 6 年前

关于自定义Camera的一些问题

自定义相机预览时横屏,如何调整?拍出来的照片很模糊并且分辨率也很小怎么解决?
原创
946阅读
0评论
0点赞
发布博客于 6 年前

Java并发编程:CountDownLatch、CyclicBarrier和Semaphore

转载自:博客园--海子 在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。  以下是本文目录大纲:  一.CountDownLatch用法  二.CyclicBarrier用法  三.Semaphore用法  若有不正之
转载
402阅读
0评论
1点赞
发布博客于 6 年前

深入理解Java的接口和抽象类(转)

本文转自:博客园--海子对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽象类。下面是本文的目录大纲:  一.抽象类  二.接口  三.抽象类和接口的区别  若有不正
转载
293阅读
0评论
1点赞
发布博客于 6 年前

Setting模块深入分析

Preference在Setting模块中的使用。。
原创
692阅读
1评论
0点赞
发布博客于 6 年前

FrameWork之View的绘制过程(下)

上一篇说了View测量逻辑调用,以及父视图如何影响到View的测量等概念,这一篇测量在代码中是怎么具体实现的。      首先说ViewGroup类吧,因为该类是所有容器类的父类,所谓容器类就是布局类,比如LinearLayout、TableLayout等,用来容纳VIew控件的。          ViewGroup提供了三个类似的方法用于对子视图进行measure()操作:
原创
390阅读
0评论
0点赞
发布博客于 6 年前

线程全解

作为一名coder,不用线程是不可能的,我们有必要对线程的使用以及原理来详细了解一下,本文根据:http://www.cnblogs.com/dolphin0520/p/3932934.html一文对其提出的每一个问题都用一个例子来佐证,并且会增加一些新的问题,以对线程方面的知识做一个梳理。1. 进程和线程之间有什么不同?一个进程是一个独立(self contained)的运行环境
原创
473阅读
0评论
0点赞
发布博客于 6 年前

Android中多线程处理

Android中很多时候都会开启多线程处理任务,今天我们从Java的基础线程开始详细的了解下线程、多线程以及并发的知识。
原创
603阅读
0评论
0点赞
发布博客于 6 年前

ThreadLocal理解与使用

在看FrameWork源码时,在ActivityThread类中有一个ThreadLocal变量,是这么定义的:static final ThreadLocal sThreadLocal = new ThreadLocal();     再加之,项目中和其它插件源码这个ThreadLocal出现的频率很高,所以决定,对他好好研究一番。     ThreadLocal可以理解为主要解决多
原创
1638阅读
0评论
2点赞
发布博客于 6 年前

AsyncTask详解

上篇介绍了Handler实现主线程和子线程间的通信,在Android中还提供了一种更方便使用的AsyncTask来实现主线程和子线程通信.使用AsyncTask就不用自己去开启子线程创建Handler、重写handlerMessage()等操作了,我们只需要一个AsyncTask类即可搞定。但是在使用场合上,它适用于操作时间短的场合(最多几秒钟),如果是长时间的操作不建议使用AsyncTask,而
原创
355阅读
0评论
0点赞
发布博客于 6 年前

Handler的实现原理及其与Message、MessageQueue关系详解

在Android中为我们提供了一个主线程和子线程之间的通信机制,这种机制就是利用Handler、Message、Looper和MessageQueue来彼此联系起来的。那么为什么要提供这么一种机制呢?因为Android是单线程模式的,所谓单线程模式就是说,在app启动时就会创建一个对应的唯一的一个主线程(ActivityThread实例),这个实例维护着界面ui的更新、用户的各种响应事件等。这些更
原创
2032阅读
0评论
1点赞
发布博客于 6 年前

Volley使用与解析

Volley为我们提供了五种基本的网络请求方式,分别是StringRequest、JsonRequest、JsonObjectRequest、JsonArrayRequest、ImageReques,本博客会详细的介绍其用法以及原理。
原创
960阅读
0评论
0点赞
发布博客于 6 年前

Android动画探究

个人觉得,一款移动应用软件,影响用户体验的很大一部分就取决于动画,Android中也是如此,因此在应用层开发中我个人也很注重动画的使用,在能够熟练使用后就想探究其原理了,因此,开这篇博客不仅仅是对动画的一个总结,也是对动画的更深入的一个探究。话不多说,开写了。    Android动画可以分为三类:Tween Animation(补间动画)、Frame Animatino(帧动画)、Prope
原创
563阅读
0评论
0点赞
发布博客于 6 年前

Activity、Service生命周期的理解

一、Activity的生命周期包括以下方法:      onCreate()、onStart()、onRestart()、onResume()、onPause()、onStop()、onDestroy().       我们先来了解下各方法都执行什么样的操作。(均来自源码的注释)       onCreate() :当一个Activity一开始时执行的方法,在这个方法中可以进行的操作包
原创
1337阅读
0评论
2点赞
发布博客于 6 年前

Android中单位值得使用

首先明确两个概念:分辨率和密度。   分辨率:表示整个手机屏幕上有多少点,比如800x480个点,它是对于软件来说的一个显示单位,其单位就是px。  密度:每英寸显示的px点的个数。  一般android设置长度和宽度多用dip,设置字体大小多用sp. 在屏幕密度为160,1dp=1px=1dip, 1pt = 160/72 sp 1pt = 1/72 英寸.当屏幕密度为2
原创
287阅读
0评论
1点赞
发布博客于 6 年前

Android服务器通信的几种方式详解

Android的三种网络通信方式
原创
637阅读
0评论
0点赞
发布博客于 6 年前

常用命令(长期更新)

大多数命令如果不知道怎么使用,通常使用:命令 -help ;如果不行也会给出提示啊。。。   1、查看所有端口占用情况:netstat -ano;   2、查看指定端口号的情况:netstat -ano|findstr "port";       以上获取端口号时可以查看到PID、IP地址、目标地址、协议等内容。   3、根据PID查看应用程序:tasklist|fin
原创
354阅读
0评论
0点赞
发布博客于 6 年前

传输层

传输层是整个网络体系结构中最关键的层次之一。本篇重点讨论两种协议:TCP协议和UDP协议。    第一部分  传输层协议概述       从通信和信息处理的角度来看,传输层和它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最底层。当网络的边缘部分中的两个主机使用网络的核心部分功能进行端到端的通信时,只有主机的协议栈才有运输层。   从IP层来
原创
519阅读
0评论
0点赞
发布博客于 6 年前

wireshark抓取数据包

在看计算机网络的时候配合着wireshark来实际感受一下各层次的协议会有更直观的感受,下面的一些知识点是熟练运用wireshark所必备的,我也是边学习边使用边记录,会长期更新。   1、wireshark是捕获机器上的某一块网卡的网络包,当你的机器上有多块网卡的时候,你需要选择一个网卡。   2、为了安全考虑,wireshark只能查看封包,而不能修改封包的内容,或者发送封包。
原创
535阅读
0评论
0点赞
发布博客于 6 年前

给定一个源字符串,一个字符串字典,判断该字典是否是由源字符串完全分割而来的

比如一个源字符串:“welcome”  一个字典,假设是String数组{"wel","m","com"},这个判断是true,算法如下:public static boolean wordBreak(String s, Set dict) { return wordBreakHelper(s, dict, 0); } /** * 算法思路是这样的:强调下,在思考算法之前一定要把
原创
4685阅读
0评论
0点赞
发布博客于 6 年前

找出最长回文子串

回文字符串是指:争着和反着看都是一样,即“基于中线对称”,比如:aaaa,abba,abcba,都是回文串,现在我们任意给定一个字符串,求出该字符串中最长的那个子回文串,或者是求出所有子回文串,算法如下:   一、暴力---遍历字符串的所有子字符串,每个子字符串作一次检查:/** * 最大回文子串,这方法属于“暴力检查啊。。”,即会将字符串的每个子字符串都检查一遍,最后找出最长
原创
346阅读
0评论
0点赞
发布博客于 6 年前

逆波兰表达式(后缀表达式)

逆波兰式,也叫做后缀表达式,每一运算符都置于其运算对象之后,故称为后缀表示,比如下面的式子:   a+b ---> a,b,+   a+(b-c) ---> a,b,c,-,+    a+(b-c)*d ---> a,b,c,-,d,*,+   a+d*(b-c)--->a,d,b,c,-,*,+    a=1+3 ---> a=1,3 + 实现代码如下:public
原创
294阅读
0评论
1点赞
发布博客于 6 年前

入门算法--数组反转

这个是入门级的,感觉没必要写,还是贴上来吧:   /** * 实现数组反转,很简单,直接利用中间变量交换其值即可, * @param arr * @return */ public static Object[] arrRever(Object[] arr){ //将数组分为两半,利用中间变量即可实现反转, int length = 0;
原创
667阅读
0评论
0点赞
发布博客于 6 年前

基本排序算法

一、冒泡排序算法  /** * 冒泡排序 从小到大 * 算法思想: * 将两个相邻的数据相比较(这里是从小到大排序), 如果后一个大于前一个就交换其值, * 每一次经过遍历后就会比较出一个最大值,该最大值会被交换到最右边(相对于此次遍历而言) * 每次遍历只能比较出一个“最大值”(相对于此次遍历而言),假设一个数组长度为n,那
原创
322阅读
0评论
0点赞
发布博客于 6 年前

网络层

网络层在整个七层模型中是很重要的一层,这一篇的内容可能会比较多,先做一个整体梳理
原创
1037阅读
0评论
1点赞
发布博客于 6 年前

数据链路层

首先撇清两个概念:链路和数据链路。 链路是指从一个结点到另一个结点的一段物理线路,而中间没有任何其他的交换结点,在进行数据通信时,两个计算机之间的通信路径往往要经过许多段这样的链路,可见链路只是一条路径的组层部分,   数据链路是除了一条物理链路外还需要加上一些必要的通信协议来控制这些数据的传输。若把这些实现的协议的硬件和软件加到链路上,就构成了数据链路。现在最常用的方法是使用网络适配器来
原创
1185阅读
0评论
0点赞
发布博客于 6 年前

物理层

什么是物理层?物理层的作用是什么?
原创
4047阅读
1评论
1点赞
发布博客于 6 年前

计算机网络概述

公司项目顺利交给客户了~在之前一段时间发现自己的关于网络方面的知识都很模糊!不够清晰,不明原理,也不怎么会应用!这叫我一个搞IT的人情何以堪啊,因此本周的任务就是花时间把计算机网络重新认识一遍!果断把学校的那本《计算机网络》--谢希仁编著的书拿出来再阅读一遍!顺便整理记录下来!记录下的可能会很基础。废话不说了。   好吧,从最简单的开始,引出一下一个名词:网络、互联网、因特网、路由器、分组交换
原创
661阅读
1评论
0点赞
发布博客于 6 年前

计算机网络

大二时候专业开设的计算机网络课程到现在基本记忆模糊了!在此梳理一下网络方面的知识,主要整理七层模型和通信协议。       我们在开发网络应用时必定涉及到数据传输,在我们程序员这个层面上理解是酱紫的:客户端请求服务器上传或下载数据,无论是使用Http协议传输还是Socket来实现,这个过程我们都很熟悉,那么从客户端请求到服务器端响应的过程是怎样的呢,客户端是如何准确的与服务器进行连接、反馈的呢
原创
393阅读
0评论
0点赞
发布博客于 6 年前

Android小知识清单(一)

1、invalidate()和postInvalidate()的区别:        对于invalidate()源码注释如下:     *Invalidate the whole view. If the view is visible,     * {@link #onDraw(android.graphics.Canvas)} will be called at some poi
原创
740阅读
0评论
2点赞
发布博客于 6 年前

对EditText拓展完成输入内容分隔处理

今天没有时间看源码了。就写一篇今天的工作记录吧,为了解决一个小功能,就对Android的EditText作了功能上的拓展。     首先说下遇到的需求,在EditText中对用户输入的内容进行一次“重新排版”,即没四个字符串分为一组,每一组用空格隔开:核心源码如下:        /** * 文本改变监听 * @author sunny * */ private
原创
516阅读
0评论
0点赞
发布博客于 7 年前

FrameWork之View绘制过程(上)

上一篇说了一部分,今天继续。     我们首先应该清楚一个概念,即我们常说的“视图大小”,视图大小指的什么呢?应用程序开发时,我们经常在xml文件中使用android:layout_height和android:layout_width;属性来设置宽和高,这指的是视图的大小码?          当然不是!事实上,View系统希望我们明白,一个View画布(Canvas)是没有边界的,即无
原创
534阅读
0评论
0点赞
发布博客于 7 年前

FrameWork之View绘制过程

我们已经知道View的绘制过程包括计算视图大小(measure)、为视图分配位置(layout)以及把视图绘制到屏幕上(draw)三个步骤,下面详细了解如何完成这三个步骤。     我们假设WmS已经将窗口创建完毕,现在我们要在一个Activity的onCreate()方法中调用setContentView(R.layout.chat_mesg);来绘制一个Activity的界面。下面跟着源码
原创
523阅读
0评论
0点赞
发布博客于 7 年前

Android项目的错误异常收集日志记录

今天上午把工作做完,下午就研究自己不懂的知识点,研究的情况如下:1)实现Android程序的异常捕捉日志记录上传到服务器:         主要是自己定义一个CrashHandler ,然后implements UncaughtExceptionHandler类。来实现捕捉异常。         其次自己实现一个Application,在其onCreate中注册CrashHandl
原创
857阅读
0评论
0点赞
发布博客于 7 年前

在小型OA系统中使用Java发送邮件

首先需要下载一个javax.main包,将包导入工程,然后,然后
原创
1846阅读
0评论
0点赞
发布博客于 7 年前

java发送短信实例

最近在做一个小型OA系统,所以没多少时间
原创
663阅读
0评论
0点赞
发布博客于 7 年前

关于Servlet学习(下)

上一篇讲了Servlet的入门
原创
449阅读
0评论
0点赞
发布博客于 7 年前

关于Servlet学习(上)

Java  Servlet,故名思议,它是
原创
354阅读
0评论
0点赞
发布博客于 7 年前

关于Struts2的配置文件的result的name问题。

在编写Struts2的Action时我们都习惯性的直接
原创
1299阅读
0评论
0点赞
发布博客于 7 年前