Java基本程序设计结构(1)

Java基本程序设计结构(1)

一个简单的应用程序

public class Sample{
    public static void main(String[] args){
    System.out.println("That is a Sample Class");
    }
}

注意事项:
- 源代码文件名必需与公共类名相同,此类的文件名必需为Sample.java
- 一个.java文件中只能有一个公共类

注释

Java一共有三种注释方法,与C++一样,分别是
- 单行注释:使用//在每行开头注释
- 第一种多行注释使用/*开头,*/结尾
- 第二种多行注释使用/**开头,*/结尾

数据类型

整型

Java提供四种整型,如下表所示:

类型 存储长度 取值范围
int 4字节 -2147483648~2147483647
short 2字节 -32768~32767
long 8字节 -9223372036854775808~9223372036854775807
byte 1字节 -128~127

注意:
- 不管在16位、32位、64位机上,java整型的长度始终固定不变 ,这为Java的一份代码,到处执行提供了方便
- 对于long类型,后面有一个后缀L或者l

浮点类型

浮点类型用于表示有小数部分的数值,在Java中有两种浮点类型

类型 存储长度 取值范围
float 4字节 大约±3.40282347E+38F
double 8字节 大约±1.79769313486231570E+308

注意:
- float类型的数值后有一个后缀F或者f,没有后缀的数据被认为是double类型
- 三个特殊的浮点数值:正无穷大、负无穷大、NaN(不是一个数值)。例如:正整数除以0的结果是正无穷大,0/0得到的结果为NaN
- 所有的非数值的值都认为是不相同的,可以使用isNaN方法判断

char类型

char类型用于表示单个字符。有些Unicode字符可以用一个char描述,但有些需要用两个cahr描述

boolean类型

boolean(布尔)类型有两个值:false和true。

注意:
- 布尔值和整型值不可相互转换
- 与C++不同的是,在C++中0相当于false,而非0值相当于true,而Java中则不可以

变量和常量

变量初始化

声明变量后,必需使用赋值语句将变量进行显示初始化,千万不可使用未初始化的变量,例如:

int a;
System.out.print(a)//Error variable not initialized

注意:
在C++中会区别变量的声明和定义
int i=10;是定义,而
extern int i;是声明
而在Java中,并不会区分变量的声明和定义

常量

在Java中使用关键字final定义常量,如

final double PI=3.14

凡是使用final定义的变量只能赋值一次,一旦被赋值后就不能再更改了。

运算符

算数运算符

使用算术运算符+、-、 *、/ 表示加、减、 乘、 除运算。 当参与 / 运算的两个
操作数都是整数时, 表示整数除法;否则, 表示浮点除法。 整数的求余操作(有时称为取模)
%表示。 例如, 15/2 等于 7, 15%2 等于 1, 15.0/2 等于 7.5。

注意:
整数被 0 除将会产生一个异常, 而浮点数被 0 除将会得到无穷大或 NaN 结果。

数值类型转换

默认类型转化

  • 如果两个操作数中有一个是 double 类型, 另一个操作数就会转换为 double 类型。
  • 否则, 如果其中一个操作数是 float 类型, 另一个操作数将会转换为 float 类型。
  • 否则, 如果其中一个操作数是 long 类型, 另一个操作数将会转换为 long 类型。
  • 否则, 两个操作数都将被转换为 int 类型。

强制类型转化

在圆括号中给出想要转换的目标类型,后面紧跟待转换的变
量名。

其他运算符

如下:
- 结合赋值和运算符,如:+=、*=、/=
- 自增和自减运算符,++、–
- 关系运算符,如:==、!=
- 逻辑运算符,如:&&、||
- 三目运算符,condition ? expression1 : expression2
- 位运算符,& (“and”) | (“or”) A (“XOr”) ~ (“not”)

字符串

Java提供String类定义字符串

字符串定义

String greeting=“Hello”;

子串

String s=greeting.substring(0,3);

得到的结果s为"Hel"

拼接

可以使用+拼接两个子串

检测字符串是否相等

与C++不同的是,Java不可以使用过==判断字符串是否相等,而应该使用字符串的equals方法检测

String API

