2012-04-18小结

今天看完了艾恺教授编著的《这个世界会好吗?——梁漱溟晚年口述》这本书。从二者谈话的中可以了解梁老的思想,了解他的为人,同时也可以窥见民国约略的历史。对于梁老的佛家及儒家思想的解读,我比较赞同。但是对于他的关于我们的世界、我们的国家的发展的看法,我还是相当疑惑,或许是我思想太过浅薄。

发表在 每日小记 | 标签为 | 留下评论

2012-04-16小结

已经好长时间没有静下心来总结一下自己了,最近生活比较闲散,一是因为清明节假期后加上周末、运动会大大小小十来天的假期;二是因为最近思绪波动比较大。 继续阅读

发表在 杂项 | 标签为 | 留下评论

eclipse快捷键大全

编辑

继续阅读

作用域 功能 快捷键
全局 查找并替换 Ctrl+F
文本编辑器 查找上一个 Ctrl+Shift+K
发表在 学习笔记 | 标签为 , , | 留下评论

Ubuntu 11.10 64位环境编译android 2.3.5

在linux下编译android源码,用来生成系统镜像以便使用虚拟机提高android开发效率。

官方教程:http://source.android.com/source/downloading.html

Easyman的教程:http://blog.csdn.net/liaoshengjiong/article/details/3957749

下载源码的过程中如果使用google官方提供的地址的话,会由于GFW造成无法链接,使用一个镜像网站即可:

继续阅读

发表在 学习笔记 | 标签为 , , | 留下评论

ubuntu中的verilog仿真

今天闲的没事,本来想打一把imba虐虐电脑,结果发现自己总是被虐,因此罢手。

无聊之下重启了电脑,进入了前两天刚刚安装上的ubuntu 11.10,打算找找有没有作FPGA实验的工具。结果一搜还真有。于是就装呗。

这里就不得不赞美一下ubuntu的apt-get命令的方便之处了。

需要的软件:iverilog和gtkwave。

打开终端模拟器,输入以下命令:

sudo apt-get install iverilog

sudo apt-get install gtkwave

等着跑完就ok了。

至于怎么使用嘛,今天晚了,偷个懒放个链接好了。

http://blog.csdn.net/libggbil/article/details/4218472

另外碰到了几个问题,google了一下,发现大多数问题都可以在这里找到解决方法。

还有,据说iverilog还有综合的功能,这样的话岂不是可以抛弃windows了?捏哈哈。。。。不过现在是没时间弄了,要睡觉了。

晚安!西安!

发表在 学习笔记 | 标签为 , , , | 留下评论

基于Verilog设计的高效除法器

使用移位法进行除法运算,执行效率比较高.

不废话,直接上代码:
继续阅读

发表在 学习笔记 | 标签为 , | 留下评论

尘埃落定–再见了谷饭

再见了,我马上把从三月到九月的文章打包,放到已完成的那个文件夹下面。 继续阅读

发表在 每日小记 | 标签为 , | 留下评论

java学习笔记小结四:线程

线程,
线程是轻量级的进程
线程没有独立的地址空间
线程是由进程创建的(寄生在进程)
一个进程可以拥有多个线程–>多线程编程
线程有以下几个状态:
新建状态(New)
就绪状态(Runnable)
运行状态(Running)
阻塞状态(Blocked)
死亡状态(Dead)

实现线程的方法有两种:(最好使用后者来实现)
继承Thread类,重写run方法;
实现Runnable接口,重写run方法。
前者启动直接调用该类的start方法即可;
后者启动的时候需要进行
Thread 线程名=new Tread(类名);
线程名.start();
处理。

线程对象只能启动一个线程,不管是通过集成Thread还是实现Runnable接口创建线程,他们的一个对象只能启动(即start())一次,否则将会有异常抛出。不同的是如果使用实现Runnable接口的方法来创建的话,则可以通过定义两个线程而传入同一个对象实现。

Thread.currentThread().getName()返回当前线程的名称

多线程并发在处理同步问题的时候带来线程安全的概念。为了解决这一问题,关键是要保证可能出问题的代码的原子性,即在该线程执行某段代码的时候,别的线程必须等到它执行结束后才可以执行。java处理线程同步问题的方法很简单,只需在需要同步的代码段加上synchronized(Object){同步代码块}即可,我们称此为对象锁。

