当前位置:五德范文网>心得体会 > 参观飞机的心得体会8篇

参观飞机的心得体会8篇

时间:2022-03-08 12:15:01 心得体会 浏览量:

参观飞机的心得体会8篇

参观飞机的心得体会篇1

1.首先有玩家类,窗口类,主函数类和图片文件(.jpg)

2.然后是先行知识,创建窗口(JFrame),设置窗口属性;窗口上不能直接添加组件(键盘监听等),所以先在窗口上添加容器(Jpanel),将组件(KeyAdapter)添加到容器;

3.画出玩家:重写窗口类中的paintComponent方法,创建Graphics对象,调用drawImage方法可画图,调用drawString方法可标注其名字

4.移动:在窗口类中创建键盘监听抽象类KeyAdapter(实现了接口的部分方法但无具体操作),需要重写该类的Keypressed方法和KeyRleased方法,赋给按键变量真值,随后将该对象添加到窗口

5.随机生成初始坐标:在开始游戏后随机给定玩家的x、y坐标,创建Random对象,调用Random.nextInt(n)方法,n代表从[0,n)区间的随机值。

6.最后通过一个Timer.schedule(匿名内部类对象,指定延迟后开始,周期)方法来实现移动效果。匿名内部类【TimerTask的子类,重写了run方法,包括repaint方法(实则调用paintComponent)和yidong方法】来重画、监听键盘的指令()并作出相应动作

下面是源代码(有注释):

容器类

package a;

import javax.swing._;

import java.awt._;

import java.awt.event.KeyAdapter;

import java.awt.event.KeyEvent;

import java.util.Random;

import java.util.Timer;

import java.util.TimerTask;

import static a.Newgame.frame;

//新建面板

public class War extends JPanel {

private Timer timer;

private boolean sUp, sDown, sRight, sLeft;//右飞机按键变量

private boolean sW, sD, sS, sA;//左飞机按键变量

private Player1 player1 = new Player1();

private Player2 player2 = new Player2();

private ImageIcon img11 = player1.img1;

private ImageIcon img22 = player2.img2;

@Override

protected void paintComponent(Graphics g) {

super.paintComponent(g);//此句调用父类方法进行界面重绘,恢复到某个界面,下面的步骤再画玩家;如果注释掉会有重影

//在面板上画出玩家

g.drawImage(img11.getImage(), player1.x, player1.y, 100, 100, this);

g.drawString("P1", player1.x, player1.y);

g.drawImage(img22.getImage(), player2.x, player2.y, 100, 100, this);

g.drawString("P2", player2.x, player2.y);

}

public void startGame() {

timer = new Timer();

timer.schedule(new TimerTask() {//匿名内部类(TimerTask的子类)

@Override

public void run() {//重写run()函数

repaint();//调用重写的paintComponent来画两飞机

yidong();//并每次判断按下哪个键,然后移动

}

}, 0, 50);//安排指定的任务从指定的延迟后开始进行重复的固定延迟执行。50毫秒执行一次

}

public void yidong() {

//因为每打印一次可能用户按下一个飞机的几个键或者两个飞机的几个键,这些是都要检测到的,改成elseif后只能检测到一个键,无法实现两架飞机同时多方向移动

if (sW && player1.y > 0) {

player1.y -= player1.speed;

}

if (sA && player1.x > 0) {

player1.x -= player1.speed;

}

if (sS && player1.y < 700) {

player1.y += player1.speed;

}

if (sD && player1.x < 900) {

player1.x += player1.speed;

}

if (sUp && player2.y > 0) {

player2.y -= player2.speed;

}

if (sDown && player2.y < 700) {

player2.y += player2.speed;

}

if (sLeft && player2.x > 0) {

player2.x -= player2.speed;

}

if (sRight && player2.x < 900) {

player2.x += player2.speed;

}

}

public void act() {

//随机生成两飞机的初始坐标

Random rd = new Random();

player1.x = rd.nextInt(900);

player1.y = rd.nextInt(700);

player2.x = rd.nextInt(900);

player2.y = rd.nextInt(700);

//开始游戏后获得计时器开始监听并重画

startGame();

//KeyAdapter是KeyListener的实现类,重写了所有方法但没有具体操作

KeyAdapter keyAdapter = new KeyAdapter() {

@Override

public void keyPressed(KeyEvent e) {

super.keyPressed(e);

int key = e.getKeyCode();

switch (key) {

case KeyEvent.VK_W:

sW = true;

break;

case KeyEvent.VK_A:

sA = true;

break;

case KeyEvent.VK_D:

sD = true;

break;

case KeyEvent.VK_S:

sS = true;

break;

case KeyEvent.VK_RIGHT:

sRight = true;

break;

case KeyEvent.VK_LEFT:

sLeft = true;

break;

case KeyEvent.VK_DOWN:

sDown = true;

break;

case KeyEvent.VK_UP:

sUp = true;

break;

}

}

@Override

public void keyReleased(KeyEvent e) {

int key = e.getKeyCode();

switch (key) {

case KeyEvent.VK_W:

sW = false;

break;

case KeyEvent.VK_A:

sA = false;

break;

case KeyEvent.VK_D:

sD = false;

break;

case KeyEvent.VK_S:

sS = false;

break;

case KeyEvent.VK_RIGHT:

sRight = false;

break;

case KeyEvent.VK_LEFT:

sLeft = false;

break;

case KeyEvent.VK_DOWN:

sDown = false;

break;

case KeyEvent.VK_UP:

sUp = false;

break;

}

}

};

frame.addKeyListener(keyAdapter);

}

}

