- 博客(68)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Java静态方法为什么不能访问非静态方法
非静态方法(不带static)可以访问静态方法(带static),但是反过来就不行,为什么呢?public class test{ public void static main(String args[]){ method(); //会出错,提示你讲method方法改成静态的 method2(); //调用方法正确 new Test2().method(); //正确 }
2015-02-05 14:13:25
1111
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 java中接口的作用
话说小镇上开了一家宠物食品店,小动物们可以去买零食吃,大家都非常高兴,猫咪啊,狗狗啊,猪猪啊……都约好了一起去!/* * 这是一只Dog类,由于门口没有写规范,它们不知道自己要说什么* */public class DogPet {}
2015-01-30 16:52:06
560
原创 Android Json解析技术
[{"name" : "zhangsan", "age" : 20},{"name" : "lisi", "age" : 30}]解析过程:1、[ 开始解析数组2、{ 开始解析对象3、"name":"zhangsan" 解析键值对4、"age" : 20 解析键值对5、} 解析对象结束6、{ 再开始解析对象7、解析键值对8、解析键值对9、解析对象结束1
2015-03-23 22:17:02
575
原创 Android XML解析技术——DOM
1、Book类public class Book { private int id; private String name; private float price; public Book() { // TODO 自动生成的构造函数存根 } public Book(int id, String name, float price) { super(); th
2015-03-20 18:05:22
501
原创 Android XML数据解析——pull技术
Android 使用pull的技术解析XML1、我们可以使用java自带的PULL来解析XML文件(不是JDK自带的,需要导入包)2、PULL解析器的运行方式和SAX解析器很相似,它提供了类似的事件,比如开始元素和结束元素,使用parser.next()可以进行下一个元素并且触发相应的事件,事件将作为代码被发送,因此可以使用一个switch来对事件进行选择,然后进行相应的处理。当开始解析元
2015-03-20 15:59:09
594
原创 Android XML数据解析——SAX解析
XML称为可扩展标记语言,它与HTML一样,都是SGML(标准通用标记语言),XML是Internet环境中跨平台的,依赖于内容技术,是当前处理结构化文档信息的有力工具,可扩展标记语言XML是一种简单的数据存储语言,使用一些列简单的标记描述数据。XML结构示意图: jack 30 rose 25XML的结构解析如下:1、节点2、元素3、
2015-03-20 14:54:10
576
原创 Java构造方法的作用
构造方法的作用构造方法的作用之一就是实例化对象,之前对此一直都不是很了解,为什么要实例化对象呢?我们知道对象具有一定的属性,例如姓名,年龄,身高等,我们在定义类的时候就得要定义这些属性,但是实例化的意思是什么呢?就是通过这些属性,把这些人实际的表达出来,通过属性或方法来实例一个人。public Person{//定义了一个人的属性,具备一些特征和功能 String name; int
2015-03-19 19:39:02
4525
2
原创 java Socket通信——TCP协议(二)
如何实现客户端和服务端的互相通信呢?也就是服务端也可以发送消息给客户端,客户端也可以处理消息,就像QQ聊天一样。客户端代码:public class TcpClient { public static void main(String[] args) throws IOException { //需求:客户端发送数据给服务端,并读取服务端反馈的数据 //1、创建Socket客
2015-03-19 15:42:15
549
原创 Java Socket编程——TCP协议(一)
TCP传输=Socket和ServerSocket=建立客户端和服务器端=建立连接后,通过Socket中的IO流进行数据的传输=关闭Socket=同样,客户端与服务器端是两个独立的应用程序面向连接的一种开发,就是对方在才可以通讯,通过3次握手确定连接。客户端代码:public class TCPClient { public static void main(S
2015-03-19 14:40:55
395
原创 java Socket网络编程——UDP协议
发送方代码public class UDPSender { public static void main(String[] args) throws IOException { /*需求:建立UDP的发送端 * 思路: * 1、建立可以实现UDP传输的socket服务 ——好比货物运输的港口 * 2、明确具体发送的数据
2015-03-19 11:34:50
490
原创 java反射技术的应用(二)
反射技术中,最重要的一点:先获取到那个类。如何获取那个类呢?这是最重要的一步操作。反射技术:动态的获取类以及类中的成员,并可以调用该类成员,以前是有什么类,就new什么类,现在是没有类,给什么类就new什么对象。无论new 什么对象,都需要先获取字节码文件,如何获取呢?发现java已对字节码文件进行了描述,用的是Class类完成的(首字母大写)。每一个class文件都有可能生产一个Cl
2015-03-18 16:16:39
436
原创 java反射技术的应用(一)
1、反射技术的应用场景实例假设我买了一台笔记本电脑,支持插入外界设备,代码如下:public class NoteBook{ //笔记本是可以运行起来的 public void run(){ System.out.println("note book run"); } }创建主程序运行笔记本public class Main{ public static void main
2015-03-18 11:22:51
373
原创 使用GET和POST提交数据
POST和GET方式的定义HTTP-GET和HTTP-POST是使用HTTP的标准协议动词,用于编码和传送变量名/变量值对参数,并且使用相关的请求语义。每个HTTP-GET和HTTP-POST都由一系列HTTP请求头组成,这些请求头定义了客户端从服务器请求了什么,而响应则是由一系列HTTP请求数据和响应数据组成,如果请求成功则返回响应的数据。HTTP-GET以使用MIME类型appli
2015-03-13 22:38:19
1106
原创 HTTP协议的介绍
HTTP协议的定义WWW是以Internet作为传输媒介的一个应用系统,WWW网上基本的传输单位是Web网页,WWW的工作是基于客户机/服务器的计算模型,由Web浏览器和Web服务器构成,两者之间采用超文本传输协议HTTP进行通信。HTTP协议是基于TCP/IP协议之上的协议,是Web浏览器和Web服务器之间的应用层协议,是通用的,无状态的面向对象的协议。如果要实现网络互连,我们要思考
2015-03-13 21:38:27
465
原创 Android 采用AIDL绑定远程服务
如果服务Service和Activity在同一个应用里,我们可以按照上一篇文章记录里的那样去控制,但是如果不在一个应用中,那该如何控制呢?例如阿里客户端,不仅仅是在淘宝网上可以支付,在其他地方支付页面(游戏购买道具页面等),第三方工具都可以打开使用。1、新建第一个工程:支付宝安全支付XML布局文件和Activity中没有任何操作,新建一个接口Iservice.javapackage
2015-03-13 14:13:23
640
原创 Activity调用Service里的方法
Service是不能被实例化的,那么我们如果想调用里边的方法,该怎样进行呢?首先看一个Serviece类public class SingService extends Service{ @Override public IBinder onBind(Intent intent) { // TODO 自动生成的方法存根 return null; } @Override
2015-03-12 16:58:53
3333
原创 Activity的启动模式
假设有几个Acitivty A、B、C,互相之间可以跳转1、standard:默认的启动模式,采取压栈的方式,例如for循环100次,100个Intent打开同一个页面,那么此时就会开启100个Activity。例如 A B B B B B ……2、singelTop:在一些特殊的情况下,为了避免糟糕的用户体验,如果发现任务栈的栈顶已经存在了这个activity,再去开启这个Activit
2015-03-12 16:11:56
409
原创 Activity的生命周期
Activity的几种状态:1、onCreate():创建的时候被调用,一般是一些函数的实例化都写在这里;2、onStart():当Activity变成被用户可见的时候调用该方法,如果放慢显示过程就会发现,onStart()是慢慢变大的一个过程;3、onResume():界面获取焦点,可以点击的时候调用该方法,例如弹出一个透明的弹出框,虽然Activity页面可见,但是并没有获取焦点,
2015-03-12 15:18:51
445
原创 Android 调动系统照相机拍照和录像
1、首先定义一个Button,android:click = "click"2、按钮的点击事件Intent intent = new Intent(); intent.setAction("android.media.action.IMAGE_CAPTURE"); intent.addCategory("android.intent.category.DEFAULT"); st
2015-03-11 13:52:47
1090
原创 Android notification机制
在收到短信的时候,通知栏会显示提示信息,notification的开发如下:1、获取手机系统里的通知管理器NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);2、实例化一个builder,它是用来表示实例化的具体内容的Notifaction.Builder bui
2015-03-11 12:41:49
764
原创 Handler简介(消息处理类)
Handler允许发送和处理Message或Runnable对象到其所在线程的MessageQueue,Handler主要有以下两个作用:1、将Message或Runnable应用post()或者sendMessage()方法发送到MessageQueu中,在发送时可以指定延迟时间,发送时间及要携带的Bundle数据,当MessageQueue循环到该Message时,调用相应的Handler
2015-03-03 00:44:29
726
原创 Looper(循环者介绍)
在介绍Looper之前,需要先来了解以下MessageQueue的概念。在Android 中,一个线程对应一个Looper对象,而一个Looper对象又对应一个MessageQueue(消息队列)。MessageQueue用于存放Message(消息),在MessageQueue中,存放的消息按照先进先出的原则执行,MessageQueue是被封装到Looper里面。Looper对象用来为一个
2015-03-02 23:54:20
856
原创 Android 共享全局数据
我们平时在开发过程中,有时候会需要一些全局数据,来让应用中的所有Activity和View都可以访问的到,在这种情况下,可能首先想到的是自己定义一个类,然后创建很多静态成员,但是Android已经为我们提供了解决方案,具体如下: 在Android中,有个叫Application的类,我们可以在Activity中使用getApplication()方法来获得,它是代表我们的应用程序类
2015-03-02 16:04:01
684
原创 AsyncTask的介绍
1、AsyncTask的介绍在Android 开发应用时,必须遵守单线程模型的原则:Android UI更新是不安全的,所以这些操作必须在UI线程中执行。在单线程模型中始终要记住两条法则:(1)不要阻塞UI线程,即不要在主线程中进行耗时操作;(2)确保只在UI线程中更新界面当一个程序第一次启动时,Android会同时启动一个对象的主线程(Main Thread),主线程负责处理与U
2015-03-02 16:01:34
481
原创 网络ISO/OSI参考模型
计算机的网络模型可以分成7个层每分层的好处:1、通过每一层实现一宗相对独立的功能来简化问题;2、每一层的设计都是独立的,它不比管辖下一层是如何实现的,只需要知道下一层为我提供的服务,和我必须为上一层提供哪些服务;3、当由于技术的变化使某层的实现需要变化时,不影响其他的层次。第一层 物理层:与传输媒体的接口,完成传输媒体上的信号与二进制数据间的转换物理接口上发送或接受的
2015-02-17 09:43:26
742
原创 Java垃圾回收机制
java的垃圾回收机制是java虚拟机提供的能力,用于在空闲时间以不定时的方式动态回收无任何有用的对象占据的内存空间。需要注意的是:垃圾回收,回收的是无任何引用的对象占据的内存空间,而不是对象本身,很多人都会误解成为回收对象,实际上这是不正确的。例如:
2015-02-05 14:17:19
593
原创 计算机网络组成和分类
1、主机系统和网络系统(1)主机和终端组成的主机系统:例如一台大型机有很多个输入输出设备的模式(2)Client/Server结构的计算机(C/S):随着网络的发展,可以实现不同计算机之间的通讯客户端的处理器处理输入输出信息,通过发送消息让服务器处理,这样服务器的效率就比较高,不需要处理基本的输入输出信息。2、计算机网络与分布式系统通俗的讲就是网络就是很
2015-02-04 23:13:40
2260
原创 C语言动态内存分配
1、传统数组的缺点(1)数组的长度必须事先指定,且只能是长整数,不能是变量例子:int a [5 ]; // ok int len = 5; int a [len ]; //error (2)传统形式定义的数组,该数组的内存程序员无法手动释放 数组一旦定义,系统就会为该数组分配存储空间会一直存在,除非数组所在的函数运行结束# includevoid f(
2015-02-04 21:26:45
384
原创 java中堆内存和栈内存的区别
堆和栈都是内存中的一部分,有着不同的作用,而且一个程序需要在这片区域上额分配内存,众所周知,所有的java程序都是运行在JVM虚拟机内部,我们这里所介绍的自然是JVM内存中的堆和栈。但是实际在java开发过程中不需要考虑堆内存释放的问题,因为虚拟机本身的机制就可以自动管理这些内存。最主要的区别就是栈内存用来存储局部变量和方法调用,而堆内存用来存储java中的对象,无论是成员变量,局部变量还是类
2015-02-03 10:07:56
650
原创 Android TextClock获取系统时间,格式跟随设置改变
<TextClock android:id="@+id/textclock" android:layout_width="wrap_content" android:layout_height="wrap_content" android:format12Hour="yy
2015-01-19 16:00:34
13299
2
原创 C语言中关于真假的处理
C语言这样来处理数据的真假的:非零即为真,零是假;真就用1来表示,假用0来表示。来看代码例子:# includeint main(void){ int i = 10; int j = 20; int m; m = (3 > 2)&&(j = 8);//注意一个 & 表示的是引用地址 printf("m = %d, j = %d\n", m ,j); return 0;
2015-01-06 00:12:08
2457
原创 程序员如何编写出更有保存价值和学习价值的程序
我们在学习的过程中,会写很多程序,但是过后容易遗忘,那么怎样写的程序才是最有价值方便日后复习查看呢?/* 2014年12月25日23:50 功能:(程序完成的功能) 目的: 测试%x %X %#x %#X的用法*/# include int main(void){ int i = 47; //47是十进制,如果要用其他进制,请参考进制之前博客内容 printf("
2014-12-29 23:56:47
413
原创 C语言基本的输入和输出函数(printf()和scanf() )
printf() -- 将变量的内容输出到显示器上,有四种用法:1、printf("字符串\n");printf("欢迎学习C语言\n"),\n是转义字符,表示换行,和java类似。2、printf(“输出控制符”,输出参数);int i = 10;printf("%d",i); //d表示十进制,有个疑惑,本身我们给 i 赋值就是按照十进制赋值的,这里为什么要加上%d呢
2014-12-29 22:46:58
1399
原创 C语言编程预备知识
很多人写程序很长时间了,一些基本的知识都不一定完全理解,下面做一个总结,对新手有个好的引导作用。1、CPU、内存条、硬盘、显卡、主板、显示器之间的关系2、HelloWorld程序如何运行起来的3、什么是数据类型4、什么是变量5、CPU、内存条、Vc++6.0和操作系统之间的关系6、变量为什么要必须的初始化(赋值)7、如何定义变量8、什么是进制9、常量在C
2014-12-21 14:37:45
958
原创 C语言编写简单的一元二次方程
代码规范化写法:int x1 = (-b + sqrt(delte) / (2*a));注意保持空格,这是通用的规范化写法,因为在公司里代码不是仅仅你一个人看,而是大家都会看,所以一定要使用规范化写法,不然面试时候很有可能公司就不要你了。不规范写法:int x1=(-b+sqrt(delta)/(2*a)),注意从细节养成习惯。
2014-12-21 13:31:14
8609
原创 C语言概述
在学习郝斌老师的C语言课程,通过博客总结一些知识点,希望分享一起学习进步!一、C语言概述1、为什么要学习C语言#includeint main(void){ printf("helloworld"); return 0;}1).编程语言的起源和发展第一代语言:机器语言,简单的来讲就是0和1,计算机只能识别这种语言,其内部所有存储的信息都是01代码,包括电影和歌
2014-12-19 01:00:50
543
原创 Fragment系列—Activity中添加fragment
Fragment的定义和解释这里就不说了,面试的时候也是经常问的到,官方的文档中是推荐和ViewPager一起使用,后期会继续介绍使用方法,但是我们也可以单独使用,会遇到一些小细节问题,如果不加注意会报错的。1、XML布局文件中添加Fragment。每个Fragment其实类似与一个小型的Activity,所以有它对呀的java类。public class Example extends
2014-12-17 17:22:22
1268
原创 Android 访问网络系列(二)
上篇文章是采用HttpUrlConnection接口进行访问,实际上Android已经为我们封装了一个HttpClient接口,这是由Apache提供的。GET方法的操作代码如下:private void surfInternet(){ //HttpGet连接对象 HttpGet httpRequest = new HttpGet("http://photocdn.sohu.com/201
2014-12-12 17:51:15
555
原创 Android 开发常用Uri介绍
Uri的定义:通用资源标识符(Universal Resource Identifier),Uri代表要操作的数据,Android 上每种可用的资源,包括图像、视频、联系人等都可以用Uri来表示。Uri的组成一般分成三部分:访问资源的命名机制、存放资源的主机名、资源自身的名称,由路径表示。例如所有联系人的Uri: content://contacts/people ,某张图片的Uri: con
2014-12-12 11:15:05
877
原创 Android 访问网络系列(一)
任何形式的访问网络之前,首先应该 加上相应的权限:。1、打开网页:可以调用Android 内置的浏览器打开网页private void surfInternet(){ Uri uri = Uri.parse("http://www.sohu.com"); Intent it = new Intent(Intent.ACTION_VIEW,uri); startActivity(it);
2014-12-12 11:08:38
391
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人