02 2012 档案
摘要:Ubuntu Linux 环境变量同Windows一样,Ubuntu Linux系统包含两类环境变量:系统环境变量和用户环境变量。系统环境变量对所有系统用户都有效,用户环境变量仅仅对当前的用户有效。用户环境变量通常被存储在下面的文件中:~/.profile~/.bash_profile 或者 ~./bash_login~/.bashrc上述文件在Ubuntu 10.0以前版本不推荐使用。系统环境变量一般保存在下面的文件中:/etc/environment/etc/profile/etc/bash.bashrc/etc/profile和 /etc/bash.bashrc在Ubuntu 10.0版
阅读全文
摘要:xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理。通常情况下,xargs从管道或者stdin中读取数据,但是它也能够从文件的输出中读取数据。xargs的默认命令是echo,这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代。xargs是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令,下面是一些如何有效使用xargs的实用例子。1.当你尝试用rm删除太多的文件,你可能得到一个错误信息:/bin/rm Argument list too lo
阅读全文
摘要:统计文件行数(单个文件):wc -l file例如:homer@ubuntu:~/workspace/android/game$ wc -l LGameAndroid2DActivity.java906 LGameAndroid2DActivity.java统计目录所有文件行数(全部目录):find . -name *.java | xargs wc -l例如:homer@ubuntu:~/workspace/android$ find . -name *.java | xargs wc -l 817 ./game/core/LHandler.java 140 ./game/core/LF..
阅读全文
摘要:1. String是一个对象因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。首先String不属于8种基本数据类型(byte,char, short,int, float, long, double, boolean)2. new String()和new String(“”)都是申明一个新的空字符串,是空串不是null; 3. String str=”kvill”String str=new String (“kvill”);的区别: 在这里,我们不谈堆,也不谈栈,只先简单引入常量池这个简单的概念。 常量池(constant
阅读全文
摘要:Java反射技术除了可以在运行时动态地决定要创建什么类型的对象,访问哪些成员变量,方法,还可以动态地创建各种不同类型,不同维度的数组。 动态创建数组的步骤如下: 1.创建Class对象,通过forName(String)方法指定数组元素的类型 2.调用Array.newInstance(Class, length_of_array)动态创建数组 访问动态数组元素的方法和通常有所不同,它的格式如下所示,注意该方法返回的是一个Object对象 Array.get(arrayObject, index) 为动态数组元素赋值的方法也和通常的不同,它的格式如下所示, 注意最后的一个参数必须是O...
阅读全文
摘要:Visual C++是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C++1.0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的首选工具。 虽然微软公司推出了Visual C++.NET(Visual C++7.0),但它的应用的很大的局限性,只适用于Windows 2000,Windows XP和Windows NT4.0。所以实际中,更多的是以Visual C++6.0为平台。 Visual C++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated devel..
阅读全文
摘要:在《深入浅出学习Struts框架(一):一个简单mvc模式代码示例开始》和《深入浅出学习Struts框架(二):重构MVC模式代码中跳转路径和业务逻辑》文章中已经说了分层和mvc模式的区别,和一些为了去掉mvc模式代码中的TestServlet类中的if-else。因为if-else在程序代码中是相对不稳定的,所以通过去掉if-else来引入对struts框架的学习。 在《深入浅出学习Struts框架(二):重构MVC模式代码中跳转路径和业务逻辑》中我们已经抽象出来了一个接口和四个实现类,主要封装了业务处理和页面跳转路径字符串放回,以便利用多肽来重构了TestServlet代码(具体...
阅读全文
摘要:在上篇博文《深入浅出学习Struts框架(一):一个简单mvc模式代码示例开始》中简单说了一下MVC模式代码的实现和MVC模式和三层架构的区别,并且留下一个问题—如何去掉TestServlet中的IF-Else语句块。 因为在TestServlet中出现了If-Else语句块,所以让程序变得不再灵活,让应付需求变化时变得笨拙。所以就承接上篇文章来重构一下TestServlet代码,主要是用继承多肽来进一步对TestServlet进行重构。虽然这一篇文章最后没有将if-else彻底去掉,但是比起上篇文章的代码显得更加灵活,也为下一篇彻底去掉If-else埋下伏笔。 下面进入重构阶段...
阅读全文
摘要:问题:Android: couldn't save which view has focus because the focused view ### has no id可能引起原因有两种,对应解决方法如下:解决方案一:<application android:icon="@drawable/icon" android:label="@string/app_name" > <activity android:label="@string/app_name" android:configChanges=&quo
阅读全文
摘要:Android 利用自带VideoView控件播放视频Activitypublic class Activity01 extends Activity
{ /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final VideoView videoView = (Vid...
阅读全文
摘要:当我们需要开发一个复杂游戏的时候,而且对程序的执行效率要求很高时,View类就不能满足需求了,这时必须用SurfaceView类进行开发。例如,对速度要求很高的游戏时,View类就不能满足需求了,这时必须使用SurfaceView类进行开发。例如,对速度要求很高的游戏,可以使用双缓冲来显示。游戏中的背景、人物、动画等都需要绘制在一个画布(Canvas)上,而SurfaceView可以直接访问一个画布,SurfaceView 是提供给需要直接画像素而不是使用窗体部件的应用使用的。 每个Surface创建一个Canvas对象(但属性时常改变),用来管理View和Surface上的绘图操作。具体示例
阅读全文
摘要:SurfaceView是View的子类,使用的方式与任何View所派生的类都是完全相同的,可以像其他View那样应用动画,并把它们放到布局中。SurfaceView封装的Surface支持使用本章前面所描述的所有标准Canvas方法进行绘图,同时也支持完全的OpenGL ES库。使用OpenGL,你可以再Surface上绘制任何支持的2D或者3D对象,与在2D画布上模拟相同的效果相比,这种方法可以依靠硬件加速(可用的时候)来极大地提高性能。对于显示动态的3D图像来说,例如,那些使用Google Earth功能的应用程序,或者那些提供沉浸体验的交互式游戏,SurfaceView特别有用。它还是实
阅读全文
摘要:View,是Android的一个超类,这个类几乎包含了所有的屏幕类型。每一个View都有一个用于绘图的画布,这个画布可以进行任意扩展。在游戏开发中叶可以自定义视图(View),这个画布的功能更能满足我们在游戏开发中的需要。在Android中,任何一个View类都只需重写onDraw 方法来实现界面显示,自定义的视图可以是复杂的3D实现,也可以是非常简单的文本形式等。游戏的核心是不断地绘图和刷新界面,Android中提供了 invalidate 方法来实现界面刷新。注意,invalidate 不能直接在线程中调用, 就是不可以在子线程中调用,因此它违背了 Android的单线程模型:Androi
阅读全文
摘要:先看MVC模式流程图(其实MVC设计模式就是java中的model2。): 就像图上所标识的C层主要是Servlet层控制页面跳转,M层就是具体的业务处理逻辑,而JSP就是所谓的V层。MVC是有别于我们所说的三层,我们平常所说的三层是UI层、BLL层、DAL层,具体的区别如图: 从图上能看出来,JSP和Servlet构成了UI层,而Model层分成了BLL层和DAL层(也就是业务逻辑和数据持久层)。 从理论上认清了MVC设计模式之后,下面开始动手敲一个MVC设计模式示例代码: JSP索引页面index.jsp: <%@ page language="java" c..
阅读全文
摘要:转至:http://blog.csdn.net/q283595518/article/details/4122053Field 'id' doesn't have a default value昨晚做项目的时候遇到一个问题,在测试数据存储的时候老是报Field 'id' doesn't have a default value异常,从网上找了好久,根据各位大虾的说法也测试了好久好久,可就是没发现原因所在,鼓捣了两三个小时的时间,最后总算找到问题所在:原来是我的数据设计的时候,把主键的类型定义为int的,原本想是用自增的方式来的,可是由于自己的粗心
阅读全文
摘要:我 找了好久原来是个低级错误,在copy的时候不小心的缘故<hibernate-mapping package="com.strive.entity"> <class name="Dept" table="Dept"> <id name="deptno" column="deptno" type="integer"> <generator class="assigned"></generator>
阅读全文
摘要:类结构图:jar包:Webroot目录:1.==============================package com.strive.controller;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.mvc.Controller;import com.strive.ser
阅读全文
摘要:动态代理类原理(示例代码参见java反射机制剖析(三))a) 理解上面的动态代理示例流程b) 代理接口实现类源代码剖析咱们一起来剖析一下代理实现类($Proxy0)的源代码和整个动态代理的流程。$Proxy0生成的代码如下:import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.lang.reflect.UndeclaredThrowableException; public final class $Pr..
阅读全文
摘要:通过Java反射机制剖析(一)和Java反射机制剖析(二)的学习,已经对反射有了一定的了解,这一篇通过动态代理的例子来进一步学习反射机制。1.代理模式代理模式就是为其他对象提供一种代理来控制对这个对象的访问。其实代理模式是在访问的对象时引入一定程度的间接性,这种间接性可以附加多种用途。它的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。2.分类代理类按照创建时期
阅读全文
摘要:从《java反射机制剖析(一)》的API我们看到了许多接口和类,我们能够通过这些接口做些什么呢?从上篇API中我们能看到它能够完成下面的这些功能:1)获得类A.运用getClass() (每个class都有此函数)i. String str = "abc";ii. Class c1 = str.getClass();B.运用Class.forName() (static method 最常被使用)i. Class c1 = Class.forName ("java.lang.String");ii. Class c2 = Class.forName (&
阅读全文
摘要:1.什么是Java反射机制Java的反射机制是在程序运行时,能够完全知道任何一个类,及其它的属性和方法,并且能够任意调用一个对象的属性和方法。这种运行时的动态获取就是Java的反射机制。其实这也是Java是动态语言的一个象征。用一句话来概括反射就是加载一个运行时才知道的类以及它的完整内部结构。2.为什么要有Java反射机制我们为什么要用Java的反射机制呢?我认为有两种:第一种:反射的目的就是为了扩展未知的应用。比如你写了一个程序,这个程序定义了一些接口,只要实现了这些接口的dll都可以作为插件来插入到这个程序中。那么怎么实现呢?就可以通过反射来实现。就是把dll加载进内存,然后通过反射的方式
阅读全文
摘要:转至:http://blog.csdn.net/dingx/article/details/2242105Spring Framework可以被使用在很多场合之中,考虑到目前大多数Java EE的项目是B/S结构的,所以这里的快速上手教程会以Spring MVC为切入点,用最简单的代码一步一步来实现一个图书列表的页面。在正式动手之前需要做一些准备工作,先安装并设置好JDK 1.5和Tomcat 5,关于数据库及其访问方式可以根据个人习惯进行选择,教程中使用MySQL数据库和Hibernate(映射由Hibernate Annotation实现)。请将实际使用到的jar文件复制到WEB-INF/
阅读全文
摘要:刚开始接触了JSTL这个标签库,感觉出来它的强大。因为开发中我们会看到JSP中会有大量的动态内容的逻辑需要用Java代码来实现,JSTL标签库很好的解决了这些问题,让JSP瘦身,页面开发人员不再为学习JAVA而发愁,只需用标签就能完成JSP开发;有了JSTL提高了开发的效率,提高了程序的可读性和可维护性。JSTL的全称是JSP Standard Tag Library (JSP标准标签库),它是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的;其实它可以看作是一组基于XML 语法的自定义标记形成的标记库,提供五个标准标记库(core核心、internatio
阅读全文
摘要:DRP视频看完了,在学习的过程中对分层又有了新的认识,并且老师对分层是一种循序渐进的讲解方式。每一步前进一点,逐步解耦。下面整体上回忆一下在DRP中的分层渐变。Model1----------------------------------------------- 这个版本的分层是直接用JSP调用业务逻辑层,完成业务处理和数据库操作。耦合性非常高,修改和维护是一件非常困难的事情,适合于快速开发,容易理解,编码简单。Model1+Dao设计模式----------------------------------------------- 这一个分层主要是在Model1的基础上又用了一个Dao.
阅读全文
摘要:本文转自赵丹丹的专栏《三层架构与MVC谜团之答案揭晓》 我们平时总是将三层架构与MVC混为一谈,殊不知它俩并不是一个概念。下面我来为大家揭晓我所知道的一些真相。首先,它俩根本不是一个概念。 三层架构是一个分层式的软件体系架构设计,它可适用于任何一个项目。 MVC是一个设计模式,它是根据项目的具体需求来决定是否适用于该项目。 那么架构跟设计模式有什么区别呢? 我们从接手一个项目开始,首先,我们需要进行架构设计,一般我们采用的就是分层式的架构设计,即我们的三层架构。 然后,在确定了架构以后,我们再根据项目的具体需求去考虑是否需要应用一...
阅读全文
摘要:在Java开发的时候,避免不了的会接触Model1和Model2,本篇博客对这两种架构进行浅析。Model1:Model1的中心是JSP页面,JSP页面中结合业务逻辑、服务端处理过程和HTML等,这样就在JSP页面中同时实现了业务逻辑和流程控制。从而快速开发。Model1的优缺点:优点:简单,快速开发,适用小规模开发缺点:业务逻辑和表示逻辑混合在JSP页面中没有进行抽象和分离,JSP负载太大。所以非常不利于应用系统业务的重用和改动,不便于维护Model2:Model 2表示的是基于MVC模式的框架。MVC “Model”代表的是应用的业务逻辑(通过JavaBean,EJB组件实现),“View
阅读全文
摘要:1. 概念ajax 的全称是AsynchronousJavaScript and XML,其中,Asynchronous 是异步的意思,它有别于传统web开发中采用的同步的方式。2. 理解同步异步异步传输是面向字符的传输,它的单位是字符;而同步传输是面向比特的传输,它的单位是桢,它传输的时候要求接受方和发送方的时钟是保持一致的。举个例子来说同步和异步,同步就好像我们买楼一次性支付,而异步就是买楼分期付款。所以当我们把这种生活中的概念化解释转移到理解Ajax异步上来就发现,它是通过这样一种异步的方式来让用户更加收益,也就是说可以让用户的有更好的体验性。其实这也是Ajax的意义所在。3. 通过分析
阅读全文
摘要:1. 什么是URL编码。URL编码是一种浏览器用来打包表单输入的格式,浏览器从表单中获取所有的name和其对应的value,将他们以name/value编码方式作为URL的一部分或者分离的发送到服务器上。2. URL编码规则。每对name/value由&分开,每对来自表单的name/value用=分开。如果用户没有输入值的那个name依旧会出现不过就是没有值。URL编码是在字符ASCII码的十六进制数的前面加上%。例如\(她的十六进制数表示为5c)的URL编码就是%5c。3. 简单介绍乱码和http请求其实做web开发乱码问题是经常出现的,有了上面编码的基础之后下面来看看乱码。1) 乱
阅读全文
摘要:1.一些枯燥的概念:Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查 ,改 ,增 ,删 4个操作。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。2.GET是幂等的,POST是要修改更新的通过上面概念的理解,我们很容易发现,GET是用于信息获取或查询的,这就意味着它是幂等的(对幂等的解释参见http://www.yining.org/2010/05/04/http
阅读全文
摘要:做JavaWeb开发一定会遇到转发和重定向这两个名字,刚开始确实有些模糊,感觉两者非常相似,但是随着研究深入发现两者的本质相差甚远。首先看书写语句: 转发:request.getRequestDispatcher("apage.jsp").forward(request,response);//转发到apage.jsp 或者<jsp:forwardpage="apage.jsp" />(仅在jsp页面实现) 重定向:response.sendRedirect("apage.jsp");//重定向到apage.jsp再看原理
阅读全文