Java线程:线程栈模型与线程的变量

Java线程:线程栈模型与线程的变量
 
SCJP5学习笔记
 
要理解线程调度的原理,以及线程执行过程,必须理解线程栈模型。
线程栈是指某时刻时内存中线程调度的栈信息,当前调用的方法总是位于栈顶。线程栈的内容是随着程序的运行动态变化的,因此研究线程栈必须选择一个运行的时刻(实际上指代码运行到什么地方)。
 
下面通过一个示例性的代码说明线程(调用)栈的变化过程。
 
 
这幅图描述在代码执行到两个不同时刻1、2时候,虚拟机线程调用栈示意图。
 
当程序执行到t.start();时候,程序多出一个分支(增加了一个调用栈B),这样,栈A、栈B并行执行。
 
从这里就可以看出方法调用和线程启动的区别了。

Java线程:创建与启动

Java线程:创建与启动
 
SCJP5学习笔记

 
一、定义线程
 
1、扩展java.lang.Thread类。
 
此类中有个run()方法,应该注意其用法:
public void run()
如果该线程是使用独立的 Runnable 运行对象构造的,则调用该 Runnable 对象的 run 方法;否则,该方法不执行任何操作并返回。

 
Thread 的子类应该重写该方法。
2、实现java.lang.Runnable接口。
 
void run()
使用实现接口 Runnable 的对象创建一个线程时,启动该线程将导致在独立执行的线程中调用对象的 run 方法。

 
方法 run 的常规协定是,它可能执行任何所需的操作。
 
二、实例化线程
 
1、如果是扩展java.lang.Thread类的线程,则直接new即可。
 
2、如果是实现了java.lang.Runnable接口的类,则用Thread的构造方法:
Thread(Runnable target)
Thread(Runnable target, String name)
Thread(ThreadGroup group, Runnable target)
Thread(ThreadGroup group, Runnable target, String name)
Thread(ThreadGroup group, Runnable target, String name, long stackSize)
 
三、启动线程
 
在线程的Thread对象上调用start()方法,而不是run()或者别的方法。
 
在调用start()方法之前:线程处于新状态中,新状态指有一个Thread对象,但还没有一个真正的线程。
 
在调用start()方法之后:发生了一系列复杂的事情
启动新的执行线程(具有新的调用栈);
该线程从新状态转移到可运行状态;
当该线程获得机会执行时,其目标run()方法将运行。
 
注意:对Java来说,run()方法没有任何特别之处。像main()方法一样,它只是新线程知道调用的方法名称(和签名)。因此,在Runnable上或者Thread上调用run方法是合法的。但并不启动新的线程。
 
 
四、例子
 
1、实现Runnable接口的多线程例子
/**
* 实现Runnable接口的类
*
* @author leizhimin 2008-9-13 18:12:10
*/

public class DoSomething implements Runnable {
    private String name;

    public DoSomething(String name) {
        this.name = name;
    }

    public void run() {
        for (int i = 0; i < 5; i++) {
            for (long k = 0; k < 100000000; k++) ;
            System.out.println(name + ": " + i);
        }
    }
}

 
/**
* 测试Runnable类实现的多线程程序
*
* @author leizhimin 2008-9-13 18:15:02
*/

public class TestRunnable {
    public static void main(String[] args) {
        DoSomething ds1 = new DoSomething("阿三");
        DoSomething ds2 = new DoSomething("李四");

        Thread t1 = new Thread(ds1);
        Thread t2 = new Thread(ds2);

        t1.start();
        t2.start();
    }
}

 
执行结果:
李四: 0
阿三: 0
李四: 1
阿三: 1
李四: 2
李四: 3
阿三: 2
李四: 4
阿三: 3
阿三: 4

Process finished with exit code 0

 
2、扩展Thread类实现的多线程例子
 
/**
* 测试扩展Thread类实现的多线程程序
*
* @author leizhimin 2008-9-13 18:22:13
*/

public class TestThread extends Thread{
    public TestThread(String name) {
        super(name);
    }

    public void run() {
        for(int i = 0;i<5;i++){
            for(long k= 0; k <100000000;k++);
            System.out.println(this.getName()+" :"+i);
        }
    }

    public static void main(String[] args) {
        Thread t1 = new TestThread("阿三");
        Thread t2 = new TestThread("李四");
        t1.start();
        t2.start();
    }
}

 
执行结果:
阿三 :0
李四 :0
阿三 :1
李四 :1
阿三 :2
李四 :2
阿三 :3
阿三 :4
李四 :3
李四 :4