主函数类:

package a;

import javax.swing._;

public class Newgame {

public static JFrame frame;

public static void main(String[] args) {

frame = new JFrame("逃出生天");

frame.setSize(1000,800);

//绝对布局组件位置和形状不会随窗体改变,不设置布局管理器就可以使用setBounds()来控制位置

frame.setLayout(null);

//设置窗体关闭程序自动关闭

frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

//窗体居中显示

frame.setLocationRelativeTo(null);

//添加主面板

War war = new War();

frame.add(war);

//设置面板大小

war.setBounds(0,0,1000,800);

//设置主面板可见

frame.add(war);

frame.setVisible(true);

war.act();

}

}

1234567891011121314151617181920212223242526

玩家类:

玩家1

package a;

import javax.swing._;

public class Player1 {

public int x;

public int y;

public int speed = 50;

public ImageIcon img1 = newImageIcon("D:\\Program_Files\\Jetbrains\\workspace_idea\\src\\a\\plane.jpg");

}

12345678910

玩家2

package a;

import javax.swing._;

public class Player2 {

public int x;

public int y;

public int speed = 50;

public ImageIcon img2 = newImageIcon("D:\\Program_Files\\Jetbrains\\workspace_idea\\src\\a\\plane2.jpg");

}

做成一个桌面小游戏:

点“+”号

选好主函数类后点ok

然后点Build中的Build Artificts

选择jar包点Build即可

然后jar包就在你的workspace生成了,找到它发送桌面快捷方式,更改图标名字即可

图片转换成图标的网站附上

参观飞机的心得体会篇2

在漫长的等待中,我终于迎来了喜圆我飞天梦的那一天。

7月21日,星期六。吃过早饭我们自己开着车早早的就来到了郑州新郑机场。在经过了严格的安检之后,我们排队依次来到了候机大厅,透过玻璃窗看着停在停机坪上的一架架大飞机,我雀跃不已,我不停的问妈妈哪一架是我们要坐的飞机。过了半个小时,喇叭里传出空姐甜美的声音,由于机场人流量太大,我们的航班延误了,要延迟一个小时才能到达郑州机场,我很失落,妈妈说好事多磨嘛,要有耐心,虽然很失落,可是也没有办法。

等到12:30我们的飞机最终缓缓落到了停机坪上。我驻足仰视了眼前的这架大飞机许久,却又在爸爸的催促下踏上了舷梯。没想到机舱里如此宽阔、整洁和明亮,漂亮的空姐始终面带微笑,真让人有种回到了家中的感觉。按照机票的座位安排,我“心有不甘”的落了座,好奇的眼睛依然不停地四处张望。

飞机起动了,只听见“轰、轰”的声音好像是有一只大手把我的耳朵捂住一样,非常难受。我问爸爸怎么了?爸爸说:“没什么,这是正常的.。”听了这句话,我就放心了。这时,空姐亲切的说:“乘客们,飞机马上就要起飞了,请您再次检查一下您的安全带有没有系好……”在一段助跑之后,突然有了一股头重脚轻的感觉,原来飞机正昂首飞向蓝天。

飞机起飞了。从身旁的一扇小窗俯视身下,原来的高楼大厦已经变成了小积木块一样,公路上的汽车俨然成了小蚂蚁,一块块整齐的田地,组成了一个个大大的“田”字,漂亮极了。这时,空姐推着小推车来到了我们身旁,各种饮品自由选择,我要了一杯纯净水,感觉比平时喝的水甜了很多,还隐隐的闻到了香味,这在以前是从没有过的,或许是第一次在飞机上喝的缘故吧。

爸爸说这次飞行要一个多小时,为了打发这段在空中的时间,我随手拿了飞机上的一本杂志看看,不知不觉睡着了。突然喇叭里又响起了声音:“飞机马上就要降落了,请您做好准备…”

终于到上海了,虽然飞机在空中陪伴了我一个多小时,但我还是对飞机有种依依不舍的感觉。是啊,我也能像小鸟一样过了把飞天梦想。