http://www.blogjava.net/site120/archive/2007/01/09/92496.html

深入来说就是java的任一对象都有一个标志位,该标志位具有0和1两种状态,其开始状态为1,当某个线程执行了synahronized(Object)这条语句后,Object对象的标志为变为0状态,知道执行完整个synchronzied语句中的代码块后,该对象的标志位又回到1状态。当一个线程执行到synchronized(Object)语句的时候,先检查object对象的标志位,如果是0,表明有另外一个线程正在执行synchronized包括的代码,那么这个线程暂时阻塞,让出cpu资源,知道另外的那个线程执行完相关的同步代码,并将Object对象标志位变为1状态,这个线程的阻塞就被取消,线程能够继续运行,该线程将Object的标志位变为0状态,防止其他的线程再进入相关的同步代码块中。

并行执行和串行执行的协同工作。

发表在 学习笔记 | 标签为 , , | 留下评论

java学习笔记小结三:图形界面及事件处理

GUI(Graphices User Interface)图形用户界面开发:
swing组件的使用,
awt,Abstract Windows Toolkit
swing,解决了awt存在的lcd(升麻玩意)问题
swt,解决了swing比较耗内存的问题
JFace,更强大,更易用

布局管理器,流式布局管理器、边界布局管理器、网格、卡片、网格包布局管理器,前三种最常见。

swing绘图一般流程:
引入必要的包
定义组件
主函数 extends JFrame
调用构造函数
构造函数
创建组件
设置布局
添加组件
设置JFrame

java事件监听机制,java事件处理是采用“委派事件模型”,就是说事件发生时产生时间对象(即事件源),会把此“信息”传递给“事件监听者”。“信息”实际上就是java.awt.event事件类库里某个类所创建的对象。

事件源–>事件对象–>事件监听者{事件处理方法}

重点,待续…

发表在 学习笔记 | 标签为 , | 留下评论

使用java实现各种排序法

今天下午没有课,想着老早看的视频中讲的使用java实现各种排序的方法也忘得差不多了,因此想踏踏实实的写一下。

算了,搞了半天代码总是不能完整显示。拉倒吧。
update:
再试试。
冒泡:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.fuyang;
 
public class Sort {
 
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int arr[]={1,4,2,9,7};
		long startTime=System.nanoTime();
		Bubble bubble=new Bubble();
		bubble.sort(arr);
		long endTime=System.nanoTime();
		System.out.println("冒泡法用时:"+(endTime-startTime)+"纳秒");
		long startTime1=System.nanoTime();
		Select select=new Select();
		select.sort(arr);
		long endTime1=System.nanoTime();
		System.out.println("选择法用时:"+(endTime1-startTime1)+"纳秒");
	}
}

第二段

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.fuyang;
 
public class Sort {
 
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int arr[]={1,4,2,9,7};
		long startTime=System.nanoTime();
		Bubble bubble=new Bubble();
		bubble.sort(arr);
		long endTime=System.nanoTime();
		System.out.println("冒泡法用时:"+(endTime-startTime)+"纳秒");
		long startTime1=System.nanoTime();
		Select select=new Select();
		select.sort(arr);
		long endTime1=System.nanoTime();
		System.out.println("选择法用时:"+(endTime1-startTime1)+"纳秒");
	}
}

第三段

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package com.fuyang;
 
class Bubble{
	//冒泡排序法
	public void sort(int arr[]){
		int temp=0;
		System.out.print("使用冒泡排序法得到的结果:");
		for(int i=0;i<arr.length-1;i++){
			//确定已经排好序的数的个数
			for(int j=0;j<arr.length-1-i;j++){
				//在未进行排序的数字中比较相邻的两个数
				//如果后面的数小于前面的那个,则交换
				if(arr[j]>arr[j+1]){
					temp=arr[j];
					arr[j]=arr[j+1];
					arr[j+1]=temp;
				}
			}
		}
		for(int i=0;i<arr.length;i++){
			System.out.print(arr[i]+" ");
		}
	}
}

ok成功,原来是小于符号的自动转义造成的。
算法只写了两个,待续……

发表在 学习笔记, 杂项 | 标签为 , , | 留下评论