Process finished with exit code 0

 
对于上面的多线程程序代码来说,输出的结果是不确定的。其中的一条语句for(long k= 0; k <100000000;k++);是用来模拟一个非常耗时的操作的。
 
五、一些常见问题
 
1、线程的名字,一个运行中的线程总是有名字的,名字有两个来源,一个是虚拟机自己给的名字,一个是你自己的定的名字。在没有指定线程名字的情况下,虚拟机总会为线程指定名字,并且主线程的名字总是mian,非主线程的名字不确定。
2、线程都可以设置名字,也可以获取线程的名字,连主线程也不例外。
3、获取当前线程的对象的方法是:Thread.currentThread();
4、在上面的代码中,只能保证:每个线程都将启动,每个线程都将运行直到完成。一系列线程以某种顺序启动并不意味着将按该顺序执行。对于任何一组启动的线程来说,调度程序不能保证其执行次序,持续时间也无法保证。
5、当线程目标run()方法结束时该线程完成。
6、一旦线程启动,它就永远不能再重新启动。只有一个新的线程可以被启动,并且只能一次。一个可运行的线程或死线程可以被重新启动。
7、线程的调度是JVM的一部分,在一个CPU的机器上上,实际上一次只能运行一个线程。一次只有一个线程栈执行。JVM线程调度程序决定实际运行哪个处于可运行状态的线程。
众多可运行线程中的某一个会被选中做为当前线程。可运行线程被选择运行的顺序是没有保障的。
8、尽管通常采用队列形式,但这是没有保障的。队列形式是指当一个线程完成“一轮”时,它移到可运行队列的尾部等待,直到它最终排队到该队列的 前端为止,它才能被再次选中。事实上,我们把它称为可运行池而不是一个可运行队列,目的是帮助认识线程并不都是以某种有保障的顺序排列唱呢个一个队列的事 实。
9、尽管我们没有无法控制线程调度程序,但可以通过别的方式来影响线程调度的方式。
 

本文出自 “熔 岩” 博客,请务必保留此出处http://lavasoft.blog.51cto.com/62575/99151

Java线程:概念与原理

Java线程:概念与原理
 
SCJP5学习笔记

 
一、操作系统中线程和进程的概念
现在的操作系统是多任务操作系统。多线程是实现多任务的一种方式。
进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。
 
线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。线程总是属于某个进程,进程中的多个线程共享进程的内存。
 
“同时”执行是人的感觉,在线程之间实际上轮换执行。
 
二、Java中的线程
在Java中,“线程”指两件不同的事情:
1、java.lang.Thread类的一个实例;
2、线程的执行。
 
使用java.lang.Thread类或者java.lang.Runnable接口编写代码来定义、实例化和启动新线程。
 
一个Thread类实例只是一个对象,像Java中的任何其他对象一样,具有变量和方法,生死于堆上。
 
Java中,每个线程都有一个调用栈,即使不在程序中创建任何新的线程,线程也在后台运行着。
 
一个Java应用总是从main()方法开始运行,mian()方法运行在一个线程内,它被称为主线程。
 
一旦创建一个新的线程,就产生一个新的调用栈。
 
线程总体分两类:用户线程和守候线程。
当所有用户线程执行完毕的时候,JVM自动关闭。但是守候线程却不独立于JVM,守候线程一般是由操作系统或者用户自己创建的。
 

本文出自 “熔 岩” 博客,转载请与作者联系!

MyEclipse9.0的下载地址以及破解方法

MyEclipse的下载地址:ed2k://|file|%5Bmyeclipse.9.0.%E5%8F%91%E5%B8%83%5D.myeclipse-9.0-offline-installer-windows.exe|971679120|86377fc318829a84ba7915f3544752f2|h=bbclsdgclihngyo6fzknpa6b7o4pwojr|/

可用迅雷直接下载

 

破解方法:

1、破解公钥,确保MyEclipse没有开启,否则失败!
用WinRAR或7-zip打开 Common\plugins\com.genuitec.eclipse.core_9.0.0.me201101251749.jar,到com \genuitec\eclipse\core目录下,替换publicKey.bytes文件

