- 浏览: 13923 次
- 性别:
最新评论
文章列表
线程的同步通信与线程范围内的数据共享问题
- 博客分类:
- java语言
线程的同步通信与线程范围内的数据共享问题一、线程的同步通信
什么是线程的同步通信?他有什么作用?这是我们在看到一个新概念时多会想起的两个问题。线程的同步通信就是多个线程在做相关的事或者说在操作同一份数据时,线程之间建立一种互知的通信关系;它的作用是使线程之间能和睦共处,既其中某一线程做完这件事后,再通知另外的线程来做这件事,不出现混乱。如上一篇文章留下的面试问题就是一个很好的线程同步编程案例。下面给出详细的代码,和疑问解释。public class CommunicationThread {
final static Lock lock=new Lock();//实例化内部类
publi ...
多线程初谈——线程的创建与互斥问题
- 博客分类:
- java语言
多线程初谈——线程的创建与互斥
对于线程起初也很是不解,觉得很乱,线程的互斥就跟别提了。创建线程也一直只能通过创建Thread子类的方法,像那个实例化Runnable对象一直不是很理解,也没敢用,二者的线程创建区别在哪也不清楚。带着这些困惑一直到了现在。随着对Android语言的深入学习,发现线程真的很重要,不弄清楚就难以做出一个好的产品,不解决线程的互斥,同步通信,死锁问题,就无法得到一个高质量,高安全的东西。所以趁着国庆期间把线程同步这一块重新学习了一遍。以下是我在学习过程中做出的一些总结,希望对还在苦恼的你有些许帮助。一、创建线程的两种方法:
1、通过创建Thread子类来实现线 ...
Android网络通信之Http协议在通过Http协议进行Android网络编程时,首先要了解清楚Http通信中的POST和GET请求方式的不同,GET可以获得静态页面,也可以把参数放在URL字符串后面,传递给服务器。而POST方法的参数是放在Http请求中。还 ...
一、网络通信的基本原理
现如今,出现了各式各样的聊天平台,像微信,飞信,YY,qq,交流社区等。这些都可以实现在一个电脑或手机上给另外的电脑或手机发送你想说的话或传送文件。那它是如何实现的呢?电脑之间或手机之间,或手机与电脑之间实现信息交流的基础就是网络。在网络互通的基础上,通过特定的通信协议,就可以在相应的平台上实现真正意义上的信息交流了。
上面说的或许太理论了,那我详细的介绍下互联的实质。在电脑连上网络之后,电脑就具备了一个独立的IP地址,以便另外的电脑或机器找到;IP地址在网络中标识一台机器的位置,但是,当A机器与B机器通信时,其实是这两台机器上的程序在通信,A如果想和B通 ...
简单的bmp文件打开与保存
- 博客分类:
- java语言
简单的bmp文件打开与保存 在谈bmp文件的打开、保存之前,我先说说在制作这一软件时的感受。在初次听到用输入输出流制作bmp格式文件的打开和保存时,有点不知所措,不知什么是bmp文件,他的格式是怎样的,我该 ...
分形浅谈——科赫曲线和L-System
- 博客分类:
- java语言
分形浅谈开始接触到分行图时,感觉很难,无法下手,只能做出第一层或第二层,后续的就做不下去了。但是当你找出里面的规律之后就不一样了。分形,其本质可以说是迭代递归的一种运用。以下是我找出的一个分形制作的一个步骤:
一、观察分形图的结构,找出它的特点,也就是它的共同点,他可以有什么构成得到。
二、观察分形图的角度的变化。也就是说后面的一层是前面一层经过多少度的转角得到。
三、归纳出一个可行的递归方法体。
下面以科赫曲线来进行阐述。
我们先观察它的图形:
可以发现它是由下面这个简单的图形变化而来:
所以第一步先写出这个图形来。然后找出他接下来演变的规律。一般都是观察前后角度的变化规律。如下:
前后 ...
对关键字final、static的理解
- 博客分类:
- java语言
一、final关键字
final在java中表示的意思是最终,也可以称为完结器。可以使用final关键字声明类属性方法,在声明是需注意以下几点:
1)使用final声明的类不能有子类;
2)使用final声明的方法不能被子类所覆写;
3)使用fin ...
对关键字的理解——访问权限
- 博客分类:
- java语言
关键字public、protected、、default(默认)、private的区别
一、关键字的说明及应用
1)、关键字public
public属于公共访问权限。如一个类中的成员使用了public访问权限,就可以在所有的类中被访问,不管是否在同一个包中。public可以修饰类、方法、属性。
代码运用如下:
/**
* 访问权限public的使用
* 用public声明类
* @author Administrator
*
*/
public calss Student{ //如果此处把public 改成p ...
队列简称队,是限制在表的一端进行插入操作,而在表的另一端进行删除操作的线性表。把允许插入数据的一端称为队尾,而把允许删除的一端称为队首或队头。向队列中插入新元素称为进队或入队,新元素进队后就成为新的队尾元素;从队列中删除元素称为出队或离队,元素离队后,其后继元素成为新的队首元素。由于队列的插入和删除各在一端进行,所以每个元素出对的顺序必然就是进队的顺序。
在进行队列的运用时,我们先进行队列的接口定义:
public interface NetJavaList {
//向队列中加入一个对象
public void add(Object obj);
//取得队列中指定位置的对象
pu ...
- 2013-03-23 14:58
- 浏览 727
- 评论(0)
重绘是为了在画布上保留原始痕迹的一种方法,他的目的是用来保存你原始数据,以免退出再进入时数据的丢失。下面以代码举例:
import java.awt.Graphics;
import javax.swing.JFrame;
//继承Jframe来创建窗体
public class Repatine extends JFrame{
//数组的创建
MyShape[] my=null;
public void showUI(){
setSize(600,600);
setTitle("重绘");
setSize(600,600);
setResizab ...
- 2013-03-22 21:44
- 浏览 648
- 评论(0)
一、数组有一维数组、二维数组之分。像int[] ia就是一维数组,int[][] ia就可称为二维数组。数组的定义方式有三种:1、直接指定数组的长度:int[] ia=new int[10];2、在创建数组时给数组中的元素赋值:int[] ia=new int[]{4,8,19};3、仅定义 ...
- 2013-03-22 21:43
- 浏览 1055
- 评论(0)
监听器与变量的作用域
- 博客分类:
- java语言
监听器是用来实现一些可控操作的工具,如你在打开一个QQ界面的时候,点击登入按钮,这时就有一个监听器在执行登入这一方法。添加监听器的一般格式为:
需要加监听器的对象.add执行命令名Listeneer(实现接口的类);
代码如:Jframe.addMouseListener(DrawListener);
若你想在某一登入界面上加上一个按钮的监听器,其代码则为:
package Loginfrme;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
public class Java ...
- 2013-03-22 21:41
- 浏览 736
- 评论(0)
Java中的接口
什么是接口?不是以class定义的类而是以interface定义的类就是接口,他是用来作为父类用于继承的。代码如:
public interface People {
//定义属性
public static final String name = "aa";
public String subject="java";
public int age=24;
public String sex="男";
public void setSex(String s);
public Strin ...
Java中类的继承、重写、自动转型以及多态
1) 类的继承
在我们编写一个学生类时,他都有姓名、学分、性别和年龄等属性,但是当我们把这个学生类扩展到大学学生或中学学生时,可以知道属性依旧没变。但是为了省去重定义相同属性的的代码,这时就可以运用类的继承。那么什么叫类的继承?通过关键字“extends”来定义的类。用代码说明:public class Student extends People {}//继承People类,像这样的有关键字extends的就可称为类的继承,其中student类叫作子类,People类为父类。那么子类Student类继承了父类People什么东西呢?子类继承了父类中拥 ...
java的构造器方法、方法重载和引用传递
- 博客分类:
- java语言
Java的构造器方法、方法重载与引用传递
一、 构造器方法
构造器方法是用来方便创建对象的,有无参构造器方法和含参构造器方法。像public Student(){ }这样“()”内不写变量的就是无参构造器方法,Student(String name){ name =n; }这样里面声明了一个变量属性name的就是属于含参构造器方法。但是无参构造器方法在被调用时并不是说没有返回值,它可以返回学生这个对象的内存地址。
在我们创建某个对象时一般的格式是:类名 变量名=new 类名();如创建一个学生对象:Student st=new Student();这里的Student()就是类Student的 ...