Java虚拟机的作用:负责执行指令,还要管理数据,内存,存储器
Java运行机制:将java源程序编译成字节码文件,然后由java虚拟机来执行这个字节码文件
JDK的配置:
Path:指定Java的类路径
Classpath: JDK命令搜索路径
Java API各种包作用:
Java.util 是JAVA的utility工具包
java.lang 是JAVA的language核心语言包
java.awt 是JAVA的abstract window toolkit,抽象窗口工具包
java.applet 是创建APPLET的必须包
java.NET 是JAVA有关网络操作的包
java.io 是JAVA的输入输出流的包
java.sql 是JAVA的数据库操作包
javax.swing 是新的界面包
javax 开头的是扩展包
Java程序的开发过程:编辑源码、编译、执行全过程,会用到的编译器、解释器程序是什么?
用到的JDK编译器:javac ; 解释器程序是:jdk或jre目录下bin目录中的java.exe文件
数据类型的分类以及各种数据类型占用长度(常量使用 final定义):
Java标识符的命名规则
只能用4种:字符 美元符($) 下划线(_) 数字 , 但是数字不能放在第一位 ;
字符类型 与 整数之间的关系?
字符型数据在做数字运算时实际上是对字符本身对应的ASCII码进行相应的数值运算。
字符与字符串的区别:
Ascll:ASCII 只有128个字符,表示英文字母的大小写、数字和一些符号
UniCode:Unicode就是将一些语言(汉字等)统一到一套编码格式中,通常两个字节表示一个字符,而ASCII是一个字节表示一个字符
类与对象的区别:
(1)类是一类事务,是根据一般性抽象出来的;例如:人; 交通工具。
(2)对象,是类的一个特例、实例。例如:小轿车、卡车、公共汽车等。对象通过new关键字,完成实例化(例如: Student stu = new Student() ; stu 就是Student类的一个实例)。
(3)new关键字,其实本质就是申请分配内存,使Student类中的变量、方法都对应分配的内存单元。
类的成员方法定义、方法返回值、如何调用?
方法定义和方法返回值:
方法调用的过程,其实就是将实参赋值给形参,形参进入方法体内参与运算,最后返回结果的过程。
同一个类,可以创建多个对象,这多个对象之间是各自独立的!
方法重载:
是指在一个类中,有多个同名的方法,但它们的参数必须不同!参数不同可以是:参数个数不同;或者个数相同时,参数类型不同。
方法重写:
当一个子类继承一个父类的时候,可以重写覆盖原来父类里面的方法,当然这个方法和父类的方法名称一定要相同,参数也要相同
Super:代表了父类对象,因此可以实现对父类成员变量、方法的访问
this:表示当前对象,this只能用于构造方法和实例方法中!不能用于类方法(静态方法 - 有static限定词)。
例如:
当this出现在构造方法中时,this代表的是,用此构造方法创建出来的那个对象;
当this出现在实例方法中时,this代表的是,调用此方法的那个对象;
一维数组的定义,如何去定义?有几种方法?
一般形式: 数据类型 数组名[ ] = new 数据类型[数组容量];
Int scores[ ] = new int[10];
int[ ] scores = new int[10];
如何获取一维数组的长度?
数组名.length
如何获取二维数组中的行数?
数组名.length
如何获取二维数组中的列数?
数组名[0].length
如何获取二维数组的长度?
数组名.length * 数组名[0].length
CharAT(下标从0开始)
怎么把字符串转成整数?
Int x = Integer.parseInt(str);
怎么把字符串转成double型?
怎么把数值转成字符串?
String s2 = String.valueOf(3000);
字符串怎么转为字节数组?
byte b[ ] = “abcdefg”.getBytes();
(输出为ASCLL码)
Pattern 和 Matcher 用法:
Pattern :用 compile 方法构造正则表达式模式对象
Matcher:Pattern类的Matcher方法构造匹配器对象
awt 组件与 swing 组件的区别?二者关系?常用的是哪个?
swing 组件是 awt 的子类,swing有更强的实用性。
JFrame是顶层容器、 JPanel是中间容器、JButton等等其他的称为组件;
JFrame,JPanel,JButton这3者是哪个包中的?它们之间是谁套着谁? Frame、 Panel、 Button 是哪个包的?
JFrame JPanel JButton三者属于swing包中
JFrame可以添加中间容器和组件,Panel可以添加组件
Frame、 Panel、 Button属于awt 包
界面布局类有哪些?各种布局的表现形式是怎样的
了解五种布局方式:FlowLayout , BorderLayout , CardLayout , GridLayout , GridBagLayout。
FlowLayout 顺序放置 ---- 从左到右、 从上到下, 居中setLayout( new FlowLayout() );
BorderLayout 整个窗体,分为5个区域—North、South、West、East、 Center
CardLayout 一个窗体中,可以包括多个卡片,一个时刻,只能一个卡片可见。
GridLayout窗体上,可设置x行y列的网格布局。每个格子一样大小。组件一行一行从左到右放到格子中。
GridBagLayout 对象维持一个动态的矩形单元网格,每个组件占用一个或多个这样的单元,该单元被称为显示区域。
菜单中相关的几个类:JMenBar、JMenu、JMenuItem,它们之间谁包含谁?
JMenu — 菜单,一个容器,里面可以带多个 JMenuItem; JMenu对象,需要加入到JMenuBar 中。
JMenuItem — 菜单项,一项项加入到 JMenu对象中去。
对话框的几种不同显示形式,分别对应不同的方法。
模态框(Modal Dialog):此对话框激活时,其他窗体都不能操作。
非模态框(Non-modal Dialog):可在此对话框窗体与其他窗体之间,随意切换。
图形编程中坐标系是怎样的?
Java中图形坐标系:坐标原点在左上角,单位:像素。
绘图方法是paint() , 只能在paint()方法中绘图。
内部类、 匿名类是做什么的? 怎么来创建并应用它们?
内部类(Inner Class):在一个类的类体中定义的类。
内部类的一些特性:
(1)内部类对象,可以访问外部类的成员变量和方法,包括私有的成员;
(2)实现事件监听器时,一般都采用内部类、匿名类充当监视器类。
什么时候使用匿名类?
如果一个内部类只被使用一次,且它还需继承一个父类或实现一个接口,可以使用匿名类;
匿名类的特点:类没有名字,也就没有构造方法。只能显式地调用一个父类的无参构造方法(或new xxxListener接口)、并重写父类(接口)方法。
Java中异常处理相关的几个关键字:try、catch、finally,throws,throw它们是怎么使用的?用在哪里?
定义方法时,可以使用 throws 关键字抛出异常
方法体内使用 throw 抛出异常
使用 try 执行一段代码,当出现异常后,停止后续代码的执行,跳至 catch 语句块
使用 catch 来捕获指定的异常,并进行处理
finally 语句块表示的语义是在 try、catch 语句块执行结束后,最后一定会被执行
线程的生命周期,5种状态:创建、就绪、运行、阻塞、死亡
创建线程: 通过 Runnable接口:
何谓输入?何谓输出?
以当前程序为中心,要读入到程序内存中的,称为 输入流;
要从程序内存中写出去的,称为输出流;
网络通信中,以当前机器(程序)为中心,进入的信息,称为输入流;要发出去的信息,称为输出流。
File类的常用方法、它既可以代表文件,也可以代表目录,如何创建文件?如何创建目录?
创建File类的对象— 使用File类的几种构造方法
例1: File f1 = new File(“d:\abc”); // f1 代表目录 d:\abc
例2: File f2 = new File(“d:\abc\1.txt”); // f2 代表文件
例3: File f3 = new File(“d:\abc”, “1.txt”); // 路径 和 文件名 分开
例4: File f4 = new File(f1, “1.txt”); // 路径用一个File对象表示
字节流 对应的2个类分别是什么?
FileInputStream ,FileOutputStream
字符流 对应的2个类分别是什么?
FileReader FileWriter
数据输入、输出流,提供了readUTF 和 writeUTF 方法,可用于发送和接收消息。
对象流,可以将对象序列化为文件 — 要求类实现哪个接口? Serializable接口
IPv4 的IP地址都是32位地址
IPv6 的IP地址是128位无符号整数。
IPv6出现解决的问题: IPv4地址不够用
什么是套接字编程?包括什么?
TCP/IP通信协议中,IP地址+端口号,就是套接字(Socket)。
TCP与UDP协议区别是什么?
TCP:提供的是面向连接、可靠的数据传输。
UDP:提供的是无连接的、不可靠的数据传输
JDBC API是什么?有什么作用?
API (应用程序接口,Application Program Interface)。
作用:使我们能够用纯Java来编写数据库应用程序。
如何利用JDBC API连接数据库,实现增、删、改、查等任务?
一般步骤:
(a)加载和注册驱动程序
加载驱动程序 —
需要将MySQL的mysql-connector-java-5.1.47.jar 加入项目
Class.forName("com.mysql.jdbc.Driver");
(b)连接数据库
// 连接数据库
Connection conn = DriverManager.getConnection(
"jdbc:mysql://127.0.0.1:3306/javadb", "root", "123456");
(c)向数据库发送SQL语句并处理结果
// statement用来执行SQL语句
Statement statement = conn.createStatement();
//执行语句
statement.executeUpdate(sql);
//关闭数据库的连接
conn.close();
简单的SQL语句及应用。(增删改查)
(执行时,把sql语句放入上面步骤c的 //执行语句 中的sql位置即可)
查看表中所有信息(按表内列的顺序操作,下同)
String sql = "select * from teacher";
插入数据
String sql = "insert into teacher values('20051102001', '张老师','13802287655', 35)";
更新(修改)数据
String sql = "update teacher set age=38 where id='20051102001' ";
删除数据
String sql = "delete from teacher where id='20051102001' ";