没过多久,飞机降落了。我们走出机场,向出站口走去……

参观飞机的心得体会篇3

去机场的路上,妈妈突然问我:“闰闰,如果让你一个人坐飞机去北京害怕吗?”

“我都已经九岁了,又不是第一次坐飞机,怎么可能害怕?”我快速地答道。

“那好,妈妈现在告诉你,由于你考试原因,你买的票是飞首都机场的,而你爸买的票是飞南苑机场的,时间上差一个半小时,也就是说,你爸先到北京,然后赶到首都机场接你。”

“什么?真的让我一个人坐飞机?”我开始有点紧张起来。

“今天就让你体验一下,爸爸妈妈不在身边的感觉。如果害怕,就不要去了。”

“谁怕啦?一个人就一个人。”我强撑着回答。谁让我刚才说大话的呀!

到了机场,妈妈找了位面善的伯伯,跟他说明情况,便把我托付给他,希望他等会在飞机上照应我。那位伯伯便在领登机牌时,要了两张在一起的座位。

过安检前,妈妈再一次叮嘱我:“爸爸在机场等你,一定要跟紧伯伯,伯伯有爸爸妈妈的电话,要是走丢了会找不到爸爸的。”看着妈妈一脸担心的表情,我赶紧装作若无其事的样子向她摆摆手说:“妈妈,别担心,没事的。”其实,我心里还真有点害怕。

过了安检,我们来到候机厅。因为我们要坐的飞机还没到,所以只好在候机厅耐心等待。大约过了半小时,飞机到了,我紧跟着那位伯伯排着队上了飞机。

飞机起飞了,我非常紧张,紧紧地抓住椅子扶手,好像一松手就会掉下去似的。“唉,要是爸爸在身边就好了。”我在心里默默地想着以前跟爸爸坐飞机时的情景。这时,旁边的伯伯看我有点紧张,就安慰我说:“别怕!现在是飞机爬升阶段,过一会儿,等飞机平飞后就会好的。”“别小看我,我才不怕呢!又不是第一次坐飞机。”为了显示自己的不怕,我赶忙把手从扶手上拿开。看着我滑稽的样子,伯伯忍不住笑了。又过了一会儿,或许是飞机到了平飞阶段,我就没那么紧张了,伯伯便陪我聊起天来……

快餐来了,空姐发给我两只透明的小盒子。一盒是鸡肉饭,另一盒里有番茄酱、面包、榨菜……说实话,中午在学校只吃了一点点,现在肚子正空着呢!我三下五除二就把食物“消灭”干净。吃完饭,我感到有些困,大概是这几天功课复习得较晚欠睡,不知不觉就靠在椅背上睡了起来。

“各位旅客,现在我们已经到达北京上空,飞机正在下降,请大家收起小桌板,系好安全带。”也不知睡了多久,耳边传来空姐的声音。我朝窗外看了看,这才发现天不知什么时候已经黑了,只见下面已是一片灯火通明。

又过了一会儿,我听到“嗤”的一声,我知道飞机已经落地了。

下了飞机,我紧紧地跟在伯伯后面,视线一刻都不敢移开,生怕自己跟丢了。在机场的出口处,我找到了前来接我的爸爸。直到那时,我一颗悬着的心才犹如一块石头落地,感到无比的踏实。

北京,我来啦……

参观飞机的心得体会篇4

用Java制作游戏之前,一定要做到方向明确,思路清晰。首先确定自己需要用到几个类,类里的内容大致是什么,用脑图进行表达展现。

Java语言是一种跨平台、适合于分布式计算环境的面向对象编程语言,具有简单性、面向对象、分布式,多线程性等,其中面向对象有封装,继承,多态三大特性。

1)封装:数据和基于数据的操作封装

2) 继承:一个对象直接使用另一个对象的属性和方法,子类可以继承父类

3) 多态:一个程序中同名的多个不同方法,实现多态的常见方法 子类对父类的覆盖,利用重载在同一个类中定义多个同名的不同方法;

Java游戏制作中必须有 public static void main(String[]args)的主方法,main()方法是程序执行的入口。例如我的飞机大战main(),便是游戏开始执行的入口,写在GameFace类中。

游戏框架的制作,其大部分的代码都是固定形式,可以通用。使用setVisible(true)的方法,改变默认的不可见状态,setLayout(null)取消默认的管理布局,然后setLocation(),setSize(),setBound()等方法设置其大小。将按钮添加监听,实现监听。在对应方法中编写代码,,为监听者创建对象,完成注册,即在接口名字前添加“add”。

