Java编程

马士兵java教程笔记3

带你走进JVM的世界,整合高质量文章以阐述虚拟机的原理及相关技术,让开发者更好地了解Java的底层运行原理以及相应的调优方法。

Java虚拟机规范对这个区域规定了两种异常状况:如果线程请求的栈深度大于虚拟机所允许的深度,将抛出StackOverflowError异常。如果虚拟机扩展时无法申请到足够的内存,就会跑出OutOfMemoryError异常。

《Java就业培训教程》_张孝祥_书内源码_044162009-12-15《Java就业培训教程》 作者:张孝祥 书中源码 《Java就业培训教程》P127源码程序清单:Student.javaclass Person {      public String name;      public int age;   public Person(String name,int age)  {  this.name=name;  this.age=age;   }   pC/C++程序员实战基础。

马士兵java教程笔记3

GridBagLayout 所有Java类的超类 字体类 颜色类 图形类 组件类 标签类 按钮类 文本组件类 文本域类(单行) 文本区类(多行) 列表类 容器类 面板类 小程序类 窗口类 框架类 对话框类 单选按钮与复选按钮类 按钮组合类 菜单组件类 菜单栏类 菜单项类 布局管理器 布局管理器 布局管理器 布局管理器 布局管理器Java程序设计案例教程6.1.1 使用java.awt设计图形用户界面抽象窗口工具包AWT是Sun公司为Java程序 设计者提供的建立图形用户界面GUI的工具集 。AWT可用于Java的Applet和Application程 序中。 它支持的图形用户界面编程功能包括:用 户界面组件、事件处理模型、图形和图像工具 、布局管理器。因此,编写图形用户界面程序 一定要引入java.awt包。Java程序设计案例教程例6-1一个简单的图形用户界面程序import java.awt.*; import java.awt.event.*; import java.util.*; public class myClock extends Frame implements ActionListener{ Label lblTimeDisplay=new Label(“请单击\”显示时间\”按钮”); Button btnDisplayTime = new Button(“显示时间”); myClock(){ //构造方法 super(“一个简单的AWT应用程序”); btnDisplayTime.addActionListener(this); //为组件注册监听器 setLayout(new BorderLayout()); //设置布局管理器 this.add(lblTimeDisplay,BorderLayout.NORTH); //添加组件 this.add(btnDisplayTime,BorderLayout.SOUTH); this.addWindowListener(new WindowAdapter(){ //注册监听器 public void windowClosing(WindowEvent e){ System.exit(0); } }); Java程序设计案例教程 }public void actionPerformed(ActionEvent e){ //按钮事件处理方法 Calendar calTime = Calendar.getInstance(); lblTimeDisplay.setText(“现在时间 “+ calTime.get(Calendar.HOUR_OF_DAY)+ “时” +calTime.get(Calendar.MINUTE)+”分”); } public static void main(String [] args) { Frame frame = new myClock (); //实例化类 frame.setSize(150,80); //设置窗口大小 frame.setLocationRelativeTo(null); //在屏幕中间显示窗口 frame.setVisible(true); //使窗口可见 } }Java程序设计案例教程6.1.1 使用java.awt设计图形用户界面知识点Java是纯面向对象的程序设计语言,因此,不管是控制台 应用程序,还是图形界面的应用程序,都要先定义一个类。 一个应用程序可以有多个类,但只能有一个public类,而且只 能有一个main()方法,这个方法一定要位于这个公共类中。 开发图形用户界面程序的一般步骤如下。 (1) 创建组件(包括容器)对象,设置组件对象的属性。 (2) 如果需要,为组件注册监听器。 (3) 设置容器的布局管理器。 (4) 向容器中添加组件对象(使用容器的add()方法)。 (5) 编写事件处理程序(实现监听器中的方法)。Java程序设计案例教程6.1.2 容器和组件Java的图形用户界面是由组件组成的,例如按钮 (Button)、文本域(TextField)和标签(Label)等。其中 有一类特殊的组件称为容器(Container),例如框架 (Frame,是一个有边框的独立窗口,与Windows窗 口相似)、面板(Panel,是包含在窗口中的一个不带 边框的区域)等。容器是用来盛放其他组件的,可以 通过容器提供的add()方法将组件添加到容器中。对 于小程序(Applet),由于其本身就是一个容器(因为它 是Panel的子类),因此,可以将组件直接添加到小程 序上。也可以先将组件加到其他容器中,然后再将 容器加到小程序中。Java程序设计案例教程6.1.2 容器和组件用框架Frame创建的窗口是一个可独立运行的主 窗口,常用于开发桌面应用程序,用它创建的窗口 是一个包含标题栏、系统菜单栏、最大最小化按钮 以及可选菜单栏的完整窗口。创建一个Frame窗口后 ,通常需要调用setSize()方法来设置窗口的大小,并 调用setVisible()方法来显示窗口。Frame默认的布局 管理器是BorderLayout,默认的添加组件的位置是 BorderLayout.CENTER。 面板Panel不是一个独立的窗口,只是窗口中的一 个区域,因此,面板必须添加到窗体(Frame)中。面 板是一个不可视的容器。Java程序设计案例教程例6-2 创建组件和设置布局管理器import java.awt.*; public class LayoutFrame extends Frame{ LayoutFrame(){ super(“带组件的窗体”); //设置窗体标题栏 setLayout(new BorderLayout()); //设置布局管理器 //添加按钮组件,并设置按钮组件在容器中的位置 add(new Button(“北”), BorderLayout.NORTH); //上 add(new Button(“南”), BorderLayout.SOUTH); //下 add(new Button(“西”), BorderLayout.WEST); //左 add(new Button(“东”), BorderLayout.EAST); //右Java程序设计案例教程//添加标签组件,文本标签中间对齐 add(new Label(“Hello ,World !”,Label.CENTER), BorderLayout.CENTER); } public static void main(String[] args) { Frame frame= new LayoutFrame(); frame.setSize(200,200); //设置窗体 大小 frame.setVisible(true); //显示窗体 } }Java程序设计案例教程6.1.2 容器和组件知识点向容器内添加对象的方法如下: 容器对象.add(组件对象[, 约束条件]) 如:this.add(btnDisplayTime, BorderLayout.SOUTH); BorderLayout类中有5个静态常量:EAST,WEST, SOUTH,NORTH,CENTER,这5个常量用于指定组件在 容器中的位置,分别表示东、西、南、北、中5个区域,这里 的位置与地图坐标系相同,即上北、下南、左西、右东。 由于myClock本身就是一个容器类,因此,如果省略容器 对象,则默认是将组件添加到当前类的实例中,所以上述语 句也可以写成: add(btnDisplayTime,BorderLayout.SOUTH);Java程序设计案例教程6.1.3 标签组件标签(Label)组件用来显示一行静态文本。静态文 本通常是不变的量,主要用于显示提示信息。通过 程序可以改变静态文本的内容,但用户不能改变。 Label组件没有任何特殊的边框和装饰,通常不产生 事件。 1.Label组件构造函数 Label()—创建不含文本标签的标签对象。 Label(String text)—创建含文本标签的标签对象。 Label(String text, int alignment) 创建含文本标签和对齐方式的标签对象。Java程序设计案例教程6.1.3 标签组件2.Label组件方法 getText()—获取标签的文本内容。 setText(String text)—设置标签的文本内容。 3.Label组件实例 Label lblName1 = new Label(“张三”,0); //0—左对齐,1 —中间对齐, 2—右对齐 lblName1.getText(); //获取标签lblName1的文本内容 lblName2.setText(“李六”); //将标签lblName2的内容改为“李六”Java程序设计案例教程6.1.4 文本域组件文本域(TextField)组件可以用来显示一行文本, 它是图形用户界面经常使用的输入组件。当按Enter 键或者Return键时,监听器ActionListener可以通过 actionPerformed()方法获取这个事件。除了注册一个 ActionListener监听器,还可以注册一个TextListener 监听器来接收关于个别击键的通知。 1.TextField组件构造函数TextField()—创建显示内容为“空”的文本域对象。 TextField(int columns)—创建具有指定宽度的文本域对象 TextField(Str。

我们平时使用的乃至商用的大多数Java虚拟机都是Sun公司的HotSpot,大家cmd进入命令行,使用”java -version”命令就可以看到了。如果希望在Java虚拟机规范的基础上更加深入地去理解虚拟机的一些细节是怎么实现的,就可以看一下《HotSpot实战》一书,作者是陈涛。不过由于HotSpot的源码都是C/C++写的,所以要求读者有非常好的C/C++基础,如果对这两门语言不是很熟悉的朋友,看这本书可能对你帮助不是很大。

上期回顾上期我们重点介绍了Java工程师进阶所需要掌握的一些技术内容。特别对于即将参加校招的同学来说,最重要的也是这部分内容,你需要了解JVM虚拟机原理,Java并发原理,并且熟悉JDK的部分源码,了解这些API的底层实现。

Java 是一门半编译型的语言,Java 源码先被编译为字节码文件(中间文件),然后再由虚拟机(JVM)解释执行,这肯定比直接编译成二进制文件的运行速度要慢一些。

Similar Posts

发表评论

邮箱地址不会被公开。 必填项已用*标注