2、破解MyEclipse自检查程序文件完整性,如果不改,那么公钥破解会导致MyEclipse自检查失败,自动退出
用文本编辑器打开MyEclipse 9.0 M2\myeclipse.ini文件,在最后增加如下两行后保存(意外收获是MyEclipse启动速度更快了):
-Dgenuitec.honorDevMode=true
-Dosgi.dev=true

3、启动MyEclipse,执行myeclipse9_keygen_activator.exe(注册机),运行前确认你装了Java6
在注册机中输入你的英文名,点Generate Subscription Code,然后再点Generate Activation Code,这样注册码和激活码就都生成了
在MyEclipse中注册用户名和注册码,然后激活,选择用激活码激活,把注册机中的激活码贴进去,确认,MyEclipse就激活了。

注册机以及publicKey.bytes下载地址:http://www.cr173.com/soft/24383.html

今天你hold住了吗-最新流行网络用语

“hold住”一词来源于台湾综艺节目《大学生了没》。在2011年8月9日的《大学生了没》中,一位名叫miss lin的网友以夸张另类的造型、一口做作的英语、扭捏妖娆的姿态向大学生们介绍什么是Fashion。其极度夸张搞笑的表演震撼了所有观众,miss lin的口头禅是“整个场面我要Hold住”。

 
miss lin的表演有7分钟左右,高潮是“一秒之内变格格”的片段。有一天,miss lin穿着性感的比基尼去参加时尚海滩派对,结果发现是清朝party。miss lin瞬间内心混乱了,但是她告诉自己要“hold住”、不能慌,于是她便突发奇想把比基尼反过来罩在头发上,造型一下就变成了清朝格格。更令人捧腹的 是,她还不断大喊“尔康”,全场的观众瞬间笑得前仰后合。

 

hold住姐参加《大学生了没》

  表演结束后,miss lin自信地说了一句“就算我搞错party,整个场面我要Hold住!”由于miss lin在表演时把比基尼穿在了衣服外面,加之其各种搞笑技艺让人笑到疯狂,整个画面十分喜感,她便被网友称作是“hold住姐”,“Hold住”也因此走 红。

在英语中,“hold”有拿、抱、握住、顶住、控制、掌控等意思。“hold住”就是指面对各种状况都要保持住、坚持住,充满自信,从容应对一切。“要 hold住”也有给力、加油的意思,而“hold不住”则相当于“伤不起”的用法。至于用“hold住”如何造句,平时说话怎么用,简单说就是:这句话非 常fashion非常好用,你想怎么用就怎么用!比如你在地铁、商场、办公室等一切公共场合遇到棘手的突发状况,你可以大喊一句“hold住”,当然也可 以低声说给自己听,告诉自己要淡定、坚持、充分相信自己可以搞定一切;再比如你收到了意中人的鲜花钻戒、得到了梦想已久的升职机会、看到了崇拜多年的偶像 明星……所有这些激动人心的兴奋时刻,你在窃喜的同时一定默念“hold住”让自己变得淡定,然后从容大气地去应对。再或者,你今天买彩票中了500万, 要不住提醒自己“hold住”,在领奖途中一时激动当众摔了一跤,一边尽量优雅地爬起来一边告诉自己“hold住”,领奖回到自己家里锁好门,你可以踢掉 鞋子兴奋地大喊一声:“我hold住啦!”

netbeans的快捷键

查找、搜索和替换
Ctrl-F3 搜索位于插入点的词
F3/Shift-F3 在文件中查找下一个/上一个
Ctrl-F/H 在文件中查找/替换
Alt-F7 查找使用实例
Ctrl-Shift-P 在项目中查找
Alt-Shift-U 查找使用实例结果
Alt-Shift-H 关闭搜索结果突出显示
Alt-Shift-L 跳转列表中的下一个(所有文件)
Alt-Shift-K 跳转列表中的上一个(所有文件)
Ctrl-R 重新装入窗体
Alt-U-U 将选定内容转换为大写
Alt-U-L 将选定内容转换为小写
Alt-U-R 对选定内容切换大小写