游戏版面要继承JPanel,其原因是JPanel带有双缓冲技术,可以解决闪烁的问题,需要加入到JFrame窗体中,JPanel默认的布局管理器是FlowLayout。调用画笔,将所要显示的图片画出来。然后再根据自己的思路,在游戏版面内添加敌机,实现矩形碰撞,生命值判定,游戏结束对话框。要熟练掌握调用其他的类,画出分数,画出生命值。制作容器,装子弹,飞机,炸弹。

制作游戏思路一定要清晰,对于共有属性,可以建立一个父类,例如在创建一个FlyingObject类,这样可以避免代码的反复编写。对于子类myplane、enemies可以直接继承父类,子类可以根据自己的需求再增加新的变量。在子类myplane中,画出我的飞机,控制飞机飞行的边界,调用子弹容器,画出容器中子弹,与敌机进行碰撞检测。飞机大战还应该实现键盘监听,例如Enter键实现暂停,上下左右键实现移动等。在敌机Enemies类中,定义敌机随机出现坐标,敌机图片的相对路径,敌机速度,敌机子弹与我的plane碰撞出现的结果以及敌机子弹生成的时间等。

游戏制作时需要注意的事项:1.JLabel的位置一定要放对,应当先添加背景JLabel,再添加其它控件。否则其它控件将被JLabel所遮挡。

2.对于多次重复编写的代码,尽可能的用for循环,简单方便。但是也要注意跳出语句的使用。

3.调用函数时要注意顺序

4.类名,方法名要遵循命名规范性,尽量做到见名知义,也要注意大小写。

参观飞机的心得体会篇5

早上,我背上早已准备好的行囊,父母送我来到虹桥机场,我格外紧张。临走时,我恋恋不舍,慢慢地向安检处走去,还不时回头。

经过安全检查和一系列手续,我终于找到了登机口,我进去时,心“蹦蹦”直跳,我一直安慰自己:尉卓,不怕,飞机安全,安全!”。我走进机舱,飞机真大啊!从头到尾有30多排座位。

我找到位置,放好行李,找了一个靠窗的位置坐了下来,这时,机舱里传来了空中小姐圆润甜美的声音:“乘客们,我们的飞机即将起飞,请系好安全带,关掉一切电子设备,谢谢您的配合!”我听了,所有紧张抛到脑后,系好安全带,就等着飞机起飞了。

动了,动了!我不时地看着窗外,只见飞机被缓缓地推动着,掉了个头,过一会,飞机奔驰起来,我手握紧,巨大的轰鸣声震耳欲聋。慢慢地,飞机离开了地面,冲向天。

我深吸一口气,靠在椅子上。在飞机上,我有一种腾云驾雾的感觉,有时候,还想要掉下似的我特紧张。飞机已经飞到了云层的上面,什么也看不见全是一片白色。

过了2个多小时,广播里又响起了空中小姐甜美的声音:旅客们,飞机即将降落,请系好安全带……紧接着飞机来了个空中转弯,整个飞机斜了过来,巨声响了起来,飞机开始慢慢往下降落。我觉得脚底痒痒的、心麻麻的。

只听“砰”地一声,飞机“撞”上了跑道,降落在吉林机场,们下了飞机,给父母打了个电话,找到了接我的舅舅,我的独自坐飞机之旅成功结束了,我再也不怕坐飞机了!

参观飞机的心得体会篇6

1月30日凌晨4点,我和爸爸妈妈就早早地起了床,手脚利索地洗漱完毕。5点多就出门儿了,北三环上车辆很少,我们乘的出租半个小时左右就到了首都机场3号航站楼。刚一迈进航站楼的大门,我就被大厅宏伟的气势震慑住了:机场的宽阔我早就有所耳闻,可没有想到竟是这般的壮观。整个大厅由上百根高大粗壮的柱子支撑着,柱与柱前后左右的距离不下五十米,我大张着嘴巴,一个航站楼的面积该有多大呀!

凌晨6点,机场大厅里早已熙熙攘攘人头攒动起来,人们分别在各个航空公司的柜台前办理登机前的手续。爸爸妈妈却带着我来到了登机自动受理电脑前,他们进行了一步步的操作后,电脑竟自动打印出了三张印有航班和个人信息的卡片,这就是所谓的登机牌呀!我定睛细看,上面写着班次、日期、座号、舱位、姓名、登机口、登机时间、离港机场、到港机场、电子票号……嗬!没想到一张小小的卡片包含了这么多信息,也许这就是人们所说的小物有大用吧!下一项手续就该办行李托运了,国航工作人员打印出了两张印有相同编号的卡片,一张贴在行李上,另一张交给了我们。我们离开了,可怜的行李却被一条传送带给带走了。登机前最复杂的手续莫过于安检了,人们要把随身携带的钱包、手机、手提袋、钥匙等物放到传送带上的一个塑料筐里通过安检。人们则通过一个设有电子检测系统的门后由工作人员进行检查。通过安检门的时候,你身上的任何一个金属物件都会引起系统的注意,比如扣子、拉链之类的物品。于是,你的全身上下便会被一根近似于椭圆形,像棒锤一样的东西扫一遍,然后才能放行。

