标签:can 17. .class 目录 考试 roi 字符串 结果 操作
目录
第5章核心类
5.1 java.lang.Object
package app05;
public class ClassDemo{
public static void main(String[] args){
String country="Fiji";
Class myClass=country.getClass();
System.out.println(myClass.getName());
Class klass=null;
try{
klass=Class.forName("app05.Test");
}catch(ClassNotFoundException e){
}
if(klass!=null){
try{
Test test=(Test) klass.newInstance();
test.print();
}catch (IllegalAccessException e){
}catch (InstantiationException e){
}
}
}
}
5.6 java.lang.System
1.System类的三个字段是out、in和err:
out字段表示标准的输出流;
err字段也表示一个PrintStream对象,默认情况下,输出也会从当前调用Java程序的地方通向控制台。其目的是显示那些应该立即引起用户注意的错误消息;
in字段表示输入标准流。
2.代码清单5.2 InputDemo类
public class Employee{
public int age;
public double salary;
public Employee(){
}
public Employee(int ageValue, double salaryValue){
age=ageValue;
salary=salaryValue;
}
}
4.7 java.util.Scanner
1.可以使用Scanner来获取键盘输入,在实例上调用next方法。next方法会缓存用户从键盘或其他设备输入的字符。
2.代码清单5.3 使用Scanner来接受用户输入
package app05;
import java.util.Scanner;
public class ScannerDemo{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
while(true){
System.out.print("What's your name?");
String input=scanner.nextLine();
if(input.isEmpty()){
break;
}
System.out.println("Your name is"+input+".");
}
scanner.close();
System.out.println("Good bye");
}
}
第6章 数组
6.1 概览
1.每次创建一个数组,在后台,编译器都要创建一个对象以允许:
(1)通过length字段来获取数组中的元素的数目。
(2)通过指定一个索引来访问每一个元素。
一个数组是一个Java对象。
6.5 查找一个数组
1.代码清单6.1 一个二分查找的示例
package app06;
import java.util.Arrays;
public class BinarySearchDemo{
public static void main(String[] args){
int[] primes={2,3,5,7,11,13,17,19};
int index=Arrays.binarySearch(primes,13);
System.out.println(index);
index=Arrays.binarySearch(primes,4);
System.out.println(index);
}
}
代码清单6.1中的BinarySearchDemo类使用了一个int类型的数组,它包含了前8个素数。传入13作为查找键,将会返回5,因为13是该数组中的第6个元素,其索引为5.传入4作为查找键,将会找不到匹配,该方法返回-3.这是-2减去1的结果。如果要将该键插入到数组中的话,它本应该插入到索引2的位置。
6.6 给main方法传入一个字符串数组
1.代码清单6.2 访问main方法的参数
package app06;
public class MainMethodTest{
public static void main(String[] args){
for (String arg:args){
System.out.println(arg);
}
}
}
6.7 多维数组
1.代码清单6.3 一个多维数组
package app06;
import java.util.Arrays;
public class MultidimensionalDemo{
public static void main(String[] args){
int[][] matrix=new int[2][3];
for(int i=0;i<2;i++){
for(int j=0;j<3;j++){
matrix[i][j]=j+i;
}
}
for(int i=0;i<2;i++){
System.out.println(Arrays.toString(matrix[i]));
}
}
}
第8章错误处理
8.1 捕获异常
1.try通常和catch和finally使用。错误处理的步骤可以概括如下:
(1)将可能导致一个错误的代码隔离到一个try语句块中。
(2)对于每一个单个的catch语句块,编写出如果try语句块中发生特定类型的一个异常,将要执行的代码。
(3)在finally语句块中,编写出不管是否发生错误都将运行的代码。
2.代码清单8.1 NumberDoubler类
package app08;
import java.util.Scanner;
public class NumberDoubler{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
String input=scanner.next();
try{
double number=Double.parseDouble(input);
System.out.printf("Result:%s",number);
}catch(NumberFormatException e){
System.out.println("Invalid input.");
}
scanner.close();
}
}
第九章操作数字
9.1 装箱和拆箱
1.将一个基本类型转换为一个包装类对象,称为装箱(boxing);从一个包装类对象转换为基本类型,称为拆箱(unboxing)。
装箱——
Integer number=3;//assign an int to Integer
拆箱——
Integer number=new Integer(100);
int simpleNumber=number;
9.2 数字解析
1.数字解析的目的是将一个字符串转换为一个数字基本类型。如果解析失败,例如,由于字符串不是一个数字或者是一个超出了指定范围的数字,程序将会抛出一个异常。
2.代码清单9.1 解析数字(NumberTest.java)
package app09;
import java.util.Scanner;
public class NumberTest{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
String userInput=scanner.next();
try{
int i=Integer.parseInt(userInput);
System.out.println("The number entered:"+i);
}catch(NumberFormatException e){
System.out.println("Invalid user input");
}
}
}
9.3 数字格式化
1.代码清单9.2 NumberFormatTest类
package app09;
import java.text.NumberFormat;
import java.util.Locale;
public class NumberFormatTest{
public static void main(String[] args){
NumberFormat nf=NumberFormat.getInstance(Locale.US);
System.out.println(nf.getClass().getName());
System.out.println(nf.format(123445));
}
}
9.6 计算货币
1.float和double都不适合于计算货币。
2.代码清单9.3 使用BigDecimal
package app09;
import java.math.BigDecimal;
public class BigDecimalDemo{
public static void main (String[] args){
double balance=9.99;
balance-=0.10F;
System.out.println(balance);
BigDecimal balance2=BigDecimal.valueOf(9.99);
BigDecimal accountFee=BigDecimal.valueOf(.1);
BigDecimal r=balance2.subtract(accountFee);
System.out.println(r.doubleValue());
}
}
9.7 生成随机数
1.代码清单9.4 随机数生成器
package app09;
public class RandomNumberGenerator{
public int generate(){
double random=Math.random();
return(int)(random*10);
}
public static void main(String[] args){
RandomNumberGenerator generator=
new RandomNumberGenerator();
for(int i=0;i<10;i++){
System.out.println(generator.generate());
}
}
}
从图中可以看出所有异常类型都是内置类Throwable的子类,因而Throwable在异常类的层次结构的顶层。
接下来Throwable分成了两个不同的分支,一个分支是Error,它表示不希望被程序捕获或者是程序无法处理的错误。另一个分支是Exception,它表示用户程序可能捕捉的异常情况或者说是程序可以处理的异常。其中异常类Exception又分为运行时异常(RuntimeException)和非运行时异常。
Java异常又可以分为不受检查异常(Unchecked Exception)和检查异常(Checked Exception)。
Error:Error类对象由 Java 虚拟机生成并抛出,大多数错误与代码编写者所执行的操作无关。例如,Java虚拟机运行错误(Virtual MachineError),当JVM不再有继续执行操作所需的内存资源时,将出现 OutOfMemoryError。这些异常发生时,Java虚拟机(JVM)一般会选择线程终止;还有发生在虚拟机试图执行应用时,如类定义错误(NoClassDefFoundError)、链接错误(LinkageError)。这些错误是不可查的,因为它们在应用程序的控制和处理能力之外,而且绝大多数是程序运行时不允许出现的状况。对于设计合理的应用程序来说,即使确实发生了错误,本质上也不应该试图去处理它所引起的异常状况。在Java中,错误通常是使用Error的子类描述。
Exception:在Exception分支中有一个重要的子类RuntimeException(运行时异常),该类型的异常自动为你所编写的程序定义ArrayIndexOutOfBoundsException(数组下标越界)、NullPointerException(空指针异常)、ArithmeticException(算术异常)、MissingResourceException(丢失资源)、ClassNotFoundException(找不到类)等异常,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生;而RuntimeException之外的异常我们统称为非运行时异常,类型上属于Exception类及其子类,从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。如IOException、SQLException等以及用户自定义的Exception异常,一般情况下不自定义检查异常。
Error和Exception的区别:Error通常是灾难性的致命的错误,是程序无法控制和处理的,当出现这些异常时,Java虚拟机(JVM)一般会选择终止线程;Exception通常情况下是可以被程序处理的,并且在程序中应该尽可能的去处理这些异常。
问题1解决方案:
Linux Bash下调试代码:在相应文件夹下选择在终端打开——用vim生成HelloJDB.java——直接javac -g -d HelloJDB.java——java HelloJDB
调试基础——
方法断点:stop in HelloJDB.main;stop at HelloJDB:12
行断点:stop in HelloJDB.main-run-locals-step(next)-locals-print i-print j-list
条件断点:
临时断点:
使用:jdb -classpath .:./bin HelloJDB 调试程序;JDB不支持条件断点和临时断点
实例:类的调试-递归学习
问题2解决方案:(1)数据库连接测试
(2)访问数据库表-封装新增留言信息-测试:
https://gitee.com/EvelynYang/20189230/tree/master/src
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 1/3 | 18/38 | |
第三周 | 500/1000 | 1/4 | 38/76 |
标签:can 17. .class 目录 考试 roi 字符串 结果 操作
原文地址:https://www.cnblogs.com/EvelynYang/p/10541499.html