今天看完了艾恺教授编著的《这个世界会好吗?——梁漱溟晚年口述》这本书。从二者谈话的中可以了解梁老的思想,了解他的为人,同时也可以窥见民国约略的历史。对于梁老的佛家及儒家思想的解读,我比较赞同。但是对于他的关于我们的世界、我们的国家的发展的看法,我还是相当疑惑,或许是我思想太过浅薄。
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了?捏哈哈。。。。不过现在是没时间弄了,要睡觉了。
晚安!西安!
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成功,原来是小于符号的自动转义造成的。
算法只写了两个,待续……
