• 150403

    文章

  • 892

    评论

  • 13

    友链

  • 最近新加了换肤功能,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

Java基本程序设计结构


简述

Java起源于Sun公司为机顶盒开发的一款开发语言“Oak”,由于该名称被抢注更名为“Java”。Java是基于面向对象的开发语言,其特性在于“一次编译,到处运行”,这实现依赖于JVM。


Java程序基本设计

一个基本的Java程序由以及该类程序主入口组成:

public class HelloWorld{
	public static void main(String[] args){
		System.out.println("Hello World!"); //Hello World!
	}
}

HelloWorld解释,如上面代码所示:

  • public:访问修饰符(access modifier),控制其他程序访问的级别,public就是公开,任意类都能访问
  • class:class关键字用于申明类,后面跟着类名
  • {}:俗称块,HelloWorld{}也叫类块。main(String[] args){} 也叫方法块
  • main方法,标识该类的主程序入口。main方法是固定的。
  • System.out 是一个类,println是一个方法,"HelloWorld!"是使用该方法的参数,即:调用System.out类println方法参数是HelloWorld!
  • “;” 终止符,用在方法后面表示一个方法已经使用完毕。 用在变量后面表示一个变量已经声明。用在一个流程中,表示流程结束

规范

  1. 声明规范
    1. class 后面紧随类名
    2. 任何类都必须要有 {}
    3. main方法格式固定
    4. 每个方法的参数都必须声明在()内部
  2. 使用规范
    1. 静态方法由 类名.方法名
    2. 使用带参数方法。通过()来置入参数,System.out.println(字符串参数)
    3. 方法使用完毕要用“;”来终止
  3. 命名规范
    1. 采用骆驼命名规范
    2. 由多个单词命名的类,每个单词首字母大写。例如:CamelCase
    3. $_字母开头后面跟着字母数字$_
public class HelloWorld{
	public static void main(String[] args) {  
		String x;  
		String $1;  
		String _1;  
		String $_a;  
		String $_abcd123;  
		String abcd123;  
	}
	
	class A{}
	
	class B1{}
	
	class _C{}
	
	class $C1{}
	
	class $C1_{}
}
  1. 注释规范
//单行注释

/*
多行注释
*/

/**
文档注释
*/

Java数据类型

java 是一种强类型语言,要为每一个变量声明一种类型。在java中一共有8中基本类型(primitive type)分别是:byte、short、int、long、float、double、char、boolean

整数类型

类型 取值范围
byte -128 ~ 127(-2的7次方 ~ 2的7次方-1)
short -32768 ~32767(-2的15次方 ~ 2的15次方-1)
int -2147483648 ~ 2147483647(-2的31次方 ~ 2的31次方-1)
long -9223372036854775808 ~ 9223372036854775807(-2的63次方 ~ 2的63次方-1)
byte bNum = 10;
short sNum = 10;
int inum = 10;

//long也叫长整形,一般会在声明的数值后面添加L或者l(小写L,不推荐使用小写L,很难分辨出这是1,还是l)。
long lNum = 10L;

/**
注意:
1.数值默认使用 int 作为类型,当使用byte作为类型时是隐式的转换,类似:
byte bNum = (byte) 10;
short sNum = (short)10;

2.面对长整数时可以使用“_”来分割数字,在编译时会去除下划线,类似:
long lNum = 1_000_000_000L;

3.java程序保留了 二进制,八进制,十六进制的使用,如下:
int x = 0b1001;  //9
int x = 010; // 8 
int x = 0x10; //16
*/

浮点数

类型 存储需求 取值范围
float 4字节 大约±3.402 823 47E+38F(有效位数为6 ~ 7位)
double 8字节 大约±1.797 693 134 862 315 70E+308 (有效位数为15位)
float fNum = 0.125F;
double dNum = 0.30D;

/**
默认都是double类型的浮点数,如果需要声明为float,需要在值添加f。
*/

char类型

char x = 'A';//需要用 引号括起来

boolean

boolean x = true;
x = false;

//布尔类型,用于描述true | false,用于逻辑判断

变量常量

//类型_空格_变量名_赋值_符号值_终止符;(分号)

//变量
int x = 10;

//静态变量
static int STATIC_X = 10;

//常量
final int fx = 10;

//类常量
static final int MAX_NUMBER = 10;

/**
变量初始化后,值可变。
静态变量,声明在一个类中,命名全大写,值可变
常量初始化后,值不可变。
*/

运算符

Java中,算数运算符有:+、-、*、/ 表示加减乘除。 当参与 / 运算的两个操作数都是整数,表示是一个整数除法;否则表示浮点数除法。整数的求余(取模)使用 % 来完成。

二元运算符:x += 2 等价于 x = x + 2,一般的运算符要放在 = 左边,例如 *=, /=,-= 如果运算符得到一个值与左侧操作数类型不同时,会发生强制转换。 x += 3.5 是合法的 (int)(x + 3.5)

自增自减运算符:++,--,这两种运算符区分前缀,后缀。

int m = 7;
int n = 7;

int a = 2 * m++; // a = 14, m = 8
int b = 2 * ++n; // b = 16, n = 8

关系和boolean运算符

boolean x = 3==7; //或者 3!=7,返回true 或者 false

boolean x = 3 > 7 || 3 < 7 || 3 >= 7 || 3 <= 7;

/**
	&& 逻辑与,& 与运算
	|| 逻辑或,| 运算
	! 逻辑非运算。
	&&表示短路与,|| 表示短路或
*/
expression1 && expression2。两者为true 才为 true
expression1 || expression1。两者为false才为false,只要有一个true就继续往下执行
!expression。逻辑非运算符,true、false互变

