推荐淘宝秋冬男装热卖网店

追求无止境

我的程序人生
随笔 - 31, 文章 - 2, 评论 - 20, 引用 - 0
数据加载中……

Java DOC学习笔记

1、Interface Comparable<T>

只有实现该接口的对象的列表或数组才能调用Collections.sort()方法。

在实现 int compareTo(T o)时,需要注意:

1、如果两个对象相等,返回为0;

2、如果同一个null对象进行比较,应抛出NullPointerException。

3、实现必须保证sgn(x.compareTo(y)) == -sgn(y.compareTo(x))、(x.compareTo(y)==0) == (x.equals(y)) 、(x.compareTo(y)>0 && y.compareTo(z)>0) impliesx.compareTo(z)>0 。如果 x.compareTo(y)抛出异常,y.compareTo(x)也必须抛出异常。

2、Interface Iterable<T>

Iterator<T> iterator()

对于链表等对象应实现该接口来允许一个对象可以使用foreach语句。

上面的方法返回java.util.Interface Iterator<E>,该接口的主要方法有:

hasNext();next();remove();

3、Interface Readable

java.lang.Interface Readable

      一个Readable 是一个字符串的来源。实现这个接口需要实现的方法是:

int read(CharBuffer cb)

4、java.lang  Interface Runnable

不用说,这个谁都知道。如果想在一个单独的线程中执行,就需要实现这个接口。

5、java.lang Interface Thread.UncaughtExceptionHandler

       从名字就可以判断出来,当线程抛出未捕获的异常时,实现这个接口的类的对象可以对一场进行处理。

      官方文档:当线程被一个未捕获的异常打断时,这个接口被调用。

      当线程要被为捕获异常打断是,JVM使用Thread.getUncaughtExceptionHandler(),查询异常处理器,如果线程没有这个接口的设置,则查询该线程的ThreadGroup的UncaughtExceptionHandler,如果县城没有处理异常,他就会抛出这个异常。

void uncaughtException(Thread t, Throwable e)
          Method invoked when the given thread terminates due to the given uncaught exception.

6、包装型对象:Boolean Byte Character Double Float Long Short Integer

    这些类就不用了说了,主要会使用里面的静态方法和一些常量就可以了。

7、Class Character.Subset

   这个类的实例代表了Unicode字符集的特殊的子集。定义在Character中的唯一子集族类是UnicodeBlock.其他的Java API或许因为自己的用户定义了其他的子集。

static Character.UnicodeBlock
AEGEAN_NUMBERS
          Constant for the "Aegean Numbers" Unicode character block.

static Character.UnicodeBlock
ALPHABETIC_PRESENTATION_FORMS
          Constant for the "Alphabetic Presentation Forms" Unicode character block.

static Character.UnicodeBlock
ARABIC
          Constant for the "Arabic" Unicode character block.

static Character.UnicodeBlock
ARABIC_PRESENTATION_FORMS_A
          Constant for the "Arabic Presentation Forms-A" Unicode character block.

static Character.UnicodeBlock
ARABIC_PRESENTATION_FORMS_B
          Constant for the "Arabic Presentation Forms-B" Unicode character block.

static Character.UnicodeBlock
ARMENIAN
          Constant for the "Armenian" Unicode character block.

static Character.UnicodeBlock
ARROWS
          Constant for the "Arrows" Unicode character block.

static Character.UnicodeBlock
BASIC_LATIN
          Constant for the "Basic Latin" Unicode character block.

static Character.UnicodeBlock
BENGALI
          Constant for the "Bengali" Unicode character block.

static Character.UnicodeBlock
BLOCK_ELEMENTS
          Constant for the "Block Elements" Unicode character block.

static Character.UnicodeBlock
BOPOMOFO
          Constant for the "Bopomofo" Unicode character block.

static Character.UnicodeBlock
BOPOMOFO_EXTENDED
          Constant for the "Bopomofo Extended" Unicode character block.

static Character.UnicodeBlock
BOX_DRAWING
          Constant for the "Box Drawing" Unicode character block.

…………

具体参见java.lang
Class Character.UnicodeBlock里面的定义。

8 、java.langClass Class<T>

这个类的实力代表了Java运行程序中的类和接口。Enum是类,而Annotation是一个接口。Every array also belongs to a class that is reflected as a Class object that is shared by all arrays with the same element type and number of dimensions.

Class的对象在程序中可以获取类的详细信息。

9、Java.lang.Class ClassLoader

ClassLoader是个不错的东西,下面是官方文档的简单翻译和注解:

1、ClassLoader用于加载类对象。ClassLoader是一个抽象类。给出类的二进制名字(如“

  "java.lang.String"
   "javax.swing.JSpinner$DefaultEditor"
   "java.security.KeyStore$Builder$FileBuilder$1"
   "java.net.URLClassLoader$3$1"

”),ClassLoader会使用定位和生成类。一个典型的策略就是将二进制名字转化为文件名,然后从文件系统中读取这个类文件。

每一个Class对象都包含了一个创建它的引用。

数组的Class对象不能由ClassLoader创建,但是可以由Java运行时动态创建。一个数组类的ClassLoader,和他的元素的ClassLoader是一样的;如果元素是基本类型,则数组类没有ClassLoader。

应用程序可以实现ClassLoader的子类,来扩展行为。这样可以在JVM动态的创建类。

ClassLoader主要由安全管理器来使用,用于保证安全区域。

ClassLoader 使用一个delegation(委托)模型来搜索类和资源。每一个ClassLoader有一个相关的父类ClassLoader。当请求来查找一个资源或者类的时候,ClassLoader 实例会委托搜索类和资源。

内建的ClassLoader,叫做bootstrap class loader,没有父类。

正常的,ClassLoader从本地文件系统中加载数据。通过CLassPath。

当然,也可以通过NetWork从服务器上下载字节码。来加载类:

ClassLoader loader = new NetworkClassLoader(host, port);
Object main = loader.loadClass("Main", true).newInstance();
Network ClassLoader 子类必须定义方法FindClass 和loadClassData来加载来自互联网上的类。一旦或得到字节码,它使用defineClass方法来创建类实例。
class NetworkClassLoader extends ClassLoader {
         String host;
         int port;

         public Class findClass(String name) {
             byte[] b = loadClassData(name);
             return defineClass(name, b, 0, b.length);
         }

         private byte[] loadClassData(String name) {
             // load the class data from the connection  . . .
         }
     }

个人理解:

ClassLoader是一个类加载器,除了可以从ClassPath加载类之外,还可以从ClassPath中加载资源:

InputStream
getResourceAsStream(String name)
          Returns an input stream for reading the specified resource.

Enumeration<URL>
getResources(String name)
          Finds all the resources with the given name.

static URL
getSystemResource(String name)
          Find a resource of the specified name from the search path used to load classes.

static InputStream
getSystemResourceAsStream(String name)
          Open for reading, a resource of the specified name from the search path used to load classes.

static Enumeration<URL>
getSystemResources(String name)
          Finds all resources of the specified name from the search path used to load classes.

protected  Class<?>
findClass(String name)
          Finds the class with the specified binary name.

10、Compiler类3

编译类是提供给支持Java到本地代码编译器和相关服务。根据设计,编译器类什么都不做;它作为一个占位符来为运行时编译执行的技术。

当JVM第一次启动时,他判断java.compiler是否存在。如果存在,他3

