import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.io.File;
public class captureScreen{
public captureScreen(String fileName) throws Exception
{
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle screenRectangle = new Rectangle(screenSize);
Robot robot = new Robot();
BufferedImage image = robot.createScreenCapture(screenRectangle);
ImageIO.write(image, "png", new File(fileName));
}
public static void main(String[] args)throws Exception
{
new captureScreen("abc.png");
}
} ......
1.垃圾收集算法的核心思想
Java语言建立了垃圾收集机制,用以跟踪正在使用的对象和发现并回收不再使用(引用)的对象。该机制可以有效防范动态内存分配中可能发生的两个危险:因内存垃圾过多而引发的内存耗尽,以及不恰当的内存释放所造成的内存非法引用。
垃圾收集算法的核心思想是:对虚拟机可用内存空间,即堆空间中的对象进行识别,如果对象正在被引用,那么称其为存活对象,反之,如果对象不再被引用,则为垃圾对象,可以回收其占据的空间,用于再分配。垃圾收集算法的选择和垃圾收集系统参数的合理调节直接影响着系统性能,因此需要开发人员做比较深入的了解。
2.触发主GC(Garbage Collector)的条件
JVM进行次GC的频率很高,但因为这种GC占用时间极短,所以对系统产生的影响不大。更值得关注的是主GC的触发条件,因为它对系统影响很明显。总的来说,有两个条件会触发主GC:
①当应用程序空闲时,即没有应用线程在运行时,GC会被调用。因为GC在优先级最低的线程中进行,所以当应用忙时,GC线程就不会被调用,但以下条件除外。
②Java堆内存不足时,GC会被调用。当应用线程在运行,并在运行过程中创建新对象,若这时内存空间不足,JVM就会强制地调用GC线程, ......
(1) 用extends关键字创建自己的违例类MyException。为这个类写一个构建器,令其采用String参数,并随同String句柄把它保存到对象内。再写一个main()方法,其中令其在try块内掷出MyException类的一个对象。在catch从句内捕获违例,并打印出字串参数。添加一个finally从句,并打印一条消息,证明自己真正到达那里。
(2) 创建一个JavaTest3类,使其可以被克隆。
(3) 创建程序片MyApplet.java,使其在窗体中显示字符串Hello world。
(4) 从Thread继承一个类MyThread,并(过载)覆盖run()方法。在run()内,打印出一条消息,然后调用sleep()。重复三遍这些操作,然后从run()返回。再添加main方法,在其中创建一个MyThread对象,并启动线程。
(5) 有一JavaBean TJavaBean.java如下
package com.ides;
public class TJavaBean{
private String name;
private int age;
private int count; //记录在同一会话中被访问的次数
&nb ......
Java技术路线图
提示:前文对Java技术做了框架性的分析,包括Java SE、Java EE和Java ME,让读者了解了Java由哪些技术组成。为了系统地学习这些技术,本文将制定一套完整的Java技术学习路线。
从前文中我们已经了解到,Java SE中包含了Java的基础技术,Java EE中包含了网络应用开发的各种技术,Java ME中包含了移动设备应用开发的各种技术,且Java SE是Java EE和Java ME的基础,所以对于Java技术的学习,有两条学习路线:
Java SE→Java EE:主要进行网络应用开发,是Java技术学习的一条完整路线,是基于Java EE的企业应用开发,是目前Java应用的主要方向。
Java SE→Java ME:主要进行无线应用开发,该技术路线相对简单一些。
Java SEàJava EE的技术由低到高形成了一个完整的体系,是Java/Java EE工程师成长必备的技术体系,下面我们就根据Java SEàJava EE的技术体系制定一套完整的学习路线。
1、Java EE技术分类
根据Java EE技术的分层,我们可以将Java EE技术分为以下3类。
(1)Web应用技术
JDBC:JDBC(Java DataBase Connectivity)是一个基于标准SQL的数据库访问接口,主要用来连接数据库和直接调用SQL命令执行各种SQL语句和存储过程。 ......
近日,有一个项目需要通过OA系统(Domino平台)向一个MySQL应用插入记录,因为平台是windows平台,所以采用了ODBC连接方式,在OA服务器上安装了MyODBC-3.51.11-1驱动,配置了ODBC驱动数据源之后,插入记录成功,但不论是插入中文内容,还是从MySQL中读取中文内容,都是乱码,在网上查阅了各种资料,初步判断可能是字符集的原因,Domino采用的是gb2312,MySQL采用的是gbk,两种不同字符集导致中文乱码问题,现在来更改两种数据库的字符集是不现实的,只好在其他方面找解决办法。
Domino的ODBC连接方式在connectto的时候是不能指定字符集的。在网上搜索资料之后,发现可以在MYODBC驱动上配置参数,达到给MySQL数据库指定字符集的功能。配置如下:
这里注意,一定要在“系统DSN”中配置,开始我在“用户DSN”中配置无效。
在“Connect Options”选项卡中的“Initial Statement”中输入如下语句:set names gb2312
这条语句就是强制将MySQL的字符集设成gb2312。
至此,乱码问题解决。OK!!! ......
常用mysql命令行命令
1 .mysql的启动与停止
启动MYSQL服务 net start mysql
停止MYSQL服务 net stop mysql
2 . netstat –na | findstr 3306 查看被监听的端口 , findstr用于查找后面的端口是否存在
3 . 在命令行中登陆MYSQL控制台 , 即使用 MYSQL COMMEND LINE TOOL
语法格式 mysql –user=root –password=123456 db_name
或 mysql –u root –p123456 db_name
4 . 进入MYSQL命令行工具后 , 使用status; 或\s 查看运行环境信息
5 . 切换连接数据库的语法 : use new_dbname;
6 . 显示所有数据库 : show databases;
7 . 显示数据库中的所有表 : show tables;
8 . 显示某个表创建时的全部信息 : show create table table_name;
9 . 查看表的具体属性信息及表中各字段的描述
Describe table_name; 缩写形式 : desc table_name;
MySql中的SQL语句
1数据库创建 : Create database db_name;
数据库删除 : Drop database db_name; 删除时可先判断是否存在,写成 : drop database if exits db_name
2 建表 : 创建数据表的语法 : create tab ......