通过这些手续,终于来到了候机室。我向窗外眺望,看到停机坪上停着好多架飞机,它们可比我的玩具飞机大多了!想到自己一会儿就要坐在这个庞然大物的“肚子”里,我感到全身的血都在往头上涌,高兴得不得了。凌晨7点,当显示屏上显示我们乘坐的航班开始登机时,我兴奋地一下子从椅子上跳了起来。检过机票,我一溜烟儿冲进了登机门,来回拐了几个弯儿后,我终于踏在了飞机坚实的身体上。我们乘坐的是波音777飞机,里面有两个走道,九列座位,让人一点儿都不觉得压抑。爸爸说我第一次坐飞机,就把靠舷窗的位置让给了我。坐下后扣好安全带,闭上眼睛竟觉得像坐在自己家里的沙发上一样舒服!我开始检查起我位置上配备的东西:一副耳机、一条毛毯、一本杂志和一个靠垫,前面还有一个可收起放下的小桌板。飞机上还有好多台电视,通过屏幕空姐正在给乘客做着遇到紧急情况时应对的方法。不知怎么此时我的内心竟有点儿忐忑不安起来。

接到飞机可以起飞的指令,我们的飞机便开始沿着跑道在地面上跑了起来。走到一个拐弯儿处,飞机猛地一停,还没有等我反应过来,飞机便开始加速。飞机越跑越快,外面的景物越来越不清楚。突然,我感到身体轻飘飘的,往舷窗下面一看,我们飞起来了!我向远处眺望,看见了航站楼、飞机场和我们刚刚起飞的地方。地面上的一切越来越小,直到缥缈的云雾将它们全部遮住。突然,一道金光射到了我的眼睛里,我不禁皱了一下眉头。抬头一看,一个红点从东方冉冉升起,那不是太阳吗?太阳很快占据了天空,白云在它的照耀下放射出金光,我终于明白了流光溢彩这个词语的含义。此时的我感觉像极了一只在空中自由翱翔的小鸟,上面是湛蓝的天空,下面是洁白的云团。空中地上视角不同,竟有了天壤之别。

10分钟后,飞机上开始供应食品和饮料,虽然和地面上的没什么两样,可我竟觉得口中的食物如此鲜美可口!慢慢的,我们已经升到了万米高空,屏幕上显示舱外温度为零下58摄氏度。天啊,我不由得打了一个冷战,这温度把我冻成冰棍都绰绰有余!3个小时很快过去了,飞机逐渐开始降落,我的耳朵感到越来越不适,非常疼。按照爸爸教我的方法,拼命咽口水,打哈欠,这样才好受一点。飞机一个大转弯,又向下降了,我透过窗户看到下面的土壤竟是红色的,我感觉自己好像已经挨到它们了一样。不知不觉,飞机已经落地了,而我还沉浸在飞翔的快乐之中。直到我看到了灰色的水泥地才明白我们已经到站了,2800余公里的旅途在飞机上竟是如此的短暂。

终于踏到了海南坚实的土地上,我感到这里的空气异常清新,像一个天然的大氧吧!可是这个大氧吧好像发怒了,红彤彤的太阳燎得人身上生疼生疼的,不换上短袖还真是受不了!可转眼间,炎热感就被下午即将开始的旅行冲淡了……

参观飞机的心得体会篇7

线程:进程(process)就是一块包含了某些资源的内存区域。操作系统利用进程把它的工作划分为一些功能单元。线程:进程中所包含的一个或多个执行单元称为线程(thread)。进程还拥有一个私有的虚拟地址空间,该空间仅能被它所包含的线程访问。 线程和进程的区别如下:1)一个进程至少有一个线程。线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。2)线程在执行过程中与进程的区别在于每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。3)从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用来实现进程的调度和管理以及资源分配。

2 简述线程的状态及其转换 1)New,创建一个线程,但是线程并没有进行任何的操作。2)Runnable,新线程从New状态,调用start方法转换到Runnable状态。线程调用start方法向线程调度程序(JVM或者是操作系统)注册一个线程,这个时候一切就绪只等CPU的时间。3)Running,从Runnable状态到Running状态,线程调度根据调度策略的不同调度不同的线程,被调度执行的线程进入Running状态,执行run方法。4)Dead状态,从Running状态到Runnable,run方法运行完毕后,线程就会被抛弃,线程就进入Dead状态。5)Block状态,从Running状态到Block状态,如果线程在运行的状态中因为I/O阻塞、调用了线程的sleep方法以及调用对象的wait方法则线程将进入阻塞状态,直到这些阻塞原因被结束,线程进入到Runnable状态。

