数据库入门MySql
数据库介绍
什么是数据库?就是一个文件系统,通过标准SQL语言操作文件系统中数据---- 用来存放软件系统的数据
什么是关系化数据库?保存关系数据模型
Oracle 甲骨文公司,专门数据库厂商收购BEA 、SUN、MySQL ------- 收费大型数据库,用于任何系统任何平台
MySQL 早期开源免费数据库产品,LAMP组合Linux + Apache + MySQL + PHP 完全开源免费,自从mysql被oracle收购后,从6.0开始出现收费版本
DB2 IBM数据库产品大型收费数据库websphere服务器一起使用
SYBASE 中等规模数据库收费PowerDesigner 数据库建模工具
SQL Server 微软公司数据库产品收费中等规模数据库,操作系统要求是windows 结合.net 一起使用
Java开发者主要使用MySQL 、Oracle、DB2 三种数据库
Mysql安装与配置
卸载
在mysql安装目录my.ini
datadir="C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server
5.5/Data/"
1) 在控制面板中卸载MySQL
2) 删除mysql 安装目录
3) 删除MySQL数据文件目录
2、安装
选择自定义安装
MySQL Server 默认位置c:\program files\mysql目录
Server Data File 数据文件C:\Documents and Settings\All Users\Application Data\MySQL 目录
安装后进行mysql配置
1) 配置mysql 默认字符集
默认latin1 等价于ISO-8859-1 改为utf8
2) Include Bin Directory in Window Path 将mysql/bin 目录配置环境变量path ---- 勾选
3) 输入超级管理root 密码
测试mysql是否安装成功启动cmd窗口输入mysql -u root -p 回车输入密码root ==== 出现mysql> 安装成功
3、重置root密码
1) 停止mysql服务器运行输入services.msc 停止mysql服务
2) 在cmd下输入mysqld --skip-grant-tables 启动服务器光标不动(不要关闭该窗口)
3) 新打开cmd 输入mysql -u root -p 不需要密码
use mysql;
update user set password=password('abc') WHERE User='root';
4) 关闭两个cmd窗口在任务管理器结束mysqld 进程
5) 在服务管理页面重启mysql 服务
密码修改完成
SQL语言
Sql分类
●DDL (数据定义问题)
?数据定义语言- Data Definition Language
?用来定义数据库的对象,如数据表、视图、索引等
●DML (数据操纵问题)
?数据处理语言- Data Manipulation Language
?在数据库表中更新,增加和删除记录
?如update,insert,delete
●DCL (数据控制问题)
?数据控制语言–Data Control Language
?指用于设置用户权限和控制事务语句
?如grant,revoke,if…else,while,begin transaction
●DQL (数据查询问题)
?数据查询语言–Data Query Language
?Select
数据库操作语句
1、创建数据库会为每个软件系统创建单独数据库
语法:create database 数据库名称; (创建数据库采用数据库服务器默认字符集)
复杂写法create database 数据库名称character set 字符集collate 比较规则;
创建一个名称为mydb1的数据库。create database mydb1;
创建一个使用utf8字符集的mydb2数据库。create database mydb2 character set utf8;
创建一个使用utf8字符集,并带校对规则的mydb3数据库。create database mydb3 character set utf8 collate utf8_bin;
补充:每次创建一个数据库在数据存放目录中生成一个文件夹,每个文件夹中存在db.opt 存放默认字符集和校对规则
datadir="C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.5/Data/"
2、查询数据库
show databases; ----- 查看所有数据库
show create database 数据库名; ------ 查看数据编码集
3、删除数据库
语法:drop database 数据库名称;
查看当前数据库服务器中的所有数据库show databases;
查看前面创建的mydb2数据库的定义信息show create database mydb2;
删除前面创建的mydb1数据库drop database mydb1;
4、修改数据库编码集
语法:alter database 数据库名称character set 字符集collate 比较规则;
修改mydb2字符集为gbk; alter database mydb2 character set gbk;
切换当前使用数据库:use 数据库名称
查看当前正在使用数据库: select database();
数据表结构SQL语句
1、数据表的创建
语法:create table 表名(列名类型(长度),列名类型(长度)... );
一个数据表可以存在很多列,每列具有类型和长度
* 创建表时没有指定字符集,将采用数据库默认字符集
* 创建表之前必须使用use db 语法指定操作数据库
创建day12 数据库create database day12;
切换到day12 数据库use day12;
例如:
User {
id int
name string
password string
birthday date
}
一个java类对应数据库中一张数据表,一个java对象对应数据表中一条数据记录
MySQL 常用数据类型
java 中String char ----- mysql 中字符串型char varchar
* char是定长varchar是变长
例如:char(8) 保存lisi,因为lisi 只有四个字符,所有会补充四个空格,成为8个字符存入char(8)中,如果有varchar(8) 自动根据存放内容改变长度
java 中byte short int long float double ----- mysql 中数值类型TINYINT 、SMALLINT、INT、BIGINT、FLOA T、DOUBLE
java 中boolean ---- mysql 逻辑性bit 存放一位数值0 或者1
java 中Date ----- mysql 日期类型date (只有日期) time(只有时间) datetime(日期时间都有) timestamp(日期时间都有)
* datetime和timestamp 表现形式上完全相同,区别就在于timestamp 在数据库可以自定更新(当前时间)
java中大数据类型inputStream 二进制文件Reader 文本文件------- mysql 大数据类型blob(存放大二进制数据) text(存放大的文本文件)
* tinyblob tinytext 255字节blob text 64KB mediumblob mediumtext 16MB longblob longtext 4GB
例如:
User {
id int ------ mysql int
name string ------ mysql varchar
password string ----- mysql varchar
birthday date ----- mysql date
}
员工表建表语句
create table employee (
id int,
name varchar(20),
gender varchar(20),
birthday date,
entry_date date,
job varchar(30),
salary double,
resume longtext
);
查看表结构desc 表名;
*** 创建数据表时,只有字符串类型必须写长度,而其他类型都有默认长度
2、单表创建时约束
约束用来保证数据有效性和完整性
主键约束primary key : 信息记录某个字段可以唯一区分其他信息记录,这个字段就可以是主键(唯一非空)
唯一约束unique : 该字段的值不允许重复
* 一张表中可以有很多个唯一约束,只能有一个(两个)作为主键约束
非空约束not null :该字段的值不能为空
create table employee2 (
id int primary key auto_increment,
name varchar(20) unique not null,
gender varchar(20) not null,
birthday date not null,
entry_date date not null,
job varchar(30) not null,
salary double not null,
resume longtext
);
* 如果主键约束类型为数值型int bigint ,添加auto_increment 自动增长
3、数据表结构修改
1) 增加列语法: alter table 表名add 列名类型(长度) 约束;
2) 修改现有列类型、长度和约束语法:alter table 表名modify 列名类型(长度) 约束;
3) 修改现有列名称语法:alter table 表名change 旧列名新列名类型(长度) 约束;
4) 删除现有列语法:alter table 表名drop 列名;
5) 修改表名rename table 旧表名to 新表名;
* 修改表的字符集:alter table student character set utf8;
在上面员工表的基本上增加一个image列。---- alter table employee add image varchar(100) ; 修改job列,使其长度为60。----alter table employee modify job varchar(60) not null;
删除gender列。----alter table employee drop gender ;
表名改为user。----rename table employee to user;
修改表的字符集为utf8 ---- alter table user character set utf8;
列名name修改为username ----- alter table user change name username varchar(20) unique not null;
查看当前数据库内所有表:show tables
查看当前数据表的详细信息:show create table user;
4、数据表删除
语法:drop table 表名;
5、查看数据表结构
desc 表名; 查看表结构
show tables ; 查看当前库内所有表名
show create table 表名; 查看建表语句和字符集
数据表中数据记录的增删改查操作
1、向数据表插入记录
语法:insert into 表名(列名,列名,列名...) values(值,值,值...); 为数据表的每列进行赋值
注意事项
1) 插入值类型必须和列类型匹配
2) 值长度不能超过列定义长度
3) 值的顺序和列顺序对应
4) 字符串和日期型值必须写单引号
5) 插入空值可以写null
新建employee表,插入三个员工信息
insert into employee(id,name,gender,birthday,entry_date,job,salary,resume) values(1,'zhangsan','male','1990-10-10','2010-01-01','sales',4000,'good boy !');
语法2: 省略所有列名,但是后面值必须要和表中所有列进行匹配,按照表中列顺序
insert into employee values(2,'lisi','male','1988-10-01','2008-08-17','hr',3500,'good hr !');
语法3:省略可以为空,有默认值部分列名,后面值要和前面列进行匹配
insert into employee(id,name,job,salary) values(3,'wangwu','boss',20000);
* 在插入记录后,通过select * from employee; 查看所有员工信息
插入一条中文记录
insert into employee(id,name,job,salary) values(4,'小明','清洁员',1500);
出错了:
ERROR 1366 (HY000): Incorrect string value: '\xC3\xF7' for column 'name' at row 1 ;
错误原因:mysql client 采用默认字符集编码gbk
查看系统所有字符集:show variables like 'character%';
解决办法:修改客户端字符集为gbk
MYSQL中共有6个地方字符集:client connetion result 和客户端相关、database server
system 和服务器端相关
第一种:当前窗口临时修改set names gbk ;
* 只对当前窗口有效,关闭后就会失效
第二种:配置mysql/my.ini 文件
[mysql] 客户端配置
[mysqld] 服务器端配置
修改客户端字符集[mysql] 后字符集default-character-set=gbk
使用mysql -u root -p 密码连入数据库后,如果进行数据库操作,直接操作,如果要进行数据表结构和数据记录操作,必须先切换到操作的数据库use db;
2、数据记录更改操作
语法: update 表名set 列名=值,列名=值.... where条件语句;
* 如果没有where条件语句,默认修改所有行数据
将所有员工薪水修改为5000元。----- update employee set salary = 5000;
将姓名为’zhangsan’的员工薪水修改为3000元。------- update employee set salary = 3000 where name='zhangsan' ;
将姓名为’lisi’的员工薪水修改为4000元,job改为ccc。------- update employee set salary=4000, job='ccc' where name='lisi';
将wangwu的薪水在原有基础上增加1000元。------------ update employee set salary = salary+1000 where name ='wangwu';
3、数据记录的删除操作
语法:delete from 表名where条件语句;
* 如果没有where语句,将删除表中所有记录
如果要删除表中所有数据记录,使用truncate table 表名; 等价于delete from 表名;
试题:如果使用delete删除表中所有记录和使用truncate table删除表中所有记录有何不同?
truncate 删除数据,过程先将整个表删除,再重新创建
delete 删除数据,逐行删除记录
* truncate 效率要好于delete
truncate 属于DDL ,delete 属于DML ======== 事务管理只能对DML 有效,被事务管理SQL语句可以回滚到SQL执行前状态
删除表中名称为’zhangsan’的记录。------ delete from employee where name='zhangsan';
删除表中所有记录。----- delete from employee; (可以事务回滚)
使用truncate删除表中记录。---- truncate table employee;
数据表记录的查询
语法一:select [distinct] * | 列名,列名... from 表名;
select * from 表名; 查询该表中所有列信息
select 列名,列名... from 表名; 查询表中指定列的信息
distinct 用于排重
create table exam(
id int primary key auto_increment,
name varchar(20) not null,
chinese double,
math double,
english double
);
insert into exam values(null,'关羽',85,76,70);
insert into exam values(null,'张飞',70,75,70);
insert into exam values(null,'赵云',90,65,95);
查询表中所有学生的信息。--------- select * from exam;
查询表中所有学生的姓名和对应的英语成绩。----- select name,english from exam;
过滤表中重复数据(查询英语成绩,排除完全相同重复数据) ---- select distinct english from exam;
语法二:select 表达式(列名执行运算) from 表名;
select 列名as 别名from 表名;
在所有学生分数上加10分特长分。---- select name,chinese+10,math+10,english+10 from exam;
统计每个学生的总分。------- select name,chinese+math+english from exam;
使用别名表示学生分数。----- select name,chinese+math+english as 总分from exam;
*** 在对列起别名时,as可以省略select name,chinese+math+english as 总分from exam; ------ select name,chinese+math+english 总分from exam;
select name,math from exam; 查询name和math两列的值
select name math from exam; 查询name列值,起别名math
语法三: select 列名from 表名where条件语句
查询姓名为关羽的学生成绩-------select * from exam where name='关羽';
查询英语成绩大于90分的同学----- select * from exam where english > 90;
查询总分大于200分的所有同学----- select * from exam where chinese+math+english > 200;
运算符
1) 相等= 不等<>
2) between ...and... 在两者之间取值between 70 and 80 等价于>=70 <=80 ----- 注意前面那个数要比后面那个数要小
3) in(值,值,值) 在指定值中任取一个in(70,80,90) 值可以是70、80或者90
4) like '模糊查询pattern' 进行模糊查询,表达式有两个占位符% 任意字符串_ 任意单个字符例如:name like '张%' 所有姓张学员
name like '张_' 所有姓张名字为两个字学员
5) is null 判断该列值为空
6) and 逻辑与or 逻辑或not 逻辑非
查询英语分数在90-100之间的同学。-------- select * from exam where english>=90 and english <= 100; select * from exam where english between 90 and 100;
查询数学分数为65,75,85的同学。---- select * from exam where math in(65,75,85);
查询所有姓赵的学生成绩。---- select * from exam where name like '赵%';
查询英语分>80,语文分>80的同学。---- select * from exam where english > 80 and chinese > 80;
insert into exam values(null,'刘备',null,55,38);
查询语文没有成绩学员select * from exam where chinese is null;
查询语文有成绩学员select * from exam where chinese is not null;
语法四:select * from 表名order by 列名asc|desc ; ---- asc升序desc降序
对数学成绩排序后输出。----------- select * from exam order by math; 默认asc升序
对总分排序按从高到低(降序)的顺序输出------------ select * from exam order by math+chinese+english desc;
对学生成绩按照英语进行降序排序,英语相同学员按照数学降序------------- select * from exam order by english desc,math desc;
聚集函数指SQL语句中内置函数---------- 分组函数(用于统计)
1) count 统计查询结果记录条数select count(*)|count(列名) from 表名;
统计一个班级共有多少学生?------------ select count(*) from exam;
统计英语成绩大于90的学生有多少个?------- select count(*) from exam where english > 90; 统计总分大于220的人数有多少?--------select count(*) from exam where chinese+math+english > 220;
2) sum 统计某一列数据的和select sum(列名) from 表名;
统计一个班级数学总成绩?----- select sum(math) from exam;
统计一个班级语文、英语、数学各科的总成绩---- select sum(chinese),sum(math),sum(english) from exam;
统计一个班级语文、英语、数学的成绩总和select sum(chinese+math+english) from exam; select sum(chinese)+sum(math)+sum(english) from exam;
**** 刘备语文null ,null进行所有运算结果都是null
select sum(chinese)+sum(math)+sum(english) from exam; 含有刘备英语和数学成绩
select sum(chinese+math+english) from exam; 不含刘备英语和数学成绩
* 使用ifnull函数处理null情况
select sum(ifnull(chinese,0)+ifnull(math,0)+ifnull(english,0)) from exam; 含有刘备英语和数学成绩
统计一个班级语文成绩平均分------ select sum(chinese)/count(*) from exam;
3) avg 统计某一列平均值select avg(列名) from 表名;
求一个班级数学平均分?---- select avg(math) from exam;
求一个班级总分平均分?---- select avg(ifnull(chinese,0)+ifnull(math,0)+ifnull(english,0)) from exam;
4) max 统计一列最大值min 统计一列最小值
求班级最高分和最低分(数值范围在统计中特别有用)select max(chinese+math+english) ,min(ifnull(chinese,0)+ifnull(math,0)+ifnull(english,0)) from exam;
语法五:select 分组函数from exam group by 列名; 按照某列进行分组统计
分组操作,就是具有相同数据记录分到一组中,便于统计
create table orders(
id int,
product varchar(20),
price float
);
insert into orders(id,product,price) values(1,'电视',900);
insert into orders(id,product,price) values(2,'洗衣机',100);
insert into orders(id,product,price) values(3,'洗衣粉',90);
insert into orders(id,product,price) values(4,'桔子',9);
insert into orders(id,product,price) values(5,'洗衣粉',90);
练习:对订单表中商品归类后,显示每一类商品的总价---- 需要按照商品名称进行分组select product,sum(price) from orders group by product;
在group by 语句后面添加having 条件语句---- 对分组查询结果进行过滤
练习:查询购买了几类商品,并且每类总价大于100的商品
select product,sum(price) from orders group by product having sum(price) > 100;
试题:where 和having 条件语句的区别?
where 是在分组前进行条件过滤,having 是在分组后进行条件过滤
【黑马程序员】Java基础总结黑马程序员的javaEE课程主要分为2个部分:java基础+java就业。今天就简单的给大家总结一下咱们java基础的知识。 注:Java采用Unicode符号集,每个字符占2个字节,无论英文还是中文还是其他字符。标识符 为变量、类或方法起的名称 以字母,下划线、或者$符号开头 由字母、数字、下划线或者$符号开头 区分大小写,没有长度限制,不能使用关键字 尽量取得容易辨识,见名知意 如:identifier、userName、user_Name、_sys_varl、$change 基本数据类型 Java定义了8中基本数据类型 [AppleScript] 纯文本查看复制代码 ? 1 2 3 4 5 6 7/** * @author 传智播客 */ 布尔值----boolean(只有true和false两种类型) 字符-------char ( 16 位的Unicode字符用单引号( '' )标注;'a'表示字母a '\t' 表示制表符 '\u????'中?用确切的代替申明并且初始化: char c = 'A' 申明变量 char ch1,ch2) 整数--------byte (8位) short(16) int(32) long(64)【以0开头表示八进制;以0x开始表示16进制】 浮点型-----float double 变量 必须在类的内部【可以在方法外也可以在方法类】 在方法类定义的变量叫做局部变量,需要显示的初始化
成员变量和类变量【对象】自动初始化【数字初始化为0,对象初始化为null】常量 在程序运行中,其值保持不变的量 不同数据类型间的相互转换【封装Wrapper类】 Java中类的定义: [AppleScript] 纯文本查看复制代码 ? 1 2 3 4 5 6 7 8/** * @author 传智播客*/ <修饰符> Class <类名>{ <属性申明>; <构造器申明>; <方法申明>; } 成员变量申明:[AppleScript] 纯文本查看复制代码 ? 1<修饰符> <类型> <名称>;修饰符: [AppleScript] 纯文本查看复制代码 ? 1 2 3 4 5/** * @author 传智播客 */ final:修饰常量,常量的值不能被修改【例如 final int CONSTANT = 50;】static:申明静态变量[类变量] static int nCount; 方法的申明:[AppleScript] 纯文本查看复制代码? 1 2/** * @author 传智播客
传智播客-Java基础知识测试-初测(带答案)
答题格式: 1 - 30题为单选题, 31 - 40为多选题. 新建一个txt文件, 答案写在这个文件中. 答案必须保存为txt格式的文件。 答题的时候,可以在EditPlus上答题,会自动显示题目序号 文件名改为自己的名字, 每题一行. 多选题按abcd的顺序填答案, 比如某一题的答案acd, 就必须是acd, 不能是adc等等. 不能有空行, 不能有空格,不能有题目序号,一定不要某一题不会就空在那, 会导致后面的答案全都识别错了! 填完答案数一下, 不要填挪了!!! 共40道选择题,每题2.5分。多选题有错则全错,全对才满分.
单选题: 1. 下列哪个声明是错误的?() A. int i=10; B. byte b=127; C. float f=1.1; //1.1f D. double d=34.4; 2. 下面哪个不是java中的关键字?() A. public B. true C. class D. main 3. 下面哪个语句不会产生编译错误?() A. float a =2.0; //2.0f B. byte b =25; C. char c =”a”; D. boolean d=0; 4. 下面程序哪个语句是正确的()
A. byte a=0,b=3; byte c =a+b; B. short s =23; s=s+12; C. float f = 23+23.23; D. short s=23; s+=12; 5. byte类型的大小是() A. -228 ~128 B. -255 ~ 256 C. -128 ~ 127 D. -255 ~ 255 6. 下面程序执行的结果是?() int i = 100; while(true) { If ( i++ > 100 ) break; System.out.println(i); } A. 100 B. 101
第章开发入门 一、填空题、、、、、、、、二、选择题、、、、、三、简答题、面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等. 、(,运行时环境),它相当于操作系统部分,提供了程序运行时所需要地基本条件和许多基础类,例如,类、控件类、网络类等. 是提供给普通用户使用地,如果你只想运行别人开发好地程序,那么,你地计算机上必须且只需安装. (,开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关地工具,是提供给开发人员使用地.初学者学习和使用语言时,首先必须下载和安装. 中已经包含了部分,初学者安装后不必再去下载和安装了. 四、编程题文档收集自网络,仅用于个人学习 { ([] ) { ("这是第一个程序!"); } }文档收集自网络,仅用于个人学习 第章编程基础 一、填空题、、和、单行注释、多行注释、文档注释、基本数据类型、引用数据类型、、、、、、、文档收集自网络,仅用于个人学习 、、二、判断题、错、对、错、对、错三、选择题、、、、、、、、、、四、程序分析题、编译不通过. 值和相加时,由于变量地类型为,取值范围没有类型大,存不下类型地值,因此编译不通过. 、编译不通过.这是因为是在最里层地代码块中定义地一个变量,只有在那个代码块中才可使用,在使用;语句时已经超过了变量地作用域,所以编译无法通过. 、打印结果为:. 、打印结果为:五、问答题、语言地八种基本数据类型有:字节型,占一个字节. 短整型,占两个字节. 整型,占个字节. 长整型,占个字节. 单精度浮点型,占个字节. 双精度浮点型,占个字节. 字符型,占两个字节. 型,表示逻辑值,有和两个值,分别占一个字节. 、如果使用“”在表达式之间进行连接,那么无论任何情况,“”两边地表达式都会参与计算. 如果使用“”进行连接,当“”左边地表达式为,则不会执行其右边地表达式.例如定义; < > 表达是会发生被除异常,因为地表达式执行了.而< > 是不会出现这种异常地,因为< 为,表达式不会执行. 、方法重载指地是在一个类中可以声明多个同名地方法,而方法中参数地个数或者数据类型不一致. 调用这些同名地方法时,会根据实际参数地不同绑定到不同地方法. 六、编程题、参考答案文档收集自网络,仅用于个人学习 { ([] ) { ; ( ; < ; ) { ( ) ; } (); } }文档收集自网络,仅用于个人学习 、参考答案 { ( []) { ();文档收集自网络,仅用于个人学习 (); } ( ) { ; ( > ) { ; } ( ) { ; } { * ; } ; } }文档收集自网络,仅用于个人学习 、参考答案 { ([] ) { [] { , , , , , , }; ( ; < ; ) { 定义内层循环( ; < ; ) { ([] > [ ]) { 比较相邻元素下面地三行代码用于交换两个元素[]; [] [ ]; [ ] ; } } } ( ; < ; ) { ([] " "); 打印元素和空格} } }文档收集自网络,仅用于个人学习 第章面向对象(上) 一、填空题、封装、继承、多态、、成员变量、局部变量、类、类、、()文档收集自网络,仅用于个人学习、静态变量、内部类、、二、判断题、对、对、错、对、错三、选择题、、、、、、、、、、四、程序分析题、程序不能编译通过,因为在类中地成员变量用修饰,所以在类中无法访问. 、程序不能编译通过,因为在静态方法()中不能访问非静态成员变量. 、程序能够编译通过,运行地结果为“” . 五、简答题、构造方法是类地一个特殊成员,它会在类实例化对象时被自动调用.而普通方法只有在使用地时候才会被调用.在定义构造方法时要求方法名与类名相同、在方法名地前面没有返回值类型地声明、在方法中不能使用语句返回一个值、单例模式可以保证在整个程序运行期间针对该类只存在一个实例对象. 六、编程题、参考答案文档收集自网络,仅用于个人学习 { ; ; () { } ( , ) { ; ; } () { ; } ( ) { ; } () { ; } ( ) { ; } } { ([] ) { ();文档收集自网络,仅用于个人学习 (""); (); ("" ); } }文档收集自网络,仅用于个人学习 、参考答案 {
JAVA 学 习 路 线
第一天 1:计算机概述(了解)2 2:键盘功能键的认识和快捷键(掌握)2 3:常见的DOS命令(掌握)3 4:Java语言概述(了解)3 5:JDK,JRE,JVM的作用及关系(掌握) 3 6:JDK的下载,安装,卸载(掌握)4 7:第一个程序:HelloWorld案例(掌握)4 8:常见的问题(掌握)5 9:path环境变量(掌握)5 10:classpath环境变量(理解)5 第二天 1:关键字(掌握)6 2:标识符(掌握)6 3:注释(掌握)7 4:常量(掌握)7 5:进制转换(了解)7 6:变量(掌握)8 7:数据类型(掌握)8 8:数据类型转换(掌握)8 第三天 1:运算符(掌握)10 2:键盘录入(掌握)11 3:流程控制语句12 4:if语句(掌握)12 第四天 1:switch语句(掌握)14 2:循环语句(掌握)15 3:控制跳转语句(掌握)17 第五天 1:方法(掌握)18 2:数组(掌握)19 第六天 1:二维数组(理解)23 2:两个思考题(理解)23 3:面向对象(掌握)23 第七天
1:成员变量和局部变量的区别(理解)25 2:类作为形式参数的问题?(理解)25 3:匿名对象(理解)25 4:封装(理解)25 5:private关键字(掌握)25 6:this关键字(掌握)26 7:构造方法(掌握)26 8:代码:Student s = new Student();做了哪些事情?(理解)27 9:面向对象的练习题(掌握)27 第八天 1:如何制作帮助文档(了解)28 2:通过JDK提供的API学习了Math类(掌握)28 3:代码块(理解)28 4:继承(掌握)28 第九天 1:final关键字(掌握)30 2:多态(掌握)30 3:抽象类(掌握)32 4:接口(掌握)33 第十天 1:形式参数和返回值的问题(理解)35 2:包(理解)35 3:导包(掌握)35 4:权限修饰符(掌握)36 5:常见的修饰符(理解)36 6:内部类(理解)37 第十一天 1:Eclipse的概述使用(掌握)40 2:API的概述(了解)40 3:Object类(掌握)40 第十二天 1:Scanner的使用(了解)41 2:String类的概述和使用(掌握)41 第十三天 1:StringBuffer(掌握)44 2:数组高级以及Arrays(掌握)44
第三次作业 ?1、 jar命令的()参数可以创建归档文件 (1分) o A、c o B、v o C、f o D、x 参考答案:A 答案说明:c参数,创建归档文件 ?2、 下列选项中,用于在定义子类时声明父类名的关键字是( )。 (1分) o A、interface o B、package o C、extends o D、class 参考答案:C 答案说明: ?3、 用于定义类成员的访问控制权的一组关键字是( )。 (1分) o A、class, float, double, public o B、float, boolean, int, long o C、char, extends, float, double o D、public, private, protected 参考答案:D 答案说明: ?4、 下面关于throws作用的描述中,正确的是()
(1分) o A、一个方法只能抛出一个异常信息 o B、一个方法上使用throws声明一个异常说明这个方法运行时一定会抛出这个异常 o C、throws可以声明在方法体中用来指定抛出的具体异常 o D、throws出现在方法函数头 参考答案:D 答案说明:throws关键字需要写在方法声明的后面,throws后面需要声明方法中发生异常的类型,通常将这种做法称为方法声明抛出一个异常 ?5、 下列关于匿名内部类的描述,错误的是() (1分) o A、匿名内部类是内部类的简化形式 o B、匿名内部类的前提是必须要继承父类或实现接口 o C、匿名内部类的格式是"new 父类(参数列表) 或父接口(){}" o D、匿名内部类可以有构造方法 参考答案:D 答案说明:匿名内部类不能有构造方法,它连类名都没有 ?6、 以下关于编译异常说法正确的是() (1分) o A、编译异常就是指Exception以及其子类 o B、编译异常如果产生,可以不用处理 o C、编译异常如果产生,必须处理,要么捕获,要么抛出 o D、编译异常指的就是Error 参考答案:C 答案说明:编译异常如果产生,必须处理,要么捕获,要么抛出 ?7、 父类中的方法被以下哪个关键字修饰后不能被重写?() (1分) o A、public o B、satic o C、final o D、void
Java 基础入门》习题答案 第1章 Java 开发入门 一、填空题 1、 Java EE、Java SE、Java ME 2、 JRE 3、 javac 4、 bin 5、 path、classpath 二、选择题 1、ABCD 2、C 3、D 4、 B 5、B 三、简答题 1、面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。 2、 JRE(Java Runtime Environment,Java 运行时环境),它相当于操作系统部分,提供了 Java 程序运行时所需要的基本条件和许多 Java 基础类,例如,IO 类、GUI 控件类、网络类等。JRE 是提供给普通用户使用的,如果你只想运行别人开发好的 Java 程序,那么,你的计算机上必须且只需安装JRE。 JDK(Java Development Kit,Java 开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给 Java 开发人员使用的。初学者学习和使用 Java 语言时,首先必须下载和安装 JDK。 JDK 中已经包含了 JRE 部分,初学者安装 JDK 后不必再去下载和安装 JRE 了。四、编程题 public class HelloWorld { public static void main(String[] args) { "这是第一个 Java 程序!"); } } 第2章 Java 编程基础 一、填空题 1、 class 2、 true 和 false 3、单行注释、多行注释、文档注释 4、基本数据类型、引用数据类型 5、 1、2、4、8 6、 & && | || 7、 0 8、 5 9、 34 10、 56 二、判断题 1、错 2、对 3、错 4、对 5、错三、选择题 1、 AD 2、AD 3、C 4、ABCD 5、C 6 、A 7、AC 8、A 9、 B 10、A 四、程序分析题 1、编译不通过。int 值 4 和 b 相加时,由于变量 b 的类型为 byte,取值范围没有 int 类型大,存不下 int 类型的值,因此编译不通过。 2、编译不通过。这是因为 y 是在最里层的代码块中定义的一个变量,只有在那个代码块中才可使用,在使用 y = x;语句时已经超过了 y 变量的作用域,所以编译无法通过。 3、打印结果为:3。 4、打印结果为: 9 8 7 五、问答题 1、Java 语言的八种基本数据类型有:byte 字节型,占一个字节。short 短整型,占两个字节。int 整型,占 4 个字节。long 长整型,占 8 个字节。float 单精度浮点型,占 4 个字节。double 双精度浮点型,占 8 个字节。char 字符型,占两个字节。boolean 型,表示逻辑值,有 true 和 false 两个值,分别占一个字节。 2、如果使用“&”在表达式之间进行连接,那么无论任何情况,“&”两边的表达式都会参与计算。如果使用“&&”进行连接,当“&&”左边的表达式为 false,则不会执行其右边的表达式。例如定义 int x = 2,y = 0; boolean b = x < y & x / 2 > 0 表达是会发生被 0 除异常,因为 x / y 的表达式执行了。而 boolean b = x < y & x / 2 > 0 是不会出现这种异常的,因为 x < y 为 false,表达式 x / y 不会执行。 3、方法重载指的是在一个类中可以声明多个同名的方法,而方法中参数的个数或者数据类型不一致。调用这些同名的方法时,JVM 会根据实际参数的不同绑定到不同的方法。六、编程题 1、参考答案
传智播客j a v a考试 习题3
第三次作业 ?1、 jar命令的()参数可以创建归档文件 (1分) o A、c o B、v o C、f o D、x 参考答案:A 答案说明:c参数,创建归档文件 ?2、 下列选项中,用于在定义子类时声明父类名的关键字是( )。 (1分) o A、interface o B、package o C、extends o D、class 参考答案:C 答案说明: ?3、 用于定义类成员的访问控制权的一组关键字是( )。 (1分) o A、class, float, double, public o B、float, boolean, int, long o C、char, extends, float, double o D、public, private, protected 参考答案:D 答案说明: ?4、 下面关于throws作用的描述中,正确的是()
(1分) o A、一个方法只能抛出一个异常信息 o B、一个方法上使用throws声明一个异常说明这个方法运行时一定会抛出这个异常 o C、throws可以声明在方法体中用来指定抛出的具体异常 o D、throws出现在方法函数头 参考答案:D 答案说明:throws关键字需要写在方法声明的后面,throws后面需要声明方法中发生异常的类型,通常将这种做法称为方法声明抛出一个异常 ?5、 下列关于匿名内部类的描述,错误的是() (1分) o A、匿名内部类是内部类的简化形式 o B、匿名内部类的前提是必须要继承父类或实现接口 o C、匿名内部类的格式是"new 父类(参数列表) 或父接口(){}" o D、匿名内部类可以有构造方法 参考答案:D 答案说明:匿名内部类不能有构造方法,它连类名都没有 ?6、 以下关于编译异常说法正确的是() (1分) o A、编译异常就是指Exception以及其子类 o B、编译异常如果产生,可以不用处理 o C、编译异常如果产生,必须处理,要么捕获,要么抛出 o D、编译异常指的就是Error 参考答案:C 答案说明:编译异常如果产生,必须处理,要么捕获,要么抛出 ?7、 父类中的方法被以下哪个关键字修饰后不能被重写?() (1分) o A、public o B、satic o C、final o D、void
第三次作业 1、 jar命令的()参数可以创建归档文件 (1分) o A、c o B、v o C、f o D、x 参考答案:A 答案说明:c参数,创建归档文件 2、 下列选项中,用于在定义子类时声明父类名的关键字是( )。 (1分) o A、interface o B、package o C、extends o D、class 参考答案:C 答案说明: 3、 用于定义类成员的访问控制权的一组关键字是( )。 (1分) o A、class, float, double, public o B、float, boolean, int, long o C、char, extends, float, double o D、public, private, protected 参考答案:D 答案说明: 4、 下面关于throws作用的描述中,正确的是() (1分)
o A、一个方法只能抛出一个异常信息 o B、一个方法上使用throws声明一个异常说明这个方法运行时一定会抛出这个异常 o C、throws可以声明在方法体中用来指定抛出的具体异常 o D、throws出现在方法函数头 参考答案:D 答案说明:throws关键字需要写在方法声明的后面,throws后面需要声明方法中发生异常的类型,通常将这种做法称为方法声明抛出一个异常 5、 下列关于匿名内部类的描述,错误的是() (1分) o A、匿名内部类是内部类的简化形式 o B、匿名内部类的前提是必须要继承父类或实现接口 o C、匿名内部类的格式是"new 父类(参数列表) 或父接口(){}" o D、匿名内部类可以有构造方法 参考答案:D 答案说明:匿名内部类不能有构造方法,它连类名都没有 6、 以下关于编译异常说法正确的是() (1分) o A、编译异常就是指Exception以及其子类 o B、编译异常如果产生,可以不用处理 o C、编译异常如果产生,必须处理,要么捕获,要么抛出 o D、编译异常指的就是Error 参考答案:C 答案说明:编译异常如果产生,必须处理,要么捕获,要么抛出 7、 父类中的方法被以下哪个关键字修饰后不能被重写?() (1分) o A、public o B、satic o C、final o D、void 参考答案:C
传智播客Java基础第一阶段习题 一、单项选择题 1、Java源文件和编译后的文件扩展名分别为() A、.class和 .java B、.java和 .class C、.class和 .class D、.java 和 .java 2、Java语言不是() A、高级语言 B、编译型语言 C、结构化设计语言 D、面向对象设计语言 4、Java语言中创建一个对象使用的关键字为() A、class B、interface C、new D、create 5、对于可以独立运行的Java应用程序,下列( )说法是正确的。 A、无须main方法 B、必须有两个main方法 C、可以有多个或零个main方法 D、必须有一个main方法 6、设x=5 则y=x-- 和y=--x的结果,使y分别为( ) A、5,5 B、5,6 C、5,4 D、4,4 7、for(;;)是( ) A、循环结构 B、分支结构 C、顺序结构 8、布尔型变量真值表示为() A、true B、false C、t D、f 9、下面哪种不是Java的数据类型() A、基本类型 B、数组类型 C、类 D、界面类型 11、设有对象x具有属性a则访问该属性的方法为() A、a.x B、a.x() C、x.a D、x.a() 12、设数组Array由以下语句定义 int[] age=new int[10]; 则数组的第一个元素的正确引用方法为( ) A、age[1] B、Age[0] C、age[] D、age[0] 13、continue语句( ) A、只中断最内层的循环 B、只中断最外层的循环 C、只中断所在层循环中的当次循环 D、只中断某一层的循环 14、以public修饰的类如:public class Car{…} 则Car( ) A、可被其它程序包中的类使用 B、仅能被本程序包中的类使用 C、不能被任意其它类使用 D、不能被其它类继承
IO流总结 异常 父类是Throwable,处理异常的两种方案,一种try --catch 另外一种抛出 熟练使用Try---catch---finally,注意:能和try一起使用的只有catch和finally关键字Try块里面存放的是有可能发生异常的代码,通常和catch块一起使用,catch块用于处理try块中抛出的异常,finally块不是必须的,通常将释放资源(例如IO流的close方法)的代码放到finally块里面 注意:finally和Final还有Finalize的区别 File类 注意:File类封装的路径,而不一定是一个具体的文件,File类不能用于读写文件,File类只能用来处理和文件相关的操作 构造方法 * File(String pathname):根据一个路径得到File对象 * File(String parent, String child):根据一个目录和一个子文件/目录得到File对象 * File(File parent, String child):根据一个父File目录和一个子文件/目录得到File对象 创建功能 * public boolean mkdir():创建文件夹如果存在这样的文件夹,就不创建了 * public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来 注意:mkdir只能创建单级目录,mkdirs用于创建多级目录 判断功能, * public boolean isDirectory():判断是否是目录 * public boolean isFile():判断是否是文件 * public boolean exists():判断文件是否存在 注意:判断功能返回的都是布尔类型的 获取功能 * public String getName():获取名称 * public long length():获取长度。字节数 * public File[] listFiles():获取指定目录下的所有文件或者文件夹对象,返回的是File数组 * public File[] listFiles(FilenameFilter filter):注意:此方法需要传入筛选文件名的接口FileNameFilter,用于过滤文件 概念
传智播客Java基础综合测试题 第一关 1.动手完成 Java 开发包的安装,并设置环境变量 Path 。 2.编写一个程序,要求程序运行后在屏幕上输出: *************************** This is my first java program! *************************** 3.编写一个程序,该程序从命令行接收 4 个参数,并将接收的 4 个参数打印输出到屏幕。 第二关 1. 指出下列哪些变量名称是不合法的? tomSalary,float,1people,people1,price_per_m,price-per_m,$root,@test 2 、写出 int min=x>y?y:x 的等价 if 语句。 3 、利用 java API 帮助文档,找到一个可以将给定的字符串转化为小写的方法。 4 、打印出成绩等级,如果成绩大于等于 90 分,输出“优秀”,如果成绩大于等于80 分,输出“良好”,如果大于等于 70 分,输出“中等”,如果大于等于 60 分,输出“及格”,其它输出“不及格”。 5、用冒泡和选择两种方式对数组进行排序。 第三关 1 、选择题 (1)程序 TestSketch.java 代码如下, 4 个选项中正确的描述是() Class A { } Class B extends A { } Public class TestSketch { Public static void mian(String[] args)
{ A a=new A(); B b=(B)a; } } A.通过编译并正常运行 B.编译时出现异常 C.编译通过,运行时出现异常 D.编译器报告找不到 TestSketch.java (2)下面有关类 Demo 的描述正确的有() Public class Demo extends Base { Private int count; Public Demo() { System.out.println(“A Demo object has been created”); } Protected void assone() { Count++; } } A.当创建一个 Demo 类的实例对象时, count 的值为 0 B.当创建一个 Demo 类的实例对象时, count 的值是不确定的 C.Base 类型的对象中可以包含改变 count 值的方法 D. Demo 的子类对象可以访问 count 3) 阅读下面的程序,正确的选项为() Class person { String name; String nickname; Public person(String s,String t) { name = s; nickName=t; } Public String toString() { return name + “ nickname = “+nickName; } } public class Teacher extends Person { String rank; Public Teacher(String s,String t,String r) { super (s,t);
传智播客java就业班入学测试题 共50道题,每道题2分,总分100分,80分为合格。 注意,所有题目均为多项选择题。 对应试者的忠告: 传智播客从办学一来,一直在IT培训领域保持着良好的口碑,之所以能做到这么好的口碑,主要得益于过硬的教学质量以及学员的高就业率。 本测试题的目的在于帮助学员检测自己的java基础,因为公司要保证教学质量,光有名师授课是远远不够的,还需要学员们都具备一个基本的java基础,试想一下,如果学员入学前我们不进行测试,那么必然会导致学生的技术水平参差不齐,再好的老师也无法把这样的班教好。 希望参加测试的学员能本着对自己负责的态度,独立完成这套测试题。 如果您试图通过找人帮忙做题等其他途径来完成这套测试题,我们劝您千万别这样做,因为这样是害了自己。即使通过测试,顺利进入就业班的学习,同样是跟不上老师的进度,不会有一个好的结果。 如果您觉得完成这套测试题非常有难度,那也没有关系,因为我们针对基础不好的学员专门开设了 java基础与加强班,您可以通过短时间的培训,打下一个坚实的基础,再继续参加我们就业班的培训。 1.在JAVA中,下列哪些说法是正确的() A.java源文件的扩展名为.java B.写好的java源程序可以直接运行 C.编写的源程序必须先编译后才能运行 D.程序员可以读懂扩展名为.class的文件 2.在java中,关于数组描述正确的是() A.数组中的索引下标从1开始 B.存储在数组当中的数据都属于同一数据类型 C.通过数组名.length()能获得数组的长度 D.数组的最大索引下标是数组的长度减1 3.下列标识符哪个是合法的() A.class B.$abc C.1234 D._name 4.下面程序的输出结果是什么( ) int[] arr = new int[10]; System.out.println(arr[0]); A.编译不通过
答题格式: 1 - 30题为单选题, 31 - 40为多选题. 新建一个txt文件, 答案写在这个文件中. 答案必须保存为txt格式的文件。 答题的时候,可以在EditPlus上答题,会自动显示题目序号 文件名改为自己的名字, 每题一行. 多选题按abcd的顺序填答案, 比如某一题的答案acd, 就必须是acd, 不能是adc等等. 不能有空行, 不能有空格,不能有题目序号,一定不要某一题不会就空在那, 会导致后面的答案全都识别错了! 填完答案数一下, 不要填挪了!!! 共40道选择题,每题2.5分。多选题有错则全错,全对才满分. 单选题: 1. 下列哪个声明是错误的?() A. int i=10; B. byte b=127; C. float f=1.1; //1.1f D. double d=34.4; 2. 下面哪个不是java中的关键字?() A. public B. true C. class D. main 3. 下面哪个语句不会产生编译错误?()
A. float a =2.0; //2.0f B. byte b =25; C. char c =”a”; D. boolean d=0; 4. 下面程序哪个语句是正确的() A. byte a=0,b=3; byte c =a+b; B. short s =23; s=s+12; C. float f = 23+23.23; D. short s=23; s+=12; 5. byte类型的大小是() A. -228 ~128 B. -255 ~ 256 C. -128 ~ 127 D. -255 ~ 255 6. 下面程序执行的结果是?() int i = 100; while(true) { If ( i++ > 100 ) break; System.out.println(i); } A. 100 B. 101 C. 102 D. 103 7. 下面程序执行的结果是?() public class Test() { public static void main(String[] args) { System.out.println(“”+’a’+1); } } A. 98 B. a1 C. 197 D. 971
传智播客毕向东Java基础全套视频教程下载地址完整版ED2K ed2k://|file|%E4%BC%A0%E6%99%BA%E6%92%AD%E5%AE%A2%E6%AF%95%E5%90%91%E4% B8%9CJava%E5%9F%BA%E7%A1%80%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B-day01-0 1-%E5%9F%BA%E6%9C%AC%E5%B8%B8%E8%AF%86.avi|34059776|393df7ea574b229ab432cc3 bc5b5bfeb|h=r5wxc4c3m2taniq7gv3oihbtw5evfj34|/ ed2k://|file|%E4%BC%A0%E6%99%BA%E6%92%AD%E5%AE%A2%E6%AF%95%E5%90%91%E4% B8%9CJava%E5%9F%BA%E7%A1%80%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B-day01-0 2-Java%E7%9A%84%E8%B7%A8%E5%B9%B3%E5%8F%B0%E6%80%A7.avi|16517632|bd1f97703 3c16f9e67a0707c88bf8de9|h=retsk7ph3h275leih43pxkwus7r46q6k|/ ed2k://|file|%E4%BC%A0%E6%99%BA%E6%92%AD%E5%AE%A2%E6%AF%95%E5%90%91%E4% B8%9CJava%E5%9F%BA%E7%A1%80%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B-day01-0 3-Java%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA%28%E5%AE%89%E8%A3%85%29.avi| 37254144|972d0be327c9621c13e8a43bc91743f2|h=kblwoj466geowhommspua7noy37n62px|/ ed2k://|file|%E4%BC%A0%E6%99%BA%E6%92%AD%E5%AE%A2%E6%AF%95%E5%90%91%E4% B8%9CJava%E5%9F%BA%E7%A1%80%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B-day01-0 4-Java%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA%28%E7%8E%AF%E5%A2%83%E5%8F %98%E9%87%8F%E9%85%8D%E7%BD%AE%29.avi|22667776|021********d15d9f1652f3360ae f6bb|h=6a76dvclzybfbxadoxdaymyed7cz4crm|/ ed2k://|file|%E4%BC%A0%E6%99%BA%E6%92%AD%E5%AE%A2%E6%AF%95%E5%90%91%E4% B8%9CJava%E5%9F%BA%E7%A1%80%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B-day01-0 5-Java%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA%28%E7%8E%AF%E5%A2%83%E5%8F %98%E9%87%8F%E9%85%8D%E7%BD%AE%E6%8A%80%E5%B7%A7%29.avi|12524544|bc051c2 f55b4e7bbc038f2f840d24f90|h=wqpqdjokiggjvhxx6sluhgek5nnep4gm|/ ed2k://|file|%E4%BC%A0%E6%99%BA%E6%92%AD%E5%AE%A2%E6%AF%95%E5%90%91%E4% B8%9CJava%E5%9F%BA%E7%A1%80%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B-day01-0 6-Java%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA%28%E7%8E%AF%E5%A2%83%E5%8F %98%E9%87%8F%E4%B8%B4%E6%97%B6%E9%85%8D%E7%BD%AE%E6%96%B9%E5%BC%8F%2 9.avi|12162560|fb203ba681d2c5bd176773049a5e5865|h=s4vi6alfhqjiephfyr3uq66dbtu5op4h|/ ed2k://|file|%E4%BC%A0%E6%99%BA%E6%92%AD%E5%AE%A2%E6%AF%95%E5%90%91%E4% B8%9CJava%E5%9F%BA%E7%A1%80%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B-day01-0 7-Hello.World.avi|27416576|fedcbb01a0e340ec48a61aa5f79ae9f1|h=3kqemntstfgkl3ltyu66xnw klz5ftwm6|/ ed2k://|file|%E4%BC%A0%E6%99%BA%E6%92%AD%E5%AE%A2%E6%AF%95%E5%90%91%E4% B8%9CJava%E5%9F%BA%E7%A1%80%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B-day01-0 8-classpath%E9%85%8D%E7%BD%AE.avi|30237696|a2bbf7a99155c0f1271507811eb691f8|h=rd gnbzcr5vux6k635y5lhlnzu5vldl4j|/ ed2k://|file|%E4%BC%A0%E6%99%BA%E6%92%AD%E5%AE%A2%E6%AF%95%E5%90%91%E4% B8%9CJava%E5%9F%BA%E7%A1%80%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B-day01-0 9-Hello.World%E7%9A%84%E7%BB%84%E6%88%90%E9%83%A8%E5%88%86.avi|30817280|863 0df13acb995098843fa6bdc3c61b9|h=6tbn7qtzonyuh4gwayh5t3v34mmlg62y|/ ed2k://|file|%E4%BC%A0%E6%99%BA%E6%92%AD%E5%AE%A2%E6%AF%95%E5%90%91%E4% B8%9CJava%E5%9F%BA%E7%A1%80%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B-day01-1
Java 基础入门》习题答案 第1章Java 开发入门 一、填空题1、Java EE、Java SE、Java ME 2、JRE 3、javac 4、bin 5、path、classpath 二、选择题1、ABCD 2、C 3、D 4、B 5、B 三、简答题1、面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。2、JRE(Java Runtime Environment,Java 运行时环境),它相当于操作系统部分,提供了Java 程序运行时所需要的基本条件和许多Java 基础类,例如,IO 类、GUI 控件类、网络类等。JRE 是提供给普通用户使用的,如果你只想运行别人开发好的Java 程序,那么,你的计算机上必须且只需安装JRE。JDK(Java Development Kit,Java 开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给Java 开发人员使用的。初学者学习和使用Java 语言时,首先必须下载和安装JDK。JDK 中已经包含了JRE 部分,初学者安装JDK 后不必再去下载和安装JRE 了。四、编程题 public class HelloWorld { public static void main(String[] args) { System.out.println("这是第一个Java 程序!"); } } 第2章Java 编程基础 一、填空题1、class 2、true 和false 3、单行注释、多行注释、文档注释4、基本数据类型、引用数据类型5、1、2、4、8 6、& && | || 7、0 8、5 9、34 10、56 二、判断题1、错2、对3、错4、对5、错三、选择题1、AD 2、AD 3、C 4、ABCD 5、C 6 、A 7、AC 8、 A 9、 B 10、A 四、程序分析题1、编译不通过。int 值4 和b 相加时,由于变量b 的类型为byte,取值范围没有int 类型大,存不下int 类型的值,因此编译不通过。2、编译不通过。这是因为y 是在最里层的代码块中定义的一个变量,只有在那个代码块中才可使用,在使用y = x;语句时已经超过了y 变量的作用域,所以编译无法通过。3、打印结果为:3。4、打印结果为:9 8 7 五、问答题1、Java 语言的八种基本数据类型有:byte 字节型,占一个字节。short 短整型,占两个字节。int 整型,占4 个字节。long 长整型,占8 个字节。float 单精度浮点型,占 4 个字节。double 双精度浮点型,占8 个字节。char 字符型,占两个字节。boolean 型,表示逻辑值,有true 和false 两个值,分别占一个字节。2、如果使用“&”在表达式之间进行连接,那么无论任何情况,“&”两边的表达式都会参与计算。如果使用“&&”进行连接,当“&&”左边的表达式为false,则不会执行其右边的表达式。例如定义int x = 2,y = 0; boolean b = x < y & x / 2 > 0 表达是会发生被0 除异常,因为x / y 的表达式执行了。而boolean b = x < y & x / 2 > 0 是不会出现这种异常的,因为x < y 为false,表达式x / y 不会执行。3、方法重载指的是在一个类中可以声明多个同名的方法,而方法中参数的个数或者数据类型不一致。调用这些同名的方法时,JVM 会根据实际参数的不同绑定到不同的方法。 六、编程题1、参考答案 public class Test01 { public static void main(String[] args) { int sum = 0; for (int i = 1; i < 100; i++) { if (i % 2 != 0) sum += i; } System.out.println(sum); } } 2、参考答案 public class Test02 { public static void main(String args[]) { int y = function(0); System.out.println(y); } public static int function(int x) { int y; if (x > 0) { y = x + 3; } else if (x == 0) { y = 0; } else { y = x * x - 1; } return y; } } 3、参考答案 public class Test03 { public static void main(String[] args) { int[] arr = { 25, 24, 12, 76, 101, 96, 28 }; for (int i = 0; i < arr.length - 1; i++) { // 定义内层循环for (int j = 0; j < arr.length - i - 1; j++) { if (arr[j] > arr[j + 1]) { // 比较相邻元素// 下面的三行代码用于交换两个元素int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); // 打印元素和空格} } } 第3章面向对象(上)