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方法

Java语言的基础知识9

时间: 2024-08-02 11:02:36

Java语言的基础知识9的相关文章

Java语言的基础知识

第三章 1.在java源文件编辑器中,选择某个成员变量,然后按住shift+alt+j,Eclipse会自动添加JavaDoc文档注释结构,如果选择的是方法,还会自动添加参数名称. 2.Java语言规定标示符是由任意的字母.下划线.美元符号和数字组成,并且第一个字符不能使数字,标示符不能使java中的保留关键字. 3.在Java语言中允许使用汉字或其他语言文字作为变量名,如int 年龄 =21;在程序运行时不会报错,但建议尽量不要使用这些语言作为变量. 4.java用关键字final来声明常量,

Java语言的基础知识4

第五章(数组) 1.在Java中可以将数组看做是一个对象虽然基本数据类型不是对象但有基本数据类型组成的数组是对象. 2.对于二维数组求第二维就用array[0].length, array.length就是默认的是第一维的长度. 3.foreach并不是一个新的语法它是for的循环的格式化主要执行遍历功能的循环,example: int arry ={1,2,3,4,5}; for(int i :array){ system.out.println(): } 4.数组元素定义完以后可通过Arra

Java语言的基础知识12

第十四章(使用集合类保存对象) 1.java中得集合对象就像是一个容器,它用来存放Java类的对象.Java中的集合类有些方便存入和取出,有些则方便查找.集合类和数组的区别是,数组的长度是固定的,集合的长度是可变的,数组用来存放基本类型,集合用来存放对象的引用.常用的集合类有List集合,Set集合,和Map集合. 2.List集合包括List接口以及List接口的所有实现类.List集合中的元素许重复,个元素的顺序就是对象插入的顺序.类似java中的数组.List类继承了Collection接

Java语言的基础知识10

第十二章(GUI事件) 1.GUI事件的处理机制是建立交互式应用程序的关键技术,其中事件是用在程序界面上的各种操作. 2.写程序的时候对于swing的一些空间譬如jprogressbar ,jtextfield等空间在全局中声明以后,用的时候一定要new 一下,自己经常忘记(由于对java理解不深) private  JTextField textField2; textField2 = new JTextField(); 3.事件在java语言中也是一种对象 4.监听器接受到事件之后,将委托指

Java语言的基础知识3

第四章 1.sum +=x++;的语句等价于sum=sum+x;和x=x+1;两条语句 2.do....while循环语句与while循环语句类似.他们之间的差别是while语句为先判断条件是否成立再执行循环体,而do...while循环语句是先执行一次循环体,在判断条件是否成立.也就是说do....while循环语句至少执行一次循环体. 3.在一个循环语句中又包含另外一个完整的循环语句,称为嵌套循环,笔者不建议使用超过3层的嵌套循环,因为这样会使程序更加难以阅读. 4.乘法口诀中用到的制表符"

Java语言的基础知识6

第八章 1.继承不仅拥有父类的变量与方法,还可以为子添加新的成员变量和方法,以增强父类的功能.但是 有时候父类的方法不不完全能适应子类,或子类需要有不同的行为,这种情况下子类可以重写父类. 2.super不能写在静态static 方法中. 3.java 使用instance of 操作符来完成对象类型的判断,使用instance of 操作符看可以判断对象是不是指定 的类或子类的实例对象,或者接口的实现类对象 obj instanceof class 4.多态是指程序中同一操作在不同环境中有不同

Java语言的基础知识13

第十六章(数据的输入输出处理) 1.在变量.数组.对象中存储数据是暂时的,程序运行结束后他们就会消失.为了永久地保存程序创建的数据,可以将其保存在磁盘文件中,这样以后可以在其他程序中使用这些数据. 2.可以使用文件输入/输出流与指定的文件建立关联,然后将需要的数据输出到文件中去. 3.FileInputStream文件字节输入流,可以从指定的路径的文件中读取字节数据,该类继承自InputStream类并实现类读取输入流的各种方法. 4.缓存流可以说是I/O的一种性能优化BufferedInput

Java语言的基础知识8

第十章 1.标签有JLabel类定义,它的父类为JComponent.标签可以显示一行只读文本.一个图像但不能产生任何事件.JLabel有多种构造方法,example: JLabel().JLable(Icon icon).JLable(Icon icon,int aligment).JLable(String text,int aligment).JLale(String text,Icon icon,int aligment) 2. package com.lenovo.dishizhang

Java语言的基础知识7

第9章 1.在内部类中可以随意使用外部类的成员方法以及成员变量,哪怕这些类成员被修饰为private,内部类的实例 一定要绑定在外部类的实例上,如果从外部类中初始化一个内部类对象,那么内部类对象就会绑定在 外部类对象上. 2.内部类可以访问它的外部类的成员,但内部类的成员只有在内部类的范围内是可知的,不能被外部类使用 3.用throws向上抛出异常,抛给调用者去处理这些异常. 第10章 1.JFrame窗体类包含一个容器,所有放置在窗体上的组件实际上都是放置在这个容器类中的.这个容器 作为JFr