3 简述线程的两种创建方式以及它们的区别 创建线程的两种方式:1)使用Thread创建线程。Thread类是线程类,其每一个实例表示一个可以并发运行的线程。我们可以通过继承该类并重写run方法来定义一个具体的线程。其中重写run方法的目的是定义该线程要执行的逻辑。启动线程时调用线程的start()方法而非直接调用run()方法。start()方法会将当前线程纳入线程调度,使当前线程可以开始并发运行。当线程获取时间片段后会自动开始执行run方法中的逻辑。2)使用Runnable创建线程。实现Runnable接口并重写run方法来定义线程体,然后在创建线程的时候将Runnable的实例传入并启动线程。两种创建线程方式的区别: 使用Thread创建线程,编写简单,可以直接操纵线程,无需使用Thread.currentThread(),但是不能够再继承其他类。使用Runnable创建线程可以将线程与线程要执行的任务分离开减少耦合,同时Java是单继承的,定义一个类实现Runnable接口,这样该类还可以继承自其他类。

多线程实现方法

使用Thread创建线并启动线程

java.lang.Thread类是线程类,其每一个实例表示一个可以并发运行的线程。我们可以通过继承该类并重写run方法来定义一个具体的线程。其中重写run方法的目的是定义该线程要执行的逻辑。启动线程时调用线程的start()方法而非直接调用run()方法。start()方法会将当前线程纳入线程调度,使当前线程可以开始并发运行。当线程获取时间片段后会自动开始执行run方法中的逻辑。

public class TestThread extends Thread{

@Override

public void run() {

for(int i=0;i<100;i++){

System.out.println("我是线程");

}

}

}

创建预启动线程

Thread thread = new TestThread();//实例化线程

thread.start();//启动线程

使用Runnable创建并启动线程

实现Runnable接口并重写run方法来定义线程体,然后在创建线程的时候将Runnable的实例传入并启动线程。这样做的好处在于可以将线程与线程要执行的任务分离开减少耦合,同时java是单继承的,定义一个类实现Runnable接口这样的做法可以更好的去实现其他父类或接口。因为接口是多继承关系。

public class TestRunnable implements Runnable{

@Override

public void run() {

for(int i=0;i<100;i++){

System.out.println("我是线程");

}

}

}

启动线程的方法:

Runnable runnable = new TestRunnable();

Thread thread = new Thread(runnable);//实例化线程并传入线程体

thread.start();//启动线程

使用内部类创建线程

通常我们可以通过匿名内部类的方式创建线程,使用该方式可以简化编写代码的复杂度,当一个线程仅需要一个实例时我们通常使用这种方式来 创建。 例如:继承Thread方式:

Thread thread = new Thread(){ //匿名类方式创建线程

public void run(){

//线程体

}

};

thread.start();//启动线程

Runnable方式:

Runnable runnable = new Runnable(){ //匿名类方式创建线程

public void run(){

}

};

Thread thread = new Thread(runnable);

thread.start();//启动线程

线程的方法

currentThread:方法可以用于获取运行当前代码片段的线程

Thread current = Thread.currentThread();

获取线程信息 Thread提供了 获取线程信息的相关方法: long getId():返回该线程的标识符 StringgetName():返回该线程的名称 int getPriority():返回线程的优先级 Thread.state getState():获取线程的状态boolean isAlive():测试线程是否处于活动状态 boolean isDaemon():测试线程是否为守护线程 booleanisInterrupted():测试线程是否已经中断

线程优先级

线程的切换是由线程调度控制的,我们无法通过代码来干涉,但是我们可以通过提高线程的优先级来最大程度的改善线程获取时间片的几率。线程的优先级被划分为10级,值分别为1-10,其中1最低,10最高。线程提供了3个常量来表示最低,最高,以及默认优先级:Thread.MIN_PRIORITY, Thread.MAX_PRIORITY, Thread.NORM_PRIORITY 设置优先级的方法为:

void setPriority(int priority)

守护线程

守护线程与普通线程在表现上没有什么区别,我们只需要通过Thread提供的方法来设定即可: __void setDaemon(boolean )__当参数为true时该线程为守护线程。 守护线程的特点是,当进程中只剩下守护线程时,所有守护线程强制终止。 GC就是运行在一个守护线程上的。需要注意的是,设置线程为后台线程要在该线程启动前设置。

Thread daemonThread = new Thread();

daemonThread.setDaemon(true);

daemonThread.start();

sleep方法