Java中的String类包含了50多个方法,常见的有:
- char charAt (int index)
返回给定位置的代码单元。除非对底层的代码单元感兴趣, 否则不需要调用这个
方法。
- int codePointAt(int Index)
返回从给定位置开始的码点。
- int offsetByCodePoints(int startlndex, int cpCount)
返回从 startlndex 代码点开始,位移 cpCount 后的码点索引。
- int compareTo(String other)
按照字典顺序, 如果字符串位于 other 之前, 返回一个负数;如果字符串位于 other 之
后,返回一个正数; 如果两个字符串相等,返回 0。
- IntStream codePoints()
将这个字符串的码点作为一个流返回。调用 toArray 将它们放在一个数组中。
- new String(int[] codePoints, int offset, int count)
用数组中从 offset 开始的 count 个码点构造一个字符串。
- boolean equals(0bject other)
如果字符串与 other 相等, 返回 true。
- boolean equalsIgnoreCase( String other )
如果字符串与 other 相等 (忽略大小写,) 返回 tme。
- boolean startsWith( String prefix )
- boolean endsWith( String suffix )
如果字符串以 suffix 开头或结尾, 则返回 true。
- int indexOf ( String str )
- int indexOf( String str, int fromlndex )
- int indexOf ( int cp)
- int indexOf( int cp, int fromlndex )
返回与字符串 str 或代码点 cp 匹配的第一个子串的开始位置。这个位置从索引 0 或
fromlndex 开始计算。 如果在原始串中不存在 str, 返回 -1。
- int lastIndexOf( String str )
- Int lastIndexOf ( String str, int fromlndex )
- int lastindexOf( int cp)
- int lastindexOf( int cp, int fromlndex )
返回与字符串 str 或代码点 cp 匹配的最后一个子串的开始位置。 这个位置从原始串尾
端或 fromlndex 开始计算。
- int length( )
返回字符串的长度。
- int codePointCount( int startlndex, int endlndex ) 5.0
返回 startlndex 和 endludex-l 之间的代码点数量。没有配成对的代用字符将计入代码点。
參 String replace( CharSequence oldString,CharSequence newString)
返回一个新字符串。这个字符串用 newString 代替原始字符串中所有的 oldString。可
以用 String 或 StringBuilder 对象作为 CharSequence 参数。
- String substring( int beginlndex )
參 String substring(int beginlndex, int endlndex )
返回一个新字符串。这个字符串包含原始字符串中从 beginlndex 到串尾或 endlndex-l
的所有代码单元。
- String toLowerCase( )
參 String toUpperCase( )
返回一个新字符串。 这个字符串将原始字符串中的大写字母改为小写,或者将原始字
符串中的所有小写字母改成了大写字母。
- String t r i m( )
返回一个新字符串。这个字符串将删除了原始字符串头部和尾部的空格。
- String join(CharSequence delimiter, CharSequence… elements )
返回一个新字符串, 用给定的定界符连接所有元素。

构建字符串

有些时候, 需要由较短的字符串构建字符串, 例如, 按键或来自文件中的单词。采用字
符串连接的方式达到此目的效率比较低。 每次连接字符串, 都会构建一个新的 String 对象,
既耗时, 又浪费空间。使用 StringBuildei •类就可以避免这个问题

  • 构建一个新的字符串构建器
StringBuilder builder=new StringBuilder();
  • 使用append添加内容
builder.append("hello");

常用方法如下:
• StringBuilder()
构造一个空的字符串构建器。
• int length()
返回构建器或缓冲器中的代码单元数量。
• StringBuilder append(String str)
追加一个字符串并返回 this 。
• StringBuilder append(char c)
追加一个代码单元并返回 this。
• StringBuilder appendCodePoint(int cp)
追加一个代码点,并将其转换为一个或两个代码单元并返回 this 。
• void setCharAt(int i ,char c)
将第 i 个代码单元设置为 c。
• StringBuilder insert(int offset,String str)
在 offset 位置插入一个字符串并返回 this。
• StringBuilder insert(int offset,Char c)
在 offset 位置插入一个代码单元并返回 this。
• StringBuilder delete(int startindex,int endindex)
删除偏移量从 startindex 到endindex-1 的代码单元并返回 this。
• String toString()
返回一个与构建器或缓冲器内容相同的字符串

猜你喜欢

转载自blog.csdn.net/weixin_38312031/article/details/80775157