posted @ 2009-11-16 13:11 追求无止境 阅读(136) | 评论 (0)编辑 收藏

CSS学习笔记


1、background相关:

属性
描述

background
简写属性,作用是将背景属性设置在一个声明中。

background-attachment
背景图像是否固定或者随着页面的其余部分滚动。

background-color
设置元素的背景颜色。

background-image
把图像设置为背景。

background-position
设置背景图像的起始位置。

background-repeat
设置背景图像是否及如何重复。

(1)background

background-color:


描述

color_name
规定颜色值为颜色名称的背景颜色(比如 red)。

hex_number
规定颜色值为十六进制值的背景颜色(比如 #ff0000)。

rgb_number
规定颜色值为 rgb 代码的背景颜色(比如 rgb(255,0,0))。

transparent
默认。背景颜色为透明。

inherit
规定应该从父元素继承 background-color 属性的设置。

background-image :


描述

url('URL')
指向图像的路径。

none
默认值。不显示背景图像。

inherit
规定应该从父元素继承 background-image 属性的设置。

background-repeat :

repeat

默认。背景图像将在垂直方向和水平方向重复。

repeat-x

背景图像将在水平方向重复。

repeat-y

背景图像将在垂直方向重复。

no-repeat

背景图像将仅显示一次。

background-position :center top buttom right left XX% XX%


描述

  • top left
  • top center
  • top right
  • center left
  • center center
  • center right
  • bottom left
  • bottom center
  • bottom right

如果您仅规定了一个关键词,那么第二个值将是"center"。

默认值:0% 0%。

x% y%

第一个值是水平位置,第二个值是垂直位置。

左上角是 0% 0%。右下角是 100% 100%。

如果您仅规定了一个值,另一个值将是 50%。

xpos ypos

第一个值是水平位置,第二个值是垂直位置。

左上角是 0 0。单位是像素 (0px 0px) 或任何其他的 CSS 单位。

如果您仅规定了一个值,另一个值将是50%。

您可以混合使用 % 和 position 值。

background-attachment: fixed

 


2、文本相关

text-indent :缩进元素中的首行文本。


描述

length
定义固定的缩进。默认值:0。

%
定义基于父元素宽度的百分比的缩进。

text-align: 文本对应方式

您可能会认为 text-align:center 与 <CENTER> 元素的作用一样,但实际上二者大不相同。

<CENTER> 不仅影响文本,还会把整个元素居中。text-align 不会控制元素的对齐,而只影响内部内容。元素本身不会从一段移到另一端,只是其中的文本受影响。


描述

left
把文本排列到左边。默认值:由浏览器决定。

right
把文本排列到右边。

center
把文本排列到中间。

justify
实现两端对齐文本效果。

word-spacing :以改变字(单词)之间的标准间隔


描述

normal
默认。定义单词间的标准空间。

length
定义单词间的固定空间。

letter-spacing:改变字母之间的距离


描述

normal
默认。定义字符间的标准空间。

length
定义字符间的固定空间。

text-transform:处理文本的大小写


描述

none
默认。定义带有小写字母和大写字母的标准的文本。

capitalize
文本中的每个单词以大写字母开头。

uppercase
定义仅有大写字母。

lowercase
定义无大写字母,仅有小写字母。

text-decoration


描述

none
默认。定义标准的文本。

underline
定义文本下的一条线。

overline
定义文本上的一条线。

line-through
定义穿过文本下的一条线。

blink
定义闪烁的文本(无法运行在 IE 和 Opera 中)。

white-space


描述

normal
默认。空白会被浏览器忽略。

pre
空白会被浏览器保留。其行为方式类似 HTML 中的 <pre> 标签。

nowrap
文本不会换行,文本会在在同一行上继续,直到遇到 <br> 标签为止。

pre-wrap
保留空白符序列,但是正常地进行换行。

pre-line
合并空白符序列,但是保留换行符。

 

空白 换行 自动换行
pre-line 合并 保留 允许
normal 合并 忽略 允许
nowrap 合并 忽略 不允许
pre 保留 保留 不允许

pre-wrap

保留

保留

允许

direction :文本的方向属性

ltr
默认。文本方向从左到右。

rtl
文本方向从右到左。

属性
描述

color
设置文本颜色

direction
设置文本方向。

line-height
设置行高。

letter-spacing
设置字符间距。

text-align
对齐元素中的文本。

text-decoration
向文本添加修饰。

text-indent
缩进元素中文本的首行。

text-shadow
设置文本阴影。CSS2 包含该属性,但是 CSS2.1 没有保留该属性。

text-transform
控制元素中的字母。

unicode-bidi
设置文本方向。

white-space
设置元素中空白的处理方式。

word-spacing
设置字间距。


3、CSS字体相关

font
简写属性。作用是把所有针对字体的属性设置在一个声明中。

font-family
设置字体系列。

font-size
设置字体的尺寸。

font-size-adjust
当首选字体不可用时,对替换字体进行智能缩放。(CSS2.1 已删除该属性。)

font-stretch
对字体进行水平拉伸。(CSS2.1 已删除该属性。)

font-style
设置字体风格。

font-variant
以小型大写字体或者正常字体显示文本。

font-weight
设置字体的粗细。


CSS 列表属性(list)

属性
描述

list-style
简写属性。用于把所有用于列表的属性设置于一个声明中。

list-style-image
将图象设置为列表项标志。

    1. url
      图像的路径。
    2. none
      默认。无图形被显示。

list-style-position
设置列表中列表项标志的位置。

    1. inside
      列表项目标记放置在文本以内,且环绕文本根据标记对齐。
    2. outside
      默认。保持标记位于文本的左侧。列表项目标记放置在文本以外,且环绕文本不根据标记对齐。

list-style-type
设置列表项标志的类型。

    1. none
      无标记。
    2. disc
      默认。标记是实心圆。
    3. circle
      标记是空心圆。
    4. square
      标记是实心方块。
    5. decimal
      标记是数字。
    6. decimal-leading-zero
      0开头的数字标记。(01, 02, 03, 等。)
    7. lower-roman
      小写罗马数字(i, ii, iii, iv, v, 等。)
    8. upper-roman
      大写罗马数字(I, II, III, IV, V, 等。)
    9. lower-alpha
      小写英文字母The marker is lower-alpha (a, b, c, d, e, 等。)
    10. upper-alpha
      大写英文字母The marker is upper-alpha (A, B, C, D, E, 等。)
    11. lower-greek
      小写希腊字母(alpha, beta, gamma, 等。)
    12. lower-latin
      小写拉丁字母(a, b, c, d, e, 等。)
    13. upper-latin
      大写拉丁字母(A, B, C, D, E, 等。)
    14. hebrew
      传统的希伯来编号方式
    15. armenian
      传统的亚美尼亚编号方式
    16. georgian
      传统的乔治亚编号方式(an, ban, gan, 等。)
    17. cjk-ideographic
      简单的表意数字
    18. hiragana
      标记是:a, i, u, e, o, ka, ki, 等。(日文片假名)
    19. katakana
      标记是:A, I, U, E, O, KA, KI, 等。(日文片假名)
    20. hiragana-iroha
      标记是:i, ro, ha, ni, ho, he, to, 等。(日文片假名)
    21. katakana-iroha
      标记是:I, RO, HA, NI, HO, HE, TO, 等。(日文片假名)

marker-offset


CSS Table 属性

CSS 表格属性允许你设置表格的布局。(请注意,本节介绍的不是如何使用表来建立布局,而是要介绍 CSS 中表本身如何布局。)

属性
描述

border-collapse
设置是否把表格边框合并为单一的边框。

border-spacing
设置分隔单元格边框的距离。(仅用于 "separated borders" 模型)

caption-side
设置表格标题的位置。

empty-cells
设置是否显示表格中的空单元格。(仅用于 "separated borders" 模型)

table-layout
设置显示单元、行和列的算法。


CSS 边框属性

"CSS" 列中的数字指示哪个 CSS 版本定义了该属性。

轮廓(outline)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。

CSS outline 属性规定元素轮廓的样式、颜色和宽度。

outline
在一个声明中设置所有的轮廓属性。
2

outline-color
设置轮廓的颜色。
2

outline-style
设置轮廓的样式。
2

outline-width
设置轮廓的宽度。
2


CSS 框模型概述

 

CSS 框模型 (Box Model) 规定了元素框处理元素内容、内边距边框外边距 的方式。

ct_boxmodel

 

  • element : 元素。
  • padding : 内边距,也有资料将其翻译为填充。
  • border : 边框。
  • margin : 外边距,也有资料将其翻译为空白或空白边。

CSS 内边距属性

属性
描述

padding
简写属性。作用是在一个声明中设置元素的所内边距属性。

padding-bottom
设置元素的下内边距。

padding-left
设置元素的左内边距。

padding-right
设置元素的右内边距。

padding-top
设置元素的上内边距。


CSS 边框属性

属性
描述

border
简写属性,用于把针对四个边的属性设置在一个声明。

border-style
用于设置元素所有边框的样式,或者单独地为各边设置边框样式。

  1. none
    定义无边框。
  2. hidden
    与 "none" 相同。不过应用于表时除外,对于表,hidden 用于解决边框冲突。
  3. dotted
    定义点状边框。在大多数浏览器中呈现为实线。
  4. dashed
    定义虚线。在大多数浏览器中呈现为实线。
  5. solid
    定义实线。
  6. double
    定义双线。双线的宽度等于 border-width 的值。
  7. groove
    定义 3D 凹槽边框。其效果取决于 border-color 的值。
  8. ridge
    定义 3D 垄状边框。其效果取决于 border-color 的值。
  9. inset
    定义 3D inset 边框。其效果取决于 border-color 的值。
  10. outset
    定义 3D outset 边框。其效果取决于 border-color 的值。

border-width
简写属性,用于为元素的所有边框设置宽度,或者单独地为各边边框设置宽度。

  1. thin
    定义细的边框。
  2. medium
    默认。定义中等的边框。
  3. thick
    定义粗的边框。
  4. length
    允许您自定义边框的宽度。

border-color
简写属性,设置元素的所有边框中可见部分的颜色,或为 4 个边分别设置颜色。

 

border-bottom
简写属性,用于把下边框的所有属性设置到一个声明中。

border-bottom-color
设置元素的下边框的颜色。

border-bottom-style
设置元素的下边框的样式。

border-bottom-width
设置元素的下边框的宽度。

border-left
简写属性,用于把左边框的所有属性设置到一个声明中。

border-left-color
设置元素的左边框的颜色。

border-left-style
设置元素的左边框的样式。

border-left-width
设置元素的左边框的宽度。

border-right
简写属性,用于把右边框的所有属性设置到一个声明中。

border-right-color
设置元素的右边框的颜色。

border-right-style
设置元素的右边框的样式。

border-right-width
设置元素的右边框的宽度。

border-top
简写属性,用于把上边框的所有属性设置到一个声明中。

border-top-color
设置元素的上边框的颜色。

border-top-style
设置元素的上边框的样式。

border-top-width
设置元素的上边框的宽度。


CSS 外边距属性

属性
描述

margin
简写属性。在一个声明中设置所有外边距属性。

margin-bottom
设置元素的下外边距。

margin-left
设置元素的左外边距。

margin-right
设置元素的右外边距。

margin-top
设置元素的上外边距。


CSS 定位属性

CSS 定位属性允许你对元素进行定位。

详细参见http://www.w3school.com.cn/css/css_positioning.asp

CSS 定位和浮动

CSS 为定位和浮动提供了一些属性,利用这些属性,可以建立列式布局,将布局的一部分与另一部分重叠,还可以完成多年来通常需要使用多个表格才能完成的任务。

定位的基本思想很简单,它允许你定义元素框相对于其正常位置应该出现的位置,或者相对于父元素、另一个元素甚至浏览器窗口本身的位置。显然,这个功能非常强大,也很让人吃惊。要知道,用户代理对 CSS2 中定位的支持远胜于对其它方面的支持,对此不应感到奇怪。

另一方面,CSS1 中首次提出了浮动,它以 Netscape 在 Web 发展初期增加的一个功能为基础。浮动不完全是定位,不过,它当然也不是正常流布局。我们会在后面的章节中明确浮动的含义。

一切皆为框

div、h1 或 p 元素常常被称为块级元素。这意味着这些元素显示为一块内容,即“块框”。与之相反,span 和 strong 等元素称为“行内元素”,这是因为它们的内容显示在行中,即“行内框”。

您可以使用 display 属性改变生成的框的类型。这意味着,通过将 display 属性设置为 block,可以让行内元素(比如 <a> 元素)表现得像块级元素一样。还可以通过把 display 设置为 none,让生成的元素根本没有框。这样的话,该框及其所有内容就不再显示,不占用文档中的空间。

但是在一种情况下,即使没有进行显式定义,也会创建块级元素。这种情况发生在把一些文本添加到一个块级元素(比如 div)的开头。即使没有把这些文本定义为段落,它也会被当作段落对待:

<div>
some text
<p>Some more text.</p>
</div>

在这种情况下,这个框称为无名块框,因为它不与专门定义的元素相关联。

块级元素的文本行也会发生类似的情况。假设有一个包含三行文本的段落。每行文本形成一个无名框。无法直接对无名块或行框应用样式,因为没有可以应用样式的地方(注意,行框和行内框是两个概念)。但是,这有助于理解在屏幕上看到的所有东西都形成某种框。

CSS 定位机制

CSS 有三种基本的定位机制:普通流、浮动和绝对定位。

除非专门指定,否则所有框都在普通流中定位。也就是说,普通流中的元素的位置由元素在 X(HTML) 中的位置决定。

块级框从上到下一个接一个地排列,框之间的垂直距离是由框的垂直外边距计算出来。

行内框在一行中水平布置。可以使用水平内边距、边框和外边距调整它们的间距。但是,垂直内边距、边框和外边距不影响行内框的高度。由一行形成的水平框称为行框(Line Box),行框的高度总是足以容纳它包含的所有行内框。不过,设置行高可以增加这个框的高度。

在下面的章节,我们会为您详细讲解相对定位、绝对定位和浮动。

CSS position 属性

通过使用 position 属性,我们可以选择 4 中不同类型的定位,这会影响元素框生成的方式。

position 属性值的含义:

static
元素框正常生成。块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。
relative
元素框偏移某个距离。元素仍保持其未定位前的形状,它原本所占的空间仍保留。
absolute
元素框从文档流完全删除,并相对于其包含块定位。包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。
fixed
元素框的表现类似于将 position 设置为 absolute,不过其包含块是视窗本身。

提示:相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。

属性
描述

position
把元素放置到一个静态的、相对的、绝对的、或固定的位置中。

  1. static
    默认。位置设置为 static 的元素,它始终会处于页面流给予的位置(static 元素会忽略任何 top、bottom、left 或 right 声明)。
  2. relative
    位置被设置为 relative 的元素,可将其移至相对于其正常位置的地方,因此 "left:20" 将向元素的 LEFT 位置添加 20 个像素。
  3. absolute
    位置设置为 absolute 的元素,可定位于相对于包含它的元素的指定坐标。此元素的位置可通过 "left"、"top"、"right" 以及"bottom" 属性来规定。
  4. fixed
    位置被设置为 fixed 的元素,可定位于相对于浏览器窗口的指定坐标。此元素的位置可通过 "left"、"top"、"right" 以及"bottom" 属性来规定。不论窗口滚动与否,元素都会留在那个位置。工作于 IE7(strict 模式)。

top
定义了一个定位元素的上外边距边界与其包含块上边界之间的偏移。

  1. auto
    默认。通过浏览器来计算顶部的位置。
  2. %
    设置元素的顶部到最近一个具有定位设置父元素的上边缘的百分比位置。
  3. length
    使用 px、cm 等单位设置元素的顶部到最近一个具有定位设置上边缘的顶部的位置。可使用负值。

right
定义了定位元素右外边距边界与其包含块右边界之间的偏移。

bottom
定义了定位元素下外边距边界与其包含块下边界之间的偏移。

left
定义了定位元素左外边距边界与其包含块左边界之间的偏移。

overflow
设置当元素的内容溢出其区域时发生的事情。

  1. visible
    默认。内容不会被修剪,会呈现在元素之外。
  2. hidden
    内容会被修剪,但是浏览器不会显示供查看内容的滚动条。
  3. scroll
    内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
  4. auto
    如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。

clip
设置元素的形状。元素被剪入这个形状之中,然后显示出来。

  1. shape
    设置元素的形状。合法的形状值是:rect (top, right, bottom, left)
  2. auto
    默认。浏览器可设置元素的形状。

vertical-align
设置元素的垂直对齐方式。

  1. baseline
    默认。元素放置在父元素的基线上。
  2. sub
    垂直对齐文本的下标。
  3. super
    垂直对齐文本的上标
  4. top
    把元素的顶端与行中最高元素的顶端对齐
  5. text-top
    把元素的顶端与父元素字体的顶端对齐
  6. middle
    把此元素放置在父元素的中部。
  7. bottom
    把元素的顶端与行中最低的元素的顶端对齐。
  8. text-bottom
    把元素的底端与父元素字体的底端对齐。
  9. length
  10. %
    使用 "line-height" 属性的百分比值来排列此元素。允许使用负值。

z-index
设置元素的堆叠顺序。

  1. auto
    默认。堆叠顺序与父元素相等。
  2. number
    设置元素的堆叠顺序。

 


CSS 尺寸属性

CSS 尺寸属性允许你控制元素的高度和宽度。同样,还允许你增加行间距。

属性
描述

height
设置元素的高度。

line-height
设置行高。

max-height
设置元素的最大高度。

max-width
设置元素的最大宽度。

min-height
设置元素的最小高度。

min-width
设置元素的最小宽度。

width
设置元素的宽度。


CSS 分类属性 (Classification)

CSS 分类属性允许你控制如何显示元素,设置图像显示于另一元素中的何处,相对于其正常位置来定位元素,使用绝对值来定位元素,以及元素的可见度。

属性
描述

clear
设置一个元素的侧面是否允许其他的浮动元素。

cursor
规定当指向某元素之上时显示的指针类型。

display
设置是否及如何显示元素。

float
定义元素在哪个方向浮动。

position
把元素放置到一个静态的、相对的、绝对的、或固定的位置中。

visibility
设置元素是否可见或不可见。

 

伪类

浏览器支持IE Internet Explorer, F: Firefox, N: Netscape。

W3C:“W3C” 列的数字显示出伪类属性由哪个 CSS 标准定义(CSS1 还是 CSS2)。

伪类
作用
IE
F
N
W3C

:active
将样式添加到被激活的元素
4
1
8
1

:focus
将样式添加到被选中的元素
-
-
-
2

:hover
当鼠标悬浮在元素上方时,向元素添加样式
4
1
7
1

:link
将特殊的样式添加到未被访问过的链接
3
1
4
1

:visited
将特殊的样式添加到被访问过的链接
3
1
4
1

:first-child
将特殊的样式添加到元素的第一个子元素
1
7
2

:lang
允许创作者来定义指定的元素中使用的语言
1
8
2

伪元素
作用
IE
F
N
W3C

:first-letter
将特殊的样式添加到文本的首字母
5
1
8
1

:first-line
将特殊的样式添加到文本的首行
5
1
8
1

:before
在某元素之前插入某些内容
1.5
8
2

:after
在某元素之后插入某些内容
1.5
8
2

 

不同的媒介类型

注释:媒介类型名称对大小写不敏感。

浏览器支持IE: Internet Explorer, F: Firefox, N: Netscape。

W3C:“W3C” 列的数字显示出属性背景由哪个 CSS 标准定义(CSS1 还是 CSS2)。

媒介类型
描述

all
用于所有的媒介设备。

aural
用于语音和音频合成器。

braille
用于盲人用点字法触觉回馈设备。

embossed
用于分页的盲人用点字法打印机。

handheld
用于小的手持的设备。

print
用于打印机。

projection
用于方案展示,比如幻灯片。

screen
用于电脑显示器。

tty
用于使用固定密度字母栅格的媒介,比如电传打字机和终端。

tv
用于电视机类型的设备。

posted @ 2009-11-16 13:08 追求无止境 阅读(282) | 评论 (0)编辑 收藏

JDBC高级特性

1、可滚动的结果集(Scrollable Result Sets)

(1)创建可滚动的结果集:

  Statement stmt = con.createStatement(
                       ResultSet.TYPE_SCROLL_INSENSITIVE, 
                       ResultSet.CONCUR_READ_ONLY);
ResultSet.TYPE_FORWARD_ONLY:结果集是不能滚动的;他的游标只能向前移动;
ResultSet.TYPE_SCROLL_INSENSITIVE:结果是可滚动的;游标可以向前也可以后退。也可以移动到一个绝对位置。
ResultSet.TYPE_SCROLL_SENSITIVE:结果是可滚动的;游标可以向前也可以后退。也可以移动到一个绝对位置。
ResultSet.CONCUR_READ_ONLY:结果集是只读的。
ResultSet.ResultSet.CONCUR_UPDATABLE:结果集是可以更新的。

  ResultSet srs = stmt.executeQuery("SELECT COF_NAME, 
                       PRICE FROM COFFEES");
尽管我们可以在这里设置创建的是可滚动结果集,但是如果厂商的JDBC实现不支持,我们获取到的结果将不具有可滚动属性。
可以使用ResultSet.getType()方法来获取是否支持滚动:
 int type = rs.getType();

The variable type will be one of the following:

1003 to indicate ResultSet.TYPE_FORWARD_ONLY

1004 to indicate ResultSet.TYPE_SCROLL_INSENSITIVE

1005 to indicate ResultSet.TYPE_SCROLL_SENSITIVE

TYPE_SCROLL_INSENSITIVE和TYPE_SCROLL_SENSITIVE的主要区别是在如果发生改变他们的敏感度。前一个将不会很敏感后一个则会。

(2)移动游标,使用以下方法可以移动游标:

rs.next();

rs.previous();

rs.absolute();

rs.relative();

rs.first();

rs.last();

rs.beforeFirst();

rs.afterLast();

使用rs.getRow()获取游标当前行。

rs.isAfterLast();
rs.isBeforeFirst();
rs.isLast();
rs.isFirst();
rs.hasNext();
等等方法。
2、更新结果集
(1)创建可以更新的结果集
Statement stmt = con.createStatement(
               ResultSet.TYPE_SCROLL_SENSITIVE, 
               ResultSet.CONCUR_UPDATABLE);
  ResultSet uprs = stmt.executeQuery(
               "SELECT COF_NAME, 
               PRICE FROM COFFEES");

在JDBC 2.0中,我们可以向可以更新的结果集中插入行或删除行,或者修改其中的行。

下面的方法用于判断结果集是否可以更新:

  int concurrency = uprs.getConcurrency();

The variable concurrency will be one of the following:

1007 to indicate ResultSet.CONCUR_READ_ONLY

1008 to indicate ResultSet.CONCUR_UPDATABLE

(2)更新结果集

JDBC 1.0中可以这样更新: 
 stmt.executeUpdate(
    "UPDATE COFFEES SET PRICE = 10.99 " +
    "WHERE COF_NAME = 'French_Roast_Decaf'");
在JDBC2.0中。则可以:
 uprs.last();
  uprs.updateFloat("PRICE", 10.99f);
uprs.updateRow();
在移动游标前,必须先调用updateRow方法。否则更新信息会丢失。调用cancelRowUpdates可以取消对行的更新。
(3)向结果集中插入或者删除行
  Connection con = DriverManager.getConnection(
                      "jdbc:mySubprotocol:mySubName");
  Statement stmt = con.createStatement(
                       ResultSet.TYPE_SCROLL_SENSITIVE, 
                       ResultSet.CONCUR_UPDATABLE);
  ResultSet uprs = stmt.executeQuery(
                      "SELECT * FROM COFFEES");
  uprs.moveToInsertRow();

  uprs.updateString("COF_NAME", "Kona");
  uprs.updateInt("SUP_ID", 150);
  uprs.updateFloat("PRICE", 10.99f);
  uprs.updateInt("SALES", 0);
  uprs.updateInt("TOTAL", 0);
  
  uprs.insertRow();
在移动游标前,必须要先调用insertRow否则插入的信息将丢失。
uprs.absolute(4);
uprs.deleteRow();
删除行。
(4)查看结果集中的变化(其实就是说了一个意思,用TYPE_SCROLL_SENSITIVE对数据很敏感,一旦数据变化就会反映在ResultSet中)

Result sets vary greatly in their ability to reflect changes made in their underlying data. If you modify data in a ResultSet object, the change will always be visible if you close it and then reopen it during a transaction. In other words, if you re-execute the same query after changes have been made, you will produce a new result set based on the new data in the target table. This new result set will naturally reflect changes you made earlier. You will also see changes made by others when you reopen a result set if your transaction isolation level makes them visible.

So when can you see visible changes you or others made while the ResultSet object is still open? (Generally, you will be most interested in the changes made by others because you know what changes you made yourself.) The answer depends on the type of ResultSet object you have.

With a ResultSet object that is TYPE_SCROLL_SENSITIVE, you can always see visible updates made to existing column values. You may see inserted and deleted rows, but the only way to be sure is to use DatabaseMetaData methods that return this information. ("New JDBC 2.0 Core API Features" on page 371 explains how to ascertain the visibility of changes.)

You can, to some extent, regulate what changes are visible by raising or lowering the transaction isolation level for your connection with the database. For example, the following line of code, wherecon is an active Connection object, sets the connection's isolation level to TRANSACTION_READ_COMMITTED:

  con.setTransactionIsolation(
              Connection.TRANSACTION_READ_COMMITTED);

With this isolation level, a TYPE_SCROLL_SENSITIVE result set will not show any changes before they are committed, but it can show changes that may have other consistency problems. To allow fewer data inconsistencies, you could raise the transaction isolation level to TRANSACTION_REPEATABLE_READ. The problem is that, in most cases, the higher the isolation level, the poorer the performance is likely to be. And, as is always true of JDBC drivers, you are limited to the levels your driver actually provides. Many programmers find that the best choice is generally to use their database's default transaction isolation level. You can get the default with the following line of code, where con is a newly-created connection:

  int level = con.getTransactionIsolation();

The explanation of Connection fields, beginning on page 347, gives the transaction isolation levels and their meanings.

If you want more information about the visibility of changes and transaction isolation levels, see "What Is Visible to Transactions" on page 597.

In a ResultSet object that is TYPE_SCROLL_INSENSITIVE, you cannot see changes made to it by others while it is still open, but you may be able to see your own changes with some implementations. This is the type of ResultSet object to use if you want a consistent view of data and do not want to see changes made by others.

posted @ 2009-11-16 13:05 追求无止境 阅读(268) | 评论 (0)编辑 收藏

视频感想

昨天晚上看了关于“都市信息网”项目开发视频,给人总体感觉差强人意,学到了一些知识,记录如下:

1、页面结构:

在页面结构的定义上,将页面分成多部分,例如页头,页尾,左侧栏和右主栏。在每个栏中导入需要的JSP文件。

2、关于controller:

要让controller实现RequestAware和ResponseAware。然后使用继承。

3、关于DAO层的设计

遗憾的是都市信息在DAO层的设计上,是一个败笔。在controller里面使用sql语句。不利于各个层次的独立。

4、关于TreeMap

在该项目中,使用map多使用TreeMap,查一下TreeMap是什么东西吧:

A Red-Black tree based NavigableMap implementation. The map is sorted according to the natural ordering of its keys, or by aComparator provided at map creation time, depending on which constructor is used.

哦,是一个基于红黑树的Map。

什么是红黑树。

红黑树(Red-Black Tree)是二叉搜索树(Binary Search Tree)的一种改进。我们知道二叉搜索树在最坏的情况下可能会变成一个链表(当所有节点按从小到大的顺序依次插入后)。而红黑树在每一次插入或删除节点之后都会花O(log N)的时间来对树的结构作修改,以保持树的平衡。也就是说,红黑树的查找方法与二叉搜索树完全一样;插入和删除节点的的方法前半部分节与二叉搜索树完全一样,而后半部分添加了一些修改树的结构的操作。
红黑树的每个节点上的属性除了有一个key、3个指针:parent、lchild、rchild以外,还多了一个属性:color。它只能是两种颜色:红或黑。而红黑树除了具有二叉搜索树的所有性质之外,还具有以下4点性质:
1. 根节点是黑色的。
2. 空节点是黑色的(红黑树中,根节点的parent以及所有叶节点lchild、rchild都不指向NULL,而是指向一个定义好的空节点)。
3. 红色节点的父、左子、右子节点都是黑色。
4. 在任何一棵子树中,每一条从根节点向下走到空节点的路径上包含的黑色节点数量都相同。

有了这几条规则,就可以保证整棵树的平衡,也就等于保证了搜索的时间为O(log N)。

但是在插入、删除节点后,就有可能破坏了红黑树的性质。所以我们要做一些操作来把整棵树修补好。下面我就来介绍一下。

posted @ 2009-11-16 13:03 追求无止境 阅读(91) | 评论 (0)编辑 收藏

一个简单的小测验,考查一下对Java基础的掌握情况

今天看Java Language Specification的时候看到了下面的一段代码:
package testPackage;
class Test {
public static void main(String[] args) {
String hello 
= "Hello", lo = "lo";
System.out.print((hello 
== "Hello"+ " ");
System.out.print((Other.hello 
== hello) + " ");
System.out.print((other.Other.hello 
== hello) + " ");
System.out.print((hello 
== ("Hel"+"lo")) + " ");
System.out.print((hello 
== ("Hel"+lo)) + " ");
System.out.println(hello 
== ("Hel"+lo).intern());
}

}

class Other static String hello = "Hello"; }


package other;
public class Other static String hello = "Hello"; }



输出的结果出人预料。不运行它,大家自己想想答案吧,然后把答案和你的想法贴出来分享给大家吧。
正确答案的话,运行一下运行一下就知道了。。

posted @ 2009-08-11 09:39 追求无止境 阅读(1521) | 评论 (8)编辑 收藏

JSP优化(转)

你时常被客户抱怨JSP页面响应速度很慢吗?你想过当客户访问次数剧增时,你的WEB应用能承受日益增加的访问量吗?本文讲述了调整JSP和servlet的一些非常实用的方法,它可使你的servlet和JSP页面响应更快,扩展性更强。而且在用户数增加的情况下,系统负载会呈现出平滑上长的趋势。在本文中,我将通过一些实际例子和配置方法使得你的应用程序的性能有出人意料的提升。其中,某些调优技术是在你的编程工作中实现的。而另一些技术是与应用服务器的配置相关的。在本文中,我们将详细地描述怎样通过调整servlet和JSP页面,来提高你的应用程序的总体性能。在阅读本文之前,假设你有基本的servlet和JSP的知识。
方法一:在servlet的init()方法中缓存数据
当应用服务器初始化servlet实例之后,为客户端请求提供服务之前,它会调用这个servlet的init()方法。在一个servlet的生命周期中,init()方法只会被调用一次。通过在init()方法中缓存一些静态的数据或完成一些只需要执行一次的、耗时的操作,就可大大地提高系统性能。
例如,通过在init()方法中建立一个JDBC连接池是一个最佳例子,假设我们是用jdbc2.0的DataSource接口来取得数据库连接,在通常的情况下,我们需要通过JNDI来取得具体的数据源。我们可以想象在一个具体的应用中,如果每次SQL请求都要执行一次JNDI查询的话,那系统性能将会急剧下降。解决方法是如下代码,它通过缓存DataSource,使得下一次SQL调用时仍然可以继续利用它:
<table borderColor=#ffcc66 width="90%" align=center bgColor=#e6e4dd border=1> 
<tr> 
<td>public class ControllerServlet extends HttpServlet
{
private javax.sql.DataSource testDS = null; 
public void init(ServletConfig config) throws ServletException
{
super.init(config); 
Context ctx = null;
try
ctx = new InitialContext();
testDS = (javax.sql.DataSource)ctx.lookup("jdbc/testDS");
}
catch(NamingException ne)
{
ne.printStackTrace(); 
}
catch(Exception e)
{
e.printStackTrace();
}
}
public javax.sql.DataSource getTestDS()
{
return testDS;
}
...
... 
}</td></tr></table>
方法 2:禁止servlet和JSP 自动重载(auto-reloading)
Servlet/JSP提供了一个实用的技术,即自动重载技术,它为开发人员提供了一个好的开发环境,当你改变servlet和JSP页面后而不必重启应用服务器。然而,这种技术在产品运行阶段对系统的资源是一个极大的损耗,因为它会给JSP引擎的类装载器(classloader)带来极大的负担。因此关闭自动重载功能对系统性能的提升是一个极大的帮助。
方法 3: 不要滥用HttpSession 
在很多应用中,我们的程序需要保持客户端的状态,以便页面之间可以相互联系。但不幸的是由于HTTP具有天生无状态性,从而无法保存客户端的状态。因此一般的应用服务器都提供了session来保存客户的状态。在JSP应用服务器中,是通过HttpSession对像来实现session的功能的,但在方便的同时,它也给系统带来了不小的负担。因为每当你获得或更新session时,系统者要对它进行费时的序列化操作。你可以通过对HttpSession的以下几种处理方式来提升系统的性能:
· 如果没有必要,就应该关闭JSP页面中对HttpSession的缺省设置: 如果你没有明确指定的话,每个JSP页面都会缺省地创建一个HttpSession。如果你的JSP中不需要使用session的话,那可以通过如下的JSP页面指示符来禁止它:
<table borderColor=#ffcc66 width="90%" align=center bgColor=#e6e4dd border=1> 
<tr> 
<td><%@ page session="false"%> </td></tr></table>
· 不要在HttpSession中存放大的数据对像:如果你在HttpSession中存放大的数据对像的话,每当对它进行读写时,应用服务器都将对其进行序列化,从而增加了系统的额外负担。你在HttpSession中存放的数据对像越大,那系统的性能就下降得越快。
· 当你不需要HttpSession时,尽快地释放它:当你不再需要session时,你可以通过调用HttpSession.invalidate()方法来释放它。
· 尽量将session的超时时间设得短一点:在JSP应用服务器中,有一个缺省的session的超时时间。当客户在这个时间之后没有进行任何操作的话,系统会将相关的session自动从内存中释放。超时时间设得越大,系统的性能就会越低,因此最好的方法就是尽量使得它的值保持在一个较低的水平。
方法 4: 将页面输出进行压缩
压缩是解决数据冗余的一个好的方法,特别是在网络带宽不够发达的今天。有的浏览器支持gzip(GNU zip)进行来对HTML文件进行压缩,这种方法可以戏剧性地减少HTML文件的下载时间。因此,如果你将servlet或JSP页面生成的HTML页面进行压缩的话,那用户就会觉得页面浏览速度会非常快。但不幸的是,不是所有的浏览器都支持gzip压缩,但你可以通过在你的程序中检查客户的浏览器是否支持它。下面就是关于这种方法实现的一个代码片段:
<table borderColor=#ffcc66 width="90%" align=center bgColor=#e6e4dd border=1> 
<tr> 
<td>public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException 
{
OutputStream out = null
String encoding = request.getHeader("Accept-Encoding"); 
if (encoding != null && encoding.indexOf("gzip") != -1)
{
request.setHeader("Content-Encoding" , "gzip");
out = new GZIPOutputStream(request.getOutputStream());
}
else if (encoding != null && encoding.indexOf("compress") != -1)
{
request.setHeader("Content-Encoding" , "compress");
out = new ZIPOutputStream(request.getOutputStream());
else
{
out = request.getOutputStream();
}
...
... 
} </td></tr></table>
方法 5: 使用线程池
应用服务器缺省地为每个不同的客户端请求创建一个线程进行处理,并为它们分派service()方法,当service()方法调用完成后,与之相应的线程也随之撤消。由于创建和撤消线程会耗费一定的系统资源,这种缺省模式降低了系统的性能。但所幸的是我们可以通过创建一个线程池来改变这种状况。另外,我们还要为这个线程池设置一个最小线程数和一个最大线程数。在应用服务器启动时,它会创建数量等于最小线程数的一个线程池,当客户有请求时,相应地从池从取出一个线程来进行处理,当处理完成后,再将线程重新放入到池中。如果池中的线程不够地话,系统会自动地增加池中线程的数量,但总量不能超过最大线程数。通过使用线程池,当客户端请求急剧增加时,系统的负载就会呈现的平滑的上升曲线,从而提高的系统的可伸缩性。
方法 6: 选择正确的页面包含机制
在JSP中有两种方法可以用来包含另一个页面:1、使用include指示符(<%@ includee file=”test.jsp” %>)。2、使用jsp指示符(<jsp:includee page=”test.jsp” flush=”true”/>)。在实际中我发现,如果使用第一种方法的话,可以使得系统性能更高。
方法 7:正确地确定javabean的生命周期
JSP的一个强大的地方就是对javabean的支持。通过在JSP页面中使用<jsp:useBean>标签,可以将javabean直接插入到一个JSP页面中。它的使用方法如下:
<table borderColor=#ffcc66 width="90%" align=center bgColor=#e6e4dd border=1> 
<tr> 
<td><jsp:useBean id="name" scope="page|request|session|application" class=
"package.className" type="typeName">
</jsp:useBean></td></tr></table>
其中scope属性指出了这个bean的生命周期。缺省的生命周期为page。如果你没有正确地选择bean的生命周期的话,它将影响系统的性能。
举例来说,如果你只想在一次请求中使用某个bean,但你却将这个bean的生命周期设置成了session,那当这次请求结束后,这个bean将仍然保留在内存中,除非session超时或用户关闭浏览器。这样会耗费一定的内存,并无谓的增加了JVM垃圾收集器的工作量。因此为bean设置正确的生命周期,并在bean的使命结束后尽快地清理它们,会使用系统性能有一个提高。
其它一些有用的方法 
· 在字符串连接操作中尽量不使用“+”操作符:在java编程中,我们常常使用“+”操作符来将几个字符串连接起来,但你或许从来没有想到过它居然会对系统性能造成影响吧?由于字符串是常量,因此JVM会产生一些临时的对像。你使用的“+”越多,生成的临时对像就越多,这样也会给系统性能带来一些影响。解决的方法是用StringBuffer对像来代替“+”操作符。
· 避免使用System.out.println()方法:由于System.out.println()是一种同步调用,即在调用它时,磁盘I/O操作必须等待它的完成,因此我们要尽量避免对它的调用。但我们在调试程序时它又是一个必不可少的方便工具,为了解决这个矛盾,我建议你最好使用Log4j工具(http://jakarta.apache.org ),它既可以方便调试,而不会产生System.out.println()这样的方法。
· ServletOutputStream 与 PrintWriter的权衡:使用PrintWriter可能会带来一些小的开销,因为它将所有的原始输出都转换为字符流来输出,因此如果使用它来作为页面输出的话,系统要负担一个转换过程。而使用ServletOutputStream作为页面输出的话就不存在一个问题,但它是以二进制进行输出的。因此在实际应用中要权衡两者的利弊。
总结
本文的目的是通过对servlet和JSP的一些调优技术来极大地提高你的应用程序的性能,并因此提升整个J2EE应用的性能。通过这些调优技术,你可以发现其实并不是某种技术平台(比如J2EE和.NET之争)决定了你的应用程序的性能,重要是你要对这种平台有一个较为深入的了解,这样你才能从根本上对自己的应用程序做一个优化!

posted @ 2009-07-23 09:55 追求无止境 阅读(168) | 评论 (0)编辑 收藏

转帖--每个人都该学会的50件事情

   要过得健康充实,还得靠自立。要学会自立,必须得掌握一些技巧。可能和你在学校里学到的不同,但全才远远要比专门只会一样的人更能够适应生活。

这里是每个人都该学会的50件事情。(不完全统计)

 
1.   生火——火能产生光和热。这两件是生存的必需品。也许在某个时候,这项技能可以救你的命。

2.   操作电脑——基本的电脑常识是现代生活之必需。必要的时候,请帮助他人。

3。有效使用Google——Google无所不知。如果你用Google找不到你想找的东西,那就是你的问题了。

4。人工呼吸和处理喉咙被塞住的急救措施——有一天你的妻子、丈夫、儿子或女儿,可能正是需要你帮助的那个人。

5。开手排档的车——也许有时候你会需要这项技能,要是不会就糟了。

6。简单地做饭——如果你连鸡蛋或牛排都不会煎,那就麻烦了。

7。讲一个能吸引人们注意力的故事——如果你不能吸引别人的注意力,那还是别废话了。

8。不与人打架,除非你能赢——两种情况下,你都赢了。

9。告诉别人坏消息——总得有人去做这件事。不幸的是,有一天这个重任也会落到你肩上。

10。换轮胎——轮胎里面有气体,只要有气体的东西总有一天会爆掉。

11。从容应对面试——要是紧张得浑身是汗,你肯定得不到那份工作。

12。管理好自己的时间——否则你就是在浪费时间。偶尔浪费时间也没关系,但不能一直这样。

13。快速阅读——很多时候你只要读要点就可以了。(看到这里就觉得没早点学会这条了吧)

14。记住名字——你会喜欢别人管你叫“喂,那个谁。。。”吗?

15。整理房间——真正做起来总比想象的要难一点。

16。轻装上阵——旅行时只带最必需的东西。这样更便宜、更简单、更灵活。

17。和警察打交道——蹲监狱可不是好玩的,监狱里面的大汉就更不用说了。

18。给别人指路——没人喜欢迷路,所以最好第一次就指对。

19。进行基本的急救——会正确处理伤口,不是只有医生或天才才能做到的。

20。游泳——地球表面71%的地方都是水,所以学会游泳绝对是个好主意。

21。路边停车——大多数标准驾照考试都要求考路边停车,然而大多数人还是不知道该怎么做。很奇怪啊。

22。了解自己的酒量——不然你一不小心就会很难看。

23。选择好的产品——腐坏的水果和蔬菜只能成为恶作剧的道具用来吓人。

24。会用锤子、斧子和手锯——不是只有木匠才用得着这些工具的。每个人都得有点使用这些工具的基本常识。

25。进行简单的财务规划——负债累累可不好,一个简单地预算计划可以帮你解决这些问题。

26.至少会说两种通用的语言——世界上只有25%的人说英语。如果能跟剩下75%的人沟通也挺好的。

27.正确地做俯卧撑和仰卧起坐——姿势不正确的话只会伤害身体,也是浪费时间。

28.多赞美别人——赞美是世上最好的礼物之一,更何况是免费的。

29.谈判——再多问一两个问题就会得到更好的价钱。

30.仔细听别人说话——多听少讲,学到的多,失去的少。

31.复习基本的地理知识——如果你不知道你生活圈以外的环境,大部分的人只会认为你什么都不知道(而且通常他们是对的)。

32.粉刷房间——粉刷房间的价格百分之九十是人工费用,简单的油漆活自己做比付给别人9倍的工资要来得划算。

33.简单明了又内容丰富的演说——如果下次公司开会时你的上司要你解释你上个月做了什么活,这样的演讲能让你过关。“嗯。。。不知道”的话就惨了。

34.照相的时候微笑——硬是不笑的人最糟了!

35.不出丑的搭讪——搭讪成功跟失败只是一念之间。如果太刻意的话会失败,不够用心的话也会失败。

36.做有用的笔记——因为没用的笔记和不做笔记一样都是没用的。

37.礼待住在自己家里的客人——要不然的话哪天你需要借住他们家的时候就只能睡旅馆了。

38.给人好的第一次印象——亚里士多德曾经说过,“好的开始是成功的一半。”

39.会看地图和使用指南针——如果你的卫星导航器在一个鸟不生蛋的地方坏了,你要怎么办?

40.缝钮扣——比买新衣便宜。

41.自己装家里的视听系统——又不是多难,付钱给别人装只是因为偷懒。

42.打字——打字打得好的话会节省很多时间,一生受用。

43.保护私人资料——除非你是那个小偷,不然个人资料被偷可不是好玩的。

44.设定基本的电脑系统防护措施——设定密码跟防火墙并不需要计算机本科毕业,但可以预防将来倒大霉。

45。识别谎言——人们会对你说谎,此乃人生之一大不幸。

46。有礼貌地结束约会,而不承诺下一次——千万别给别人一个你不愿给的承诺。你也不用急着决定和一个刚认识没多久的人有什么未来。

47。除去污渍——总比再买一件便宜。

48。保持房间整洁——整洁的房间是健康、规律生活的开始。

49。正确地抱婴儿——你可不想无意弄伤一个小宝宝。

50。启动汽车电瓶——这总比走路或叫拖车好得多。

风雨雷电---MP3MP4专卖;

posted @ 2008-10-04 14:16 追求无止境 阅读(92) | 评论 (0)编辑 收藏

迷茫中……

喜欢听戴佩妮的那首"小小",歌词简单,却能让人安静下来,心里不在浮躁。就像刚才,心里正浮躁的不知道干什么的时候,就听了那首歌,让我静了下来,开始写我的博客。

关于保研的问题仍然很尴尬,我也不知道自己到底想不想上。想吧,害怕白上了三年,不想吧,可这是个好的机会啊。而且是上学还不掏钱。多好啊。或许自己给自己的要求太高了,我想自己以后毕业一定要去一个大公司。可今天上课的时候,给我们讲课的老师,那么厉害都不去那些好的公司,何况是我们这些毕业的社会上一大把的本科生呢。而且,我们的专业和二本学校的专业是一样的。

就是上面的考虑,让我犹豫了。我不知道自己究竟作何选择。我的想法是要上的话就上个好的,比如上北京的学校,多好啊。要不上的话,就好好的努力工作。如果以后有机会的话,再去上。但毕业却是另一种情况。

现在问题是如果我工作了。我做什么工作,我都不知道呢。我可以做网络安全,可以做java编程,可以做嵌入式开发等等。但我却没有一个确定的目标。目标是什么啊?阿晶。我也不知道。

就拿上研究生,我也不知道自己上什么方向呢。所以很迷茫啊。以前就想着给自己做职业规划,但从来就没有规划好。觉得到时候就知道了,知道怎么选择了。到现在也不知道该怎么办。如果有一天,自己真的研究生毕业了,我还是不知道自己要干什么。

语无伦次。我没有什么特别的特点。所以,这才导致了我不知道作何选择了。哎,我究竟是什么样的人。

我真不知道。或许这是最重要的。不如做一个测试吧,看看自己到底适合做什么啊。测试的网站是:

http://www.psytopic.com/mag/post/mbti-career-personality-test-psytopic-special-edition.html

测试结果是:

Psytopic分析:您的性格类型是“INTP”(内向+直觉+思维+知觉)
对任何感兴趣的事物,都要探索一个合理的解释。喜欢理论和抽象的事情,喜欢理念思维多于社交活动。沉静,满足,有弹性,适应力强。在他们感兴趣的范畴内,有非凡的能力去专注而深入地解决问题。有怀疑精神,有 时喜欢批判,常常善于分析。
INTP型的人是解决理性问题者。他们很有才智和条理性,以及创造才华的突出表现。INTP型的人外表平静、缄默、超然,内心却专心致志于分析问题。他们苛求精细、惯于怀疑。他们努力寻找和利用原则以理解许多想法。 他们喜欢有条理和有目的的交谈,而且可能会仅仅为了高兴,争论一些无益而琐细的问题。只有有条理的推理才会使他们信服。通常INTP型的人是足智多谋、有独立见解的思考者。他们重视才智,对于个人能力有强烈的欲 望,有能力也很感兴趣向他人挑战。 INTP型的人最主要的兴趣在于理解明显的事物之外的可能性。他们乐于为了改进事物的目前状况或解决难题而进行思考。他们的思考方式极端复杂,而且他们能很好地组织概念和想法。 偶尔,他们的想法非常复杂,以致于很难向别人表达和被他人理解。 INTP型的人十分独立,喜欢冒险和富有想象力的活动。他们灵活易变、思维开阔,更感兴趣的是发现有创见而且合理的解决方法,而不是仅仅看到成为事 实的解决方式。
您适合的领域有:计算机技术 理论研究、学术领域 专业领域 创造性领域等
您适合的职业有:
· 电脑软件设计师
· 系统分析人员
· 计算机程序员
· 研究开发专业人员
· 数据库管理
· 故障排除专家
· 战略规划师
· 金融规划师
· 信息服务开发商
· 变革管理顾问
· 企业金融律师
· 大学教授
· 科研机构研究人员
· 数学家
· 物理学家
· 经济学家
· 考古学家
· 历史学家
· 证券分析师
· 金融投资顾问
· 律师
· 法律顾问
· 财务专家
· 侦探
· 各类发明家
· 作家
· 设计师
· 音乐家
· 艺术家
· 艺术鉴赏

呵呵,最适合的领域是计算机技术,刚好,我就是学计算机的。通过测试,我知道我该从事做什么了。的确如此。但But,仍然迷茫的是下一步该做什么。继续先迷茫着把。

posted @ 2008-09-18 17:31 追求无止境 阅读(173) | 评论 (0)编辑 收藏

中秋时节月儿圆

中秋时节月儿圆,皎洁的月光,云在月光下显的那样洁白和安详。

最近一直都在考虑关于自己的抉择。下面是具体的分析:

1、上研究生

上研究生,理论上不错,但限制是你只能上本校的研究生。

优点如下:

1、能够获得硕士学位证书;

2、在一个好的导师的情况下,能够学到更多的东西;

3、有奖学金上,免费的研究生。

4、研究生毕业后,可以别的学校任教。这个工作也不错。呵呵;

5、研究生毕业后,可以有好的工作。。。。

缺点可能如下:

1、在上研究生过程中,除了给学校的导师干活之外,没有其他的工作经验,因为学校周围没有好的实习机会;

2、上完3年,研究生不值钱,还是不好找工作;

3、学校的研究生不好。

总而言之,就是学校的研究生不好。尤其是我们学校的研究生。怕自己的三年什么也没有学到。

posted @ 2008-09-14 23:29 追求无止境 阅读(93) | 评论 (0)编辑 收藏

JSP Web框架研究:Struts

     摘要: 在JSP 的各种Web框架中,据我看来Struts框架最为简单。下面从Struts框架开始来研究JSP的web框架。 1、MVC 在研究这个框架之前,先要对MVC模式有所了解。幸好以前学习过设计模式,对MVC编程和模式了解一些,即将模型、视图、控制器分开。使三者可以各负其责,处理自己的逻辑。 2、Struts框架的介绍: Struts框架也采用了MVC结构: Model:在Struts框架中,Mo...  阅读全文

posted @ 2008-09-14 10:06 追求无止境 阅读(2304) | 评论 (2)编辑 收藏

仅列出标题
共4页: 上一页 1 2 3 4 下一页