Thread的静态方法sleep用于使当前线程进入阻塞状态: __static void sleep(long ms)__该方法会使当前线程进入阻塞状态指定毫秒,当指定毫秒阻塞后,当前线程会重新进入Runnable状态,等待分配时间片。该方法声明抛出一个InterruptException。所以在使用该方法时需要捕获这个异常 改程序可能会出现"跳秒"现象,因为阻塞一秒后线程并非是立刻回到running状态,而是出于runnable状态,等待获取时间片。那么这段等待时间就是"误差"。所以以上程序并非严格意义上的每隔一秒钟执行一次输出。

yield方法:

Thread的静态方法yield: __static void yield()__该方法用于使当前线程主动让出当次CPU时间片回到Runnable状态,等待分配时间片。

join方法

__void join()__ 该方法用于等待当前线程结束。此方法是一个阻塞方法。 该方法声明抛出InterruptException。

线程同步

synchronized关键字 多个线程并发读写同一个临界资源时候会发生"线程并发安全问题“ 常见的临界资源: 多线程共享实例变量多线程共享静态公共变量 若想解决线程安全问题,需要将异步的操作变为同步操作。 所谓异步操作是指多线程并发的操作,相当于各干各的。所谓同步操作是指有先后顺序的操作,相当于你干完我再干。

同步代码块(synchronized 关键字 ),同步代码块包含两部分:一个作为锁的对象的引用,一个作为由这个锁保护的代码块这个比较难理解故写了下面代码帮助理解

/__

_ 多线程并发安全问题

_ 当多个线程同时操作同一资源时,由于

_ 线程切换时机不确定,导致出现逻辑混乱。

_ 严重时可能导致系统崩溃。

_ @author ylg

_

_/

public class SyncDemo1 {

public static void main(String[] args) {

/_

_ 当一个方法中的局部内部类想引用该方法

_ 的其他局部变量时,这个变量必须被声明

_ 为final的

_/

final Table table = new Table();

Thread t1 = new Thread(){

public void run(){

while(true){

int bean = table.getBean();

Thread.yield();//模拟线程切换

System.out.println(

getName()+":"+bean

);

}

}

};

Thread t2 = new Thread(){

public void run(){

while(true){

int bean = table.getBean();

Thread.yield();//模拟线程切换

System.out.println(

getName()+":"+bean

);

}

}

};

t1.start();

t2.start();

}

}

class Table{

//20个豆子

private int beans = 20;

/__

_ 当一个方法被synchronized修饰后,该方法

_ 成为"同步方法"。多个线程不能同时进入到

_ 方法内部。

_ @return

_/

public synchronized int getBean(){

if(beans==0){

throw new RuntimeException("没有豆子了!");

}

Thread.yield();//模拟线程切换

return beans--;

}

}

/__

_ 有效的缩小同步范围可以保证在

_ 安全的前提下提高了并发的效率

_ @author ylg

_

_/

public class SyncDemo2 {

public static void main(String[] args) {

final Shop shop = new Shop();

Thread t1 = new Thread(){

public void run(){

shop.buy();

}

};

Thread t2 = new Thread(){

public void run(){

shop.buy();

}

};

t1.start();

t2.start();

}

}

class Shop{

/_

_ 在方法上使用synchroinzed,同步监视器对象即当前方法所属对象:this

_/

// public synchronized void buy(){

public void buy(){

try{

Thread t = Thread.currentThread();

System.out.println(t+"正在挑选衣服..");

Thread.sleep(5000);

/_

_ 同步块可以缩小同步范围。

_ 但是必须保证"同步监视器"即:"上锁对象"是同一个才可以。

_ 通常,在一个方法中使用this所谓同步监视器对象即可。

_/

synchronized (this) {

System.out.println(t+"正在试衣服..");

Thread.sleep(5000);

}

System.out.println(t+"结账离开");

}catch(Exception e){

}

}

}

/__

_ synchronized也成为"互斥锁"

_ 当synchronzed修饰的是两段代码,但是"锁对象"相同时,这两段代码就是互斥的。

_ @author ylg

_

_/

public class SyncDemo4 {

public static void main(String[] args) {

final Boo b = new Boo();

Thread t1 = new Thread(){

public void run(){

b.methodA();

}

};

Thread t2 = new Thread(){

public void run(){

b.methodB();

}

};

t1.start();

t2.start();

}

}

