201771010136杨野 第二周学习总结

一 理论知识学习部分

1基本知识      2数据类型       3变量

4运算符       5类型转换

6字符串       7输入输出

8控制流程      9大数值         10数组

标识符

 标识符由字母、下划线、 美元符号和数字组成,且第一个符号不能为数字。

 下列都是合法标识符:    Hello 、$1234 、程序名、www_123

 标识符可用作: 类名、 变量名、方法名、数组名、文件名等。

关键字

 关键字就是Java语言中已经被赋予特定意义的一些单词。

 常见有: 常见有:class 、public 、try 、catch 、if、float 、import 、void等。

关键字不做变量名。

注释

Java有三种注释的方式: 有三种注释的方式:

1. //

注释内容由 注释内容由//一直到此行结束。 一直到此行结束。

2. /* 和*/

定义一个注释块。

3. /** 开始,*/结束 

这种注释方法可用来自动产生文档。

数据类型

Java是一种强类型语言。这意味着每一个变量必须声明一种为类型。

Java 共有8种基本类型

– 整数类型( 整数类型(int 、short 、long 、byte) )

– 浮点类型( 浮点类型(float 、double) )

– 字符类型 ( 字符类型 (char) )

– 布尔类型( 布尔类型(boolean ) 

整数类型

整型常量表示:

十进制:123, 6000

八进制:077, 065

十六进制:0x234, 0xab12

整型变量的数据类型分为四种:

int   short  long   byte

Java 中整数的范围与运行Java代码的机器无关。

Java 中没有unsigned类型。

类型 存储需求 取值范围
int 4字节 -2147483648~2147483648
short 2字节 -32768~32768
long 8字节 -9 233 372 036  854 775 808~9 233 372 036  854 775 808
byte 1字节 -128~127

int

变量定义:

int x;

int height, age;

定义同时可赋值:

int height=180, age=20;

对于int 型变量,内存分配个4 字节,

占32位,取值范围-2^31 ~ 2^31 -1

short

变量定义:

short h;

short m, n;

 定义同时可赋值:

short m=12, n=20;

对于 对于short 型变量,内存分配2个字节,占16位,取值

范围-2^15 ~2^15 -1

long

变量定义:

long sum;

long I, j, k;

定义同时可赋值:

long sum=343435L;

对于 对于long 型变量,内存分配8 个字节,占64位,取值

范围-2^63 ~2^63 -1

byte

变量定义:

byte w;

byte x,y,z;

定义同时可赋值:

byte x=12, y=24, z=36;

对于 对于byte 型变量,内存分配个1 字节,占8位,取值范

围-2^7 ~2^7 -1

浮点类型

Java中有两种浮点类型:

float          double

浮点常量的表示:

小数表示 430.2

科学计数 4.302E2

表示溢出和出错的三种特殊的浮点数值:

正无穷大  负无穷大  NaN(非数字)

类型 存储需求 取值范围
float 4字节 大约+-3.402 823 47E+38F
double 8字节 大约+-1.797 693 134 862 315 70E+308
float double

常量

12.23f, 32.00F, 2e40f

 变量的定义

float x;

float x1,x2,x3;

 定义时赋初值

float x1=12.23f, x2=32.00f, x3;

对于float 型变量内存分配4 个字节,占32位。

常量

12.23d, 32.00D,123.0,6e-120

变量定义

double d;

double d1,d2,d3;

 定义时可以赋初值

double d1=12.23, d2=32.00d, d3;

对于double 型变量内存分配8 个字节,占64位。

字符类型

char:

常量

‘a’ 、‘A’ 、‘8’ 、‘?’

变量定义

char q; char c, type, cat;

定义同时可赋值

char c=‘a’, type, cat;

字符集: Java 采用unicode 字符编码集,该编码集16位,含有65536 个字符。

Unicode( 统一码、万国码)是一个编码规范,为解决传统字符编码方案局限产生,它为每种语言中的每个

字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。

转义字符:前缀\u 表示Unicode 值,而十六进制的4位数字则表明具体是哪个Unicode字符。

一些特殊字符的转义序列。如 一些特殊字符的转义序列。如\b,\n,\\ 等。

布尔类型 boolean

常量

true、false

变量的定义

boolean x;

boolean x,y;

定义同时可赋值

boolean x=true, y=false;

在Java中,布尔值和整数不能相互转换。

变量

 在Java中,每一个变量属于一种类型。在声明变量时,

变量所属的类型位于变量名之前。

– double salary;

– int vacationDays;

– long earthPopulation;

– boolean done;

在Java中,一行可以声明多个变量。逐一声明每一个变量可以提高程序的可读性。

– int i,j;//both are integers

 

变量初始化

  一个变量声明后,必须通过赋值语句对它进行明确的初始化——永远不要使用一个未初始化的变量的值。

在Java中,可以在代码的任何位置进行变量声明。变量的声明尽可能地靠近变量第一次使用的地方,这是一种良好的程序编写风格。

在Java中,不能在同一作用域内声明两个同名的变量。不能在同一作用域内声明两个同名的变量。

 常量

在Java中,使用关键字final来指示常量。习惯上常量名都用大写。

final double CM_PER_INCH=2.54;

关键字final表示只能对变量赋一次值,其值一旦设定,便不能改。

在Java中,经常希望某个常量可以在一个类中的多个方法中使用,通常将这些常量称为类常量。

可以使用关键字 static final 声明一个类常量( classconstants)。

public static final double CM_PER_INCH=2.54;

运算符

-算术运算符

在java中,使用算数运算符  +   -   *   / 表示加 减 乘 除运算。整数求余操作用%表示。

--结合赋值运算符

可以在赋值中使用二元运算符,例如x+=4;等价于x=x+4;

--自增运算符与自减运算符

java中也提供自增自减运算符,例如int n=12; n++;将n的值改为13.

--关系运算符和boolean运算符

java包含丰富的关系运算符,要检测相等性,可以使用==,可以用!=检测

不相等。还有常使用的<     >    <=   >=   。java沿用了c++的做法,如&&和||等等...

 

运算符的优先级与结合性

优先级 操作符 结合性
1 [ ] . () ( 方法调用) 从左到右
2 ! ~ ++ -- +( 一元) –( 一元) ()( 强制类型转换) new 从右到左
3 * / % 从左到右
4 + - 从左到右
5 << >>( 算术右移) >>>( 逻辑右移) 从左到右
6 < <= > >= instanceof 从左到右
7 == != 从左到右
8 & 从左到右
9 ^ 从左到右
10 从左到右
11 && 从左到右
12 ||  从左到右
13 ?:  从右到左
14 = += -= *= /= %= &= |= ^= <<= >>= >>>= 从右到左

数学函数与常量

数学函数包含在 数学函数包含在Math类中。

– 幂函数

– 三角函数

– 指数函数及它的反函数等

Java还提供了两个常量。 还提供了两个常量。

– Math.PI

– Math.E

若不想在数学方法名和常量名前缀“Math.”,可在源文件顶部加上以下代码即可。

– import static java.lang.Math.*;

类型转换

 

隐式类型转换

大多数的数值转换是遵循优先级的关系自动完成的。

转换原则如下:

如果两个操作数中有一个是double类型的,则另一个将会转换成double类型。

否则,如果两个操作数中有一个是float类型的,另一个将会转换成float类型。

否则,如果两个操作数中有一个是long类型的,另一个将会转换成long类型。

否则,两个操作数都将转换成int类型。

强制类型转换

强制类型转换的语法:(目标类型)变量名

在进行强制类型转换时,当心丢失数据。

例1:double x=9.987;

int nx=(int) x; //转换后 nx=9

例2:若要把一个浮点数转换成与其最接近的数(即

进行四舍五入)需使用Math.round()方法。

double x=9.987;

int nx=(int)Math.round(x); //结果:nx=10

字符串

Java字符串是Unicode字符的序列,它是组织字符的基

本数据结构,用法类似于字符数组。

有内置的字符串类型,而是在标准Java类库中提供了一

个Java 预定义类String。在Java中,字符串被当作对象来处理。

程序中需要用到的字符串可以分为两大类:

– 创建之后不会再做修改和变动的 不可变字符串String 类;

– 创建之后允许再做 更改和变化的构建字符串StringBuilder。

   String类

  String类的构造方法

创建String的一个对象并进行初始化,需要调用类 

String的 的 构造方法,主要有以下创造方法:

① String():创建一个空串

② String (String value)

③ String (char value[])

④ String (char[] ,int startIndex ,int numChars)

⑤ String (byte[] ,byte hibyte)

⑥ String (byte[] ,byte hibyte ,int startIdnex ,intnumChars)

  String类的基本操作

(1) 获得字符串的子串

(2) 串连接(+)

(3) 获取字符串的长度

(4) 检测字符串是否相等

(5) 字符串检索

(6) 字符串与数值的转化

(7) 数值转化为字符

(8) 获得对象的字符串表示

  String 类的API及文档

String 类中包含各类字符串处理的50 多个方法;

使用JDK 在线API文档可以查阅所有标准类及其方法。

-打开浏览器,指向JDK 安装目录下的docs/spi/index.html

StringBuilder类

StringBuilder类的说明

如果需要多个小段字符串连接创建一个字符串时,每次连接字符串时,

都会构建一个新的String对象,既耗时,又浪费空间。

使用StringBuilder类就可以避免这个问题的发生。

步骤:

– StringBuilder builder = new StringBuilder(); ; //create a string builder

– builder.append(ch); //appends a single character

– Builder.append(str); //appends a string

在JDK5.0中引入StringBuilder类,这个类的前身是StringBuffer类。

StringBuilder类的API

(1)分配/ 获取字符串的长度

(2)分配/获取字符串的容量

(3)字符串的检索和子串

(4)字符串的修改

(5)字符串类型转换

 输入输出

  读取输入

通过控制台进行输入时,需要构造一个 通过控制台进行输入时,

需要构造一个Scanner对象,并与“标准输入流”System.in关联。

– Scanner in = new Scanner(System.in);

– 例3-2 InputTest.java p55

Scanner 类定义在java.util包中,因此使用时需将相应的包加载进来。

Scanner 类具体API 见p57。

由于 由于Scanner类输入是可见的,所以不适用于从控制台读

取密码。Java SE 6.0 特别引入Console类实现这个目的。

Console 类具体API 见p57。

  格式化输出

使用System.out.print(x) 将数值x输出到控制台上,

这条命令将以x对应的数据类型所允许的最大非0数字位数打印输出x。

  文件输入与输出

要想对文件进行读取,就需要一个用File对象构造一个Scanner对象。比如:

Scanner in = new Scanner(new File(“myfile.txt”));

要想写入文件,就需要构造一个PrintWriter对象,在构造器中,只需提供文件名

PrintWriter out = new PrintWriter(“myfile.txt”);

   控制流程

Java有5种语句:

1.方法调用语句   2.表达式语句  3.复合语句  4.控制语句  5.packege 语句和import语句

条件语句:if语句  switch语句

循环语句:while       do-while      for

中断控制流程语句:break     contine

(注意:Java 中没有goto语句!!!Java中提供了一种带标签的break语句,用于跳出多重嵌套的循环语句。)

 返回语句:return value

大数值

如果基本的整型和浮点型数据无法达到要求的精度 ,那么可以使用ava.math 包中的两个类,

BigInteger 和BigDecimal。这两个类可以操作任意长的数字。

  BigInteger类实现了任意精度的整数运算

  BigDecimal实现了任意精度的浮点运算

 数组

数组是一种数据结构,它是有序数据的集合,数组中的每个元素的数据类型都是相同的。

对元素的确定是由数组名和它的下标实现的,如a[0] 代表数组a的第一个元素,

a[1] 代表数组a的第二个元素,依次类推。

  数组的声明

一维数组格式:数组元素类型[]  数组名字;

二维数组格式:数组元素类型[][][  数组名字;

float[] boy;   double[] girl;  float[][] a; double[][] b;

与C/C ++不同,Java在数组声明时并不为数组分配内存。

在Java中,数组是独立的类,有自身的方法。

一个数组是一个对象,它由基本数据类型组成。

   数组的创建

数组声明后,要用new运算符为其分配内存空间,分配内存空间时必须指明数组的长度。

如:   boy=new float[5];    int[] age=new int[10];

数字数组创建后,所有数组元素自动初始化为0,不能再更改大小,

boolean 数组创建后数组元素初始化为false;对象数组初始化为null.

一维数组的初始化

int[] smallPrimes = {2, 3, 5, 7, 11, 13};

多维数组的初始化

int[][] magicSquare={  {16, 3, 2, 13 },  {5, 10, 11, 8},{9, 6, 7, 12},{4, 15, 14, 1}  };

  不规则数组 

Java可以使用不规则数组,即数组的每一行有不同的长度

在创建不规则数组时,从最高维开始分别为每一维数组分配空间。

 二 实验部分

1、实验目的与要求

(1)进一步熟悉命令行和IDE两种方式下java程序开发的基本步骤;

(2)掌握Eclipse集成开发环境下导入Java源程序的过程;

(3)掌握Java语言构造基本程序的数据类型、变量、运算符、各类表达式、输入输出、流程控制的基本语法;

(4)掌握String类、StringBuilder类、数组类的用法。

2、实验内容和步骤

实验1:编写java 应用程序,输出以下4个表达式的值。

int i=1;

    double d=1.0;

   (1) 45+45*50%i--

   (2) 1.5*3+d++

   (3) (true)&&(3>4)

   (4) (i>0)||(i<0)

实验2:编写包含以下代码片段的java应用程序,输出字符串类对象s3的值。

String s1=“Hello!”;

String s2=“World”;

String s3=s1+s2;

实验3:更改实验2中s1、s2、s3为StringBuilder类对象,

观察程序运行结果并与实验2结果进行对比,理解String类对象与StringBuilder类对象的区别。

实验4:在命令行方式下调试运行下列程序,理解java应用程序命令行参数的用法。

public class Try {

    public static void main(String[] args){
         if (args[0].equals("-h")) 
            System.out.print("Hello");
        else if (args[0].equals("-g"))
            System.out.print("goodbye,");
          for(int i=1;i<args.length;i++)
            System.out.print("  "+args[i]);
          System.out.println("!");
    }

}

 实验5:Eclipse环境下导入第3章示例程序InputTest.java步骤:

(1) 新建java project如下图:

(2) 选择File->import->File ystem->Next,打开文件导入窗口如下图,点击上方Browse选择导入源程序并选中,

           点击下方Browse选择源程序导入位置为新项目InputTest/src位置后,点击finish完成导入。

(3) 打开InputTest项目src文件夹的缺省包,双击InputTest.java在IDE源程序编辑区打开文件。

(4) 右键单击InputTest.java文件名打开快捷菜单,选择Run as->java application运行此程序,

      结合程序运行结果,理解代码中Scanner类对象用法,掌握java控制台输入方法。

实验6:按照实验5的操作步骤,导入WriteReadFileTest.java示例程序,结合程序运行结果理解程序代码,观察项目文件夹下文件myfile.txt的内容,掌握文件的输入输出操作。

实验7:按照实验5的操作步骤,导入第3章示例程序,每个示例程序从语法、算法两个角度总结学习内容。

(1)测试Retirement.java,    Retirement2.java,    LotteryOdds.java掌握循环控制结构;

(2)测试BigIntegerTest.java,掌握大数值类的用法;

(3)测试LotteryDrawing.java,掌握数组的用法;

(4)测试CompoundInterest.java,掌握多维数组的用法;

(5)测试LotteryArray.java,掌握不规则数组的用法。

 感想:学习了解java的部分基础知识,一步熟悉命令行和IDE两种方式下java程序开发的基本步骤,

掌握Eclipse集成开发环境下导入Java源程序的过程,掌握Java语言构造基本程序的数据类型、变量、运算符、各类表达式、输入输出。

掌握String类、StringBuilder类、数组类的用法。

猜你喜欢

转载自www.cnblogs.com/2017xinghui/p/9608633.html