//三目运算符:
condition ? expression : expression2;
x > y ? 1 : 0;

int x = 1 > 2 ? 0 : 1; //x等于1

位运算符

&("and") | ("or") ^ ("xor") ~ ("not")

"">>"" 左移N位

""<<" 右移N位

"">>>" 不带符号右移N位

高位补0

运算符级别

运算符 结合性
[].() 从左向右
! ~ ++ -- + (一元运算) -(一元运算)()(强制转换)new 从右到左
* / % 从左到右
+ - 从左到右
<< >> >>> 从左到右
< <= > >= instanceof 从左到右
== != 从左到右
& ^ | 从左到右
&& || 从左到右
?: 从右到左
= += -= *= /= %= &= |= ^= <<= >>= >>>= 从右到左

字符串:String

字符串也就是通过双引号括起来的字符,String x = "ABCD"; 字符串创建的值都是不可变的,如果需要更改字符串的值,可以使用StringBuilder 和 StringBuffer。

字符串常用方法:

x.equals("字符串");比较字符串值是否相等。x == y 比较两者内存地址是否相同

boolean equals(String x); 两个字符串值是否相同
boolean equalsIgnoreCase(String other);忽略大小写比较连个字符串是否相同
boolean startsWith(String prefix); 是否前缀为该字符串
boolean endsWith(String suffix);是否结尾为该字符串
int indexOf(String str);检查str在当前字符串的位置,从0开始到下标,没有返回-1
int lastIndexOf(String str);检查str在字符串最后的位置,从结尾开始匹配,没有则返回-1
int length();获取字符串长度
String substring(int beginIndex);从指定开始获取到结尾并返回子字符串
String substring(int beginIndex, int lastIndexOf);指定开始结束的字符串截取并返回
String trim();去除开头结尾的空白
String toUpperCase();全部转大写
String toLowerCase();全部转小写

控制流程

单条件语句,结果if(true)执行ifstatement,否则执行elstatement
if(condition){
	ifstatement
}else{
	elstatement
}

多条件语句
if(condition){
	statement
}else if(condition){
	statement
}else{
	statement
}

循环
while循环条件为真则循环,直到循环条件为false
while(condition){
	statement
}

do-while循环,至少循环一次。检测循环条件为false则停止,否则循环
do{
	statement
}while(condition);

确定循环
for(initialize;condition;increment);

for(int i = 0; i < 10; i++){
	System.out.println(i);
	
	/**
	0,i == 1
	1,i == 2
	2,i ==3
	3,i == 4
	4,i == 5
	5,i == 6
	6,i == 7
	7,i == 8
	8, i == 9
	9, i == 10
	由于 10 < 10 为false,循环终止
	*/
}

多重选择
如果case 后面跟着的数字是 x,则执行case中的statement,如果case不使用break结束该控制,则一直往下执行,直到break或switch结束。
例如 x = 10,则从case 10执行成功后,执行case 11, case 12,直到default的break才终止
default表示默认,如果都没匹配,则执行default中的语句块
switch(x){
	case 1:
		System.out.println("1")
		break;
	case 10:
	case 11:
	case 12:
	default:
		break;
}


break关键字可以用结束循环,结束控制。例如:
while(true){
	break;
} 该程序本来该一直循环,但是有break,则会断开循环。避免了这种情况

for(int i = 0; i < 10; i++){
	if(i == 3) break;
} 当 i == 3的时候,终止循环

int x =10;
do{
	if(--x == 3){
		break;
	}
}  先对x减一,如果x == 3,终止循环


lable:statements
label(标签)块,用于对一个块进行控制。例如:
int size = 100;
read_data:
	while(true){
		if(--size == 30){
			break read_data;
		}
	} read_data块相当于是while循环,break只会终止read_data块

也可以这样用,表示x只在read_data块使用:
read_data:{ int x = 10; }


数组

int[] x; 声明x变量为int数组,使用[]表示是一个数组,有两种声明方式 int[] x; int x[]; 一般使用前面那种,后面那个因为和变量名放到一起有时不好分辨是不是变量名
基本数据类型的数组,会有默认值。int[]的所有元素都是0

String[] str = new String[size]; size也就是数组的大小,表示该数组内一共可容纳多少个字符串,数组内的每个字符串默认为null,对象数组默认都是为null

int[] num = {1,2,3};声明num为int数组,有3个元素,分别是1,2,3。这种是带初始化的数组声明

多维数组:
int[][] mn = new int[3][2];声明2维数组,通过mn[0][0]能拿到第一个组的第一个元素,以此类推

数组工具类:Arrays
static 	String toString(type[] a);返回包含a中数据元素的字符串,这些数据元素被放在{}内并用逗号分隔,{1,2,3}

static type copyOf(type[] a, int length);复制一个数组,指定复制个数
static void sort(type[] a);对数组进行排序
static int binarySearch(type[] a, type v);对数组使用二分法进行排序
static boolean equals(type[] a,type[] b);检查两个数组是否相同






695856371Web网页设计师②群 | 喜欢本站的朋友可以收藏本站,或者加入我们大家一起来交流技术!

0条评论

Loading...


发表评论

电子邮件地址不会被公开。 必填项已用*标注

自定义皮肤 主体内容背景
打开支付宝扫码付款购买视频教程
遇到问题联系客服QQ:419400980
注册梁钟霖个人博客