class Boo{

public synchronized void methodA(){

Thread t = Thread.currentThread();

System.out.println(t+"正在调用方法A");

try {

Thread.sleep(5000);

} catch (InterruptedException e) {

}

System.out.println(t+"调用方法A完毕");

}

public synchronized void methodB(){

Thread t = Thread.currentThread();

System.out.println(t+"正在调用方法B");

try {

Thread.sleep(5000);

} catch (InterruptedException e) {

}

System.out.println(t+"调用方法B完毕");

参观飞机的心得体会篇8

这个暑假,我的愿望终于实现了!妈妈说,要带我坐飞机去北京玩!我十分兴奋:我马上就能像小鸟一样飞向天空了!

晚上,我们背上早已准备好的行囊,来到虹桥机常经过安全检查和一系列手续,我们终于登上去北京的飞机。我走进机舱,飞机真大啊!从头到尾有30多排座位。我放好行李,找了一个靠窗的位置坐了下来,想象着飞机飞上蓝天的情景。这时,机舱里传来了空中小姐圆润甜美的声音:“乘客们,我们的飞机即将起飞,请系好安全带,关掉一切电子设备,谢谢!”我们系好了安全带,就等着飞机起飞了。

“动了,动了!”我目不转睛地看着窗外,嘴里兴奋地说。只见飞机被缓缓地推动着,掉了个头,在跑道上试飞,过一会,开始正式起飞了。飞机奔驰起来,巨大的轰鸣声震耳欲聋。慢慢地,飞机离开了地面,腾空而起,呼啸着冲向蓝天。这时,机舱里传来旅客激动地叫喊声:“喔!飞起来了!”

在飞机上,我虽然有点头晕、耳痛,却有了一种腾云驾雾的感觉。我趴在窗前,从高空往下看,陆地上的灯火好像颗颗小星星,一闪一闪地眨着眼睛。飞机已经飞到了云层的上面,陆地上的灯火完全看不见了,只有旁边几朵黑黑的薄云陪着我们。

这时,机舱里的温度降了下来,一直忙碌着的空姐像及时雨一样给大家送来温暖又柔软的毛毯。不一会儿,空姐又推着食品车,给大伙送来了小点心。我津津有味儿地品尝着,全然忘记了刚才的不适。在空姐的忙碌中,我们吃了食品,喝了饮料,看了报纸……

就在我们兴奋着时,广播里又响起了空中小姐甜美的声音:旅客们,飞机即将降落,请系好安全带……到了,我还没坐过瘾呢!紧接着巨大的轰鸣声响了起来,飞机开始慢慢往下降落。我觉得脚底痒痒的、酥酥的,舒服得我直喊:“真好玩儿!”

只听“砰”地一声,飞机“撞”上了跑道,平稳地降落在北京机常我们下了飞机,开始了有趣的北京之旅……

今天,爸爸妈妈带我去北京玩,一大早我们带上行里,坐上大巴向上海浦东机场驶去。

过了一会儿我们就到了上海浦动国际机常啊!上海浦动国际机场可真大呀!这个机场共分三层,第一层是国内、国际到达的,第二层是国内、国际出发的,第三层是侯机厅。爸爸换好了登记牌,交了建设费,我们就去侯机厅等待登记,在侯机厅里我看见机场上停了好多飞机,我问妈妈:“这么小的飞机能坐多少游客呢?”妈妈说:“你不要小看这飞机,它可以坐五百多名游客左右。”“真的吗?”“你上飞机就知道了。”忽然我听到播音员在广播里说“乘作上海东方航空MU586航班的旅客们,请注意您乘坐的飞机现在开始登机了,请在25号登记口登记。”

我们排着队伍一个接着一个登上了飞机。“怎么有一个个的大姐姐在和我们打招呼她们是谁啊?”我好奇的问着爸爸。爸爸说“她们是空姐,专为旅客服的,等一下你就知道了。”我们找到了自己的座位,并把行李放在行李架里,然后坐了下来,我回顾四周,发现机舱的上方还有几只电视机。靠近机身的座位还有一个个小窗口,向外一看可以看见一切东西,我又看见机场里的工作人员正在把旅客托运的行里用输送带装入机舱里。我正看得入神,耳边听到广播在说:“旅客们,本架航班就要起飞了,为了您的安全,请系好安全带。”飞机开始进入划行状态,它一越腾空直插云端,我再往机舱外一看,哇!真美啊!蓝蓝的天,白的云,有的象白马、有的象一群群绵羊、有的象调皮的小孩。

我看得正入神听见空姐在问:“小朋友,您要喝什么饮料?”“来杯可乐吧!”我说。喝着可乐,看着空姐一个个地为旅客服务,一会儿给旅客送报纸、一会儿为旅客拿来毛毯。看着看着我迷迷糊糊地睡着了,当我被老爸叫醒时,目我们的飞机已经降落在首都国际机场,我们开始了北京之旅。

推荐访问:心得体会 参观 飞机 参观飞机场的心得体会 学生参观飞机观后感 看飞机飞过的感想 参观航空馆心得体会 飞机鉴赏心得 坐飞机感想 飞机上的感悟 参观航空馆心得 参观航空公司观后感 参观航空馆心得体会700

版权所有:五德范文网 2019-2024 未经授权禁止复制或建立镜像[五德范文网]所有资源完全免费共享

Powered by 五德范文网 © All Rights Reserved. 备案号:京ICP备19007243号-1