Java语言的基础知识9
第十一章(线程)
1、通过String name=Thread.currentThread().getName();来获取当前线程的名称。
2、多次启动一个线程或者启动一个已经运行的线程是非法的,会抛出IllegalThreadStateException异常对象。
Thread.sleep((int)Math.random()*10000);
3、java提供了Runnable接口使继承了其他类之后同样可以实现该接口达到创建线程的目的Runabble接口同样定义了Run方法。
实现Runnable接口的对象需要传递给Thread类的构造方法通过Thread的构造方法去创建线程
package com.lenovo.dishiyizhang;
import java.awt.BorderLayout;
import java.awt.TextArea;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.WindowConstants;
import javax.swing.border.BevelBorder;
public class RunnableDemo extends JFrame implements Runnable {
private JTextArea textArea;// 文本域组件
// 动画显示的文本字符串
private String introduction = "现在大家已经对计算机很熟悉了如今计算机的操作" +
"系统可以同时执行多个任务在听歌的同时能够打字、下载文件在聊天窗口打" +
"字的时候对方同时还能通过视频看到你听到你。这一切都是使用多任务实现" +
"的Java语言使用多线程实现一个程序中的多个任务同时运行。程序员可以在程" +
"序中执行多个线程每一个线程完成一个功能并与其他线程并发执行这种机" +
"制被称为多线程。";
public RunnableDemo() {
// TODO Auto-generated constructor stub
setTitle("多线程简介:");
setBounds(100, 100, 383, 225);
textArea = new JTextArea("\t");
textArea.setBorder(new BevelBorder(BevelBorder.LOWERED));
textArea.setLineWrap(true);
getContentPane().add(textArea, BorderLayout.CENTER);
setVisible(true);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
RunnableDemo runnableDemo =new RunnableDemo();
Thread thread = new Thread(runnableDemo);
thread.start();
}
@Override
public void run() {
// TODO Auto-generated method stub
for (int i = 0; i <=introduction.length()-1; i++) {
try {
introduction.charAt(i);
Thread.sleep(50);
textArea.append(String.valueOf(introduction.charAt(i)));
} catch (InterruptedException e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
}
4、
car = new JLabel();
ImageIcon icon = new ImageIcon(getClass().getResource("icon.jpg"));
car.setIcon(icon);
car.setBounds(0, 0, icon.getIconWidth(),icon.getIconHeight());
setResizable(false);//禁止调整窗体大小
getContentPane().setLayout(null);
5、线程的调度,当某个线程使用Jion()方法加入到另外一个线程时另一个线程会等待该线程执行完毕再继续执行。
6、线程的优先级可以使用setPriority()方法调整若果使用该方法设置优先级不在1-10之内将产生一个IllegalArgumentException的异常。
7、java提供线程的同步机制可以防止资源访问的冲突。同步块(锁定对象)同步方法
8、Swing程序是使用单线程机制进行界面绘制处理的。如果再swing中执行耗时的业务逻辑例如将数据库查询、文件操作在swing线程中执行将会导致程序界面阻塞。
看API: setViewportView public void setViewportView(Component view)创建一个视口(如果有必要)并设置其视图。不直接为 JScrollPane 构造方法提供视图的应用程序应使用此方法指定将显示在滚动窗格中的滚动组件子级。例如: JScrollPane scrollpane = new JScrollPane(); scrollpane.setViewportView(myBigComponentToScroll); 应用程序不应将子级直接添加到滚动窗格
Vector有点类似List、ArrayList用来存储数据用的。 new Vector(1, 1)意思是建立一个Vector容量是1相当于int a[1]只是数据类型不一样。但是如果这个Vector(userOnline)存储满了那么它会自己自己存储长度每次增加1一个存储单位这就是 后面的那个1的含义
为解决在swing中使用单线程机制导致页面卡死的现象我们必须将费时的业务处理代码放在其他线程中执行,这样就不会阻塞SwingUI线程不会使界面死锁。invokeLater方法
转载于:https://blog.51cto.com/7129486/1537194
Java语言的基础知识9相关推荐
- Java语言的基础知识
目录 一. 步入Java编程 1.1 Java的发展史 1.2 Java的基本思路 1.3 Java的工作原理 1.4 搭建Java环境 面试解析与技巧 二. java开发基础 2.1 java语法基 ...
- Java语言的基础知识6
第八章 1.继承不仅拥有父类的变量与方法,还可以为子添加新的成员变量和方法,以增强父类的功能.但是 有时候父类的方法不不完全能适应子类,或子类需要有不同的行为,这种情况下子类可以重写父类. 2.sup ...
- Java语言的基础知识11
第十二章(编程常用类) 1.Date类最常用的构造方法就是默认的无参数的Date()构造方法,它使用系统中当前日期和时间创建并初始化Date类对象. Date now = new Date(); Da ...
- 2,Java语言基础-Java语言基本程序设计知识
Java语言基础 Java语言基本程序设计知识 1,JavaAPI概述 1.1,什么是API API是指应用程序接口( Application Program Interface, API),故名思意 ...
- 黑马程序员 一、java 概述与基础知识
获取更多资源关注Java帮帮IT资源分享网 一.黑马程序员-java 概述与基础知识 1.何为编程? 编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果 的过程. 为了使 ...
- java to go 基础知识与区别入土指南
java to go 基础知识与区别入土指南 文章目录 java to go 基础知识与区别入土指南 @[toc] 基础篇 关于基础类型 关于复合数据类型 关于切片 关于Map 关于sync.map ...
- Java 网络编程基础知识
Java 网络编程基础知识 基础概念 计算机网络的基本概念 网络:多台计算机使用网络设备互联在一起,计算机之间可以进行通信,这样就组成了一个计算机网络. 网络设备:集线器(HUB),路由器,交 ...
- c语言基础知识pdf下载,C语言主基础知识.pdf
C语言主基础知识 泰山学院CSDN 俱乐部 C 语言主要基础内容 1.预处理命令 预处理的概念:在编译之前进行的处理.预处理命令以符号"#"开头. 2 .关于#include 在编 ...
- 2.1JAVA基础复习——JAVA语言的基础组成注释和常量变量
JAVA语言的基础组成有: 1.关键字:被赋予特殊含义的单词. 2.标识符:用来标识的符号. 3.注释:用来注释说明程序的文字. 4.常量和变量:内存存储区域的表示. 5.运算符:程序中用来运算的符号 ...
最新文章
- HTML与XML总结
- 大数据分布式集群搭建(8)
- 求三角形最大面积(DP)
- 优秀大数据GitHub项目一览
- Oracle查询优化-04插入、更新与删除数据
- ML:MLOps系列讲解之《MLOps Stack Canvas堆栈画布》解读
- android 代码签名apk,[Android]混淆代码后生成带签名的apk
- [kafka]kafka集群实践
- nxos启动的初始化和https访问nx-api
- 8902382_52671.jpg
- 透过现象看本质,透析NAC系统几步走(4)
- 默认空间和webapps下项目部署
- 【笔记】Java如何判断是IDE启动还是jar启动
- c++ BYTE相关操作(字符串与BYTE,BYTE转换为8位的数组,int 转换 BYTE)
- 机器学习(3)特征提取2 -- 文本特征提取(包括中文文本特征提取)
- [Excel函数] COUNT函数 | COUNTIF函数 | COUNTIFS函数
- H - Hellcife is on fire Gym - 102448H
- Observability——Wavefront
- 鲲鹏、昇腾、欧拉——计算产业的矩阵已足够宽广
- 首批Android Q版本真机上线,Testin云测助力尝鲜
热门文章
- oracle 11g 逻辑备库,通过Oracle 11g 逻辑standby实现BI的需求
- Java项目:房屋租赁系统设计和实现(java+ssm+mysql+spring+jsp)
- 为什么二级菜单会被挡住_二级建造师为什么这么难考?2021年二建考试也会很难吗?...
- oracle 分组排序 update,oracle分组排序
- mysql 账户管理_如何用MySQL 命令来实现账户管理
- 两条波浪线符号_四年级数学上册第二单元“线的认识”作业单(附带答案)
- 用栈实现形如a+bb+a@的中心对称字符的检验
- 【java】关于面向对象优点的个人理解
- ajax实现自动刷新页面实例
- 使用SQLServer配置管理器配置SQLServer数据库引擎实例,以便侦听特定的固定1433端口。...