在源代码中导航
Alt-Shift-O 转至类
Alt-Shift-E  转至 JUnit 测试
Alt-O 转至源代码
Alt-G 转至声明
Ctrl-B 转至超级实现
Alt-K/Alt-L 后退/前进
Ctrl-G 转至行
Ctrl-F2  切换添加/删除书签
F2/Shift-F2  下一个/上一个书签
F12/Shift-F12 下一个/上一个使用实例/编译错误
Ctrl-Shift-1/2/3 在“项目”/“文件”/“收藏夹”中选择
Ctrl-[ 将插入记号移至匹配的方括号
Ctrl-^ Ctrl-[(法语/比利时语键盘)

用Java编码
Ctrl-I 覆盖方法
Alt-Shift-F/I 修复全部/选定类的导
Alt-Shift-W 以 try-catch 块围绕
Ctrl-Shift-F 重新设置选定内容的
Ctrl-D/Ctrl-T 左移/右移一个制表符
Ctrl-Shift-T/D 添加/撤消注释行 ("//
Ctrl-L/K 插入下一个/上一个匹
Esc/Ctrl-空格键 关闭/打开代码完成
Ctrl-M 选择下一个参数
Shift-空格键 输入空格,不展开缩写
Alt-F1/Shift-F1 显示/搜索 Javadoc
Ctrl-Shift-M  提取方法
Alt-U-G 将 “get” 放置到标识符前面
Alt-U-S 将 “set” 放置到标识符前面
Alt-U-I 将 “is” 放置到标识符前面
Ctrl-Backspace/Del 删除上一个/当前词
Ctrl-E 删除当前行
Ctrl-J-S/E 开始/结束录制宏
Ctrl-Shift-J  插入国际化字符串
Ctrl-数字键盘上的 – 折叠(隐藏)代码块
Ctrl-数字键盘上的 + 展开已折叠的代码块
Ctrl-Shift-数字键盘上的 – 折叠所有代码块
Ctrl-Shift-数字键盘上的 + 展开所有代码块
Alt-Enter 显示建议/提示

打开和切换视图
Ctrl-Shift-0 显示“搜索结果”窗口
Ctrl-0 显示源代码编辑器
Ctrl-1 显示“项目”窗口
Ctrl-2 显示“文件”窗口
Ctrl-3 显示“收藏夹”窗口
Ctrl-4 显示“输出”窗口
Ctrl-5 显示“运行环境”窗口
Ctrl-6 显示“待做事项”窗口
Ctrl-7 显示“导航”窗口
Ctrl-Shift-7 显示“属性”对话框
Ctrl-Shift-8 显示组件面板
Ctrl-8 显示“版本控制”窗口
Ctrl-9 显示“VCS 输出”窗口
Shift-F4 显示“文档”对话框
Alt-向左方向键 移动到左侧窗口
Alt-向右方向键 移动到右侧窗口
Ctrl-Tab (Ctrl-`) 在打开的文档之间切换
Shift-Escape 最大化窗口(切换)
Ctrl-F4/Ctrl-W 关闭当前选定的窗口
Ctrl-Shift-F4 关闭所有窗口
Shift-F10 打开上下文菜单

编译、测试和运行
F9 编译选定的包或文件
F11 生成主项目
Shift-F11 清理并生成主项目
Ctrl-Q 设置请求参数
Ctrl-Shift-U 创建 JUnit 测试
Ctrl-F6/Alt-F6 为文件/项目运行JUnit测试
F6/Shift-F6 运行主项目/文件

调试
F5 开始调试主项目
Ctrl-Shift-F5 开始调试当前文件
Ctrl-Shift-F6 开始为文件调试测试 (JU
Shift-F5/Ctrl-F5 停止/继续调试会话
F4 运行到文件中的光标位置
F7/F8 步入/越过
Ctrl-F7 步出
Ctrl-Alt-向上方向键 转至被调用的方法
Ctrl-Alt-向下方向键 转至调用方法
Ctrl-F9 计算表达式的值
Ctrl-F8 切换断点
Ctrl-Shift-F8 新建断点
Ctrl-Shift-F7 新建监视
Ctrl-Shift-5 显示 HTTP 监视器
Ctrl-Shift-0 显示“搜索结果”窗口
Alt-Shift-1 显示“局部变量”窗口
Alt-Shift-2 显示“监视”窗口
Alt-Shift-3 显示“调用栈”窗口
Alt-Shift-4 显示“类”窗口
Alt-Shift-5 显示“断点”窗口
Alt-Shift-6 显示“会话”窗口
Ctrl-Shift-6 切换到“执行”窗口
Alt-Shift-7 切换到“线程”窗口
Alt-Shift-8 切换到“源”窗口

欢迎使用“海蓝短信助手”- 用手机短息免费接收新浪微博信息

新浪微博API更改授权方式为Author2.0,该应用还是用的Auth1.0,目前应用不可用,近期会升级更新

 

欢迎使用海蓝短信助手: http://sms123.sinaapp.com/

1.当你关注的人有新微博,或你有新的@ 消息,新的评论,新的粉丝时,你的手机会立即收到一条短信,包括完整的微博内容

2.你可以添加特别好友,不需要在微博关注他/她,当他/她发表新微博时,会及时以手机短信的形式发送到你手机上

3.这一切都是免费的

首页如下:

使用微博账号授权登录以后,页面如下:

如果第一次使用或者想更新手机号,点击上面的绑定链接,如果已经绑定过想设置服务或者开通、暂停短信发送,点击下面的链接

绑定的页面设置如下:

继续阅读

【视频】80后怀旧电视剧主题曲

http://v.youku.com/v_show/id_XOTAxMTkyODA=.html

80后怀旧电视剧主题曲
1〉少林寺,这个是本视频唯一的电影,因为太喜欢这个歌曲了所以放在第一位
2〉雪山飞狐片头曲
3〉雪山飞狐片尾曲,追梦人
4〉射雕英雄传,华山论剑
5〉射雕英雄传,铁血丹心,甄妮 罗文
6〉十三妹==〉翁美玲
7〉陆小凤
8〉绝代双骄==〉粱潮伟版本
9〉珍珠传奇==〉好像是我学前班看得
10〉倚天屠龙记==〉马景涛版本,周华健演唱
11〉爱江山更爱美人==〉马景涛版本倚天屠龙记,孙兴=〉杨潇
12〉笑傲江湖片头曲==〉死不了,任贤齐==〉电视剧不敢恭维,但是歌曲在我高中的时候真的是好喜欢好喜欢,我初中高中的时候任贤齐很火的
13〉伤心太平洋==〉任贤齐版本笑傲江湖
14〉笑傲江湖==〉吕颂贤版本,很经典的版本
15〉楚留香==〉郑少秋,赵雅芝版本
16〉戏说乾隆==〉郑少秋版本,赵雅芝版本,
17〉少年张三丰==〉何家劲版本
18〉一代女皇武则天==〉潘迎紫版本
19〉莲花争霸,我初二的时候看的应该是,那一年正好我妈了一场大病,都看不下去了
20〉太极宗师==〉吴京,也是初中的时候,当时好喜欢看哦
21〉上海滩==〉这个不用多说了,连我妈我爸都认识的徐文强,周润发,赵雅芝版本
22〉神雕侠侣==〉潘迎紫版本==〉内容不记得了,但是歌曲很熟悉,跃马江湖道志节比天高,一位是温柔美婵娟,一位是翩翩美少年
23〉神雕侠侣==〉经典版==〉古天乐,李若彤版本,初中看的时候是另外一首歌,但是大学再下载看的时候就是这首歌乐
24〉神雕侠侣==〉任贤齐版本==〉任逍遥
25〉鹿鼎记==〉经典陈小春版本
26〉新白娘子传奇==〉赵雅芝,叶童版本
27〉甘十九妹
28〉白眉大侠
29〉天龙八部,82版本片头曲 ==〉两忘烟水里==〉徐少强饰乔峰、陈玉莲饰王语嫣、汤镇业饰段誉、黄日华饰虚竹
30〉天龙八部,82版本片尾曲==〉万水千山纵横
31〉天龙八部,97版本==〉难念的经,周华健。萧(乔)峰—黄日华 王语嫣—李若彤 段誉—陈浩民 虚竹—樊少皇
32〉三国演义
33〉西游记
34〉水浒传
35〉红楼梦
36〉霍元甲,81版本,万里长城永不倒,千里黄河水滔滔,我爸爸经常唱的
37〉梅花三弄,梅花烙
38〉小侠龙旋风,小虎队
39〉游龙惊凤,潘迎紫
40〉唐太宗李世民,现在也很喜欢的一部电视剧
41〉婉君,本来还想把青青河边草房上去,但是忘记了
42〉小龙人片头曲
43〉小龙人片尾曲,好像不小心弄了两遍,郁闷阿
44〉封神榜,片头曲
45〉封神榜,片尾曲
46〉渴望
47〉便衣警察
48〉海鸥飞处彩云飞
49〉烟雨蒙蒙,刘雪华版本,现在赵微又演了一遍,叫情深深雨蒙蒙
50〉包青天片头曲
51〉包青天片尾曲

html_select_time参数说明

html_select_time

Attribute Name Type Required Default Description
prefix string No Time_ what to prefix the var name with
time timestamp No current time what date/time to use
display_hours boolean No true whether or not to display hours
display_minutes boolean No true whether or not to display minutes
display_seconds boolean No true whether or not to display seconds
display_meridian boolean No true whether or not to display meridian (am/pm)
use_24_hours boolean No true whether or not to use 24 hour clock
minute_interval integer No 1 number interval in minute dropdown
second_interval integer No 1 number interval in second dropdown
field_array string No n/a outputs values to array of this name
all_extra string No null adds extra attributes to select/input tags if given
hour_extra string No null adds extra attributes to select/input tags if given
minute_extra string No null adds extra attributes to select/input tags if given
second_extra string No null adds extra attributes to select/input tags if given
meridian_extra string No null adds extra attributes to select/input tags if given

属性 类型 是否必须 缺省值 描述
prefix string No Time_ 变量名称前缀
time timestamp No UNIX时间戳或年-月-日 使用时间类型(data/time)
display_hours boolean No true 是否显示小时
display_minutes boolean No true 是否显示分钟
display_seconds boolean No true 是否显示秒
display_meridian boolean No true 是否显示正午界(上午/下午)
use_24_hours boolean No true 是否使用24小时制
minute_interval integer No 1 分钟下拉列表的间隔
second_interval integer No 1 秒钟下拉列表的间隔
field_array string No n/a 输出值到该值指定的数组
all_extra string No null 如果给定,为标签添加附加属性
hour_extra string No null 如果给定,为标签添加附加属性
minute_extra string No null 如果给定,为标签添加附加属性
second_extra string No null 如果给定,为标签添加附加属性
meridian_extra string No null 如果给定,为标签添加附加属性

 

html_select_time is a custom function that creates time dropdowns for you. It can display any or all of hour, minute, second and meridian.

自定义函数 html_select_time 用于创建时间下拉菜单. 它可以显示任意时分秒.

Example 8-12. html_select_time
例 8-12. html_select_time 函数演示

 

 

{html_select_time use_24_hours=true}


OUTPUT:

<select name="Time_Hour">
<option value="00">00</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09" selected>09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
</select>
<select name="Time_Minute">
<option value="00">00</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20" selected>20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
<option value="32">32</option>
<option value="33">33</option>
<option value="34">34</option>
<option value="35">35</option>
<option value="36">36</option>
<option value="37">37</option>
<option value="38">38</option>
<option value="39">39</option>
<option value="40">40</option>
<option value="41">41</option>
<option value="42">42</option>
<option value="43">43</option>
<option value="44">44</option>
<option value="45">45</option>
<option value="46">46</option>
<option value="47">47</option>
<option value="48">48</option>
<option value="49">49</option>
<option value="50">50</option>
<option value="51">51</option>
<option value="52">52</option>
<option value="53">53</option>
<option value="54">54</option>
<option value="55">55</option>
<option value="56">56</option>
<option value="57">57</option>
<option value="58">58</option>
<option value="59">59</option>
</select>
<select name="Time_Second">
<option value="00">00</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23" selected>23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
<option value="32">32</option>
<option value="33">33</option>
<option value="34">34</option>
<option value="35">35</option>
<option value="36">36</option>
<option value="37">37</option>
<option value="38">38</option>
<option value="39">39</option>
<option value="40">40</option>
<option value="41">41</option>
<option value="42">42</option>
<option value="43">43</option>
<option value="44">44</option>
<option value="45">45</option>
<option value="46">46</option>
<option value="47">47</option>
<option value="48">48</option>
<option value="49">49</option>
<option value="50">50</option>
<option value="51">51</option>
<option value="52">52</option>
<option value="53">53</option>
<option value="54">54</option>
<option value="55">55</option>
<option value="56">56</option>
<option value="57">57</option>
<option value="58">58</option>
<option value="59">59</option>
</select>
<select name="Time_Meridian">
<option value="am" selected>AM</option>
<option value="pm">PM</option>
</select>

安慰自己的10句温馨话

1、用心做自己该做的事
2、每个人都有自己的活法
3、别总是自己跟自己过不去
4、不要过于计较别人的评价
5、不妨暂时丢开烦心事
6、自己感觉幸福就是幸福
7、最重要的是今天的心
8、木已成舟便要顺其自然
9、不必一味讨好别人
10、喜欢自己才会拥抱生活