关键字,标识符,变量,运算符,程序流程控制,数组

关键字

所有字母都为小写

保留字

标识符

java中的名称命名规范

包名:多单词组成时所有字母都小写:xxxyyyzzz

类名,接口名:多单词组成时,所有的首字母大写:XxxYyyZzz

变量名,方法名:多单词组成时,前一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz

常量名:所有字母都大写,多单词时每个单词用下划线连接:XXX_YYY_ZZZ

变量

先声明后使用

数据类型  变量名 =初始化值

变量的分类

  1. 基本数据类型
  2. 引用数据类型

变量之间的运算

  •        自动类型转换 :容量小的自动转换为容量大的
  •        强制类型转换:容量大的转换为容量小的,要使用强制类型转换符()

运算符

算术运算符  :+ - * /    ++a 先自增再运算 a++ 先运算再自增

赋值运算符:+=   -=   *=    /=   %=

比较运算符:==    !=   <     >    <=     >=    instanceof(检查是否是类的对象y)

逻辑运算符:& 逻辑与      && 短路与       |   逻辑或      ||  短路或   !      逻辑非     ^ 逻辑异或

位运算符: <<   左移  >>    右移   >>>    无符号右移   ^    异或运算    ~   反码

三元运算符:条件表达式 ?   表达式1:  表达式2    表达式1,2得保持数据类型一致

流程控制

分支结构

  1. if-else      
  2. switch-case

           switch(变量){

         case 值1:

         break; 

        case 值2:

        break;

         case 值3: 

        break;

        degault:

        break;

break:跳出当前循环,变量可以取:char byte short  int 枚举 String(jdk1.7)

循环结构

  1.while循环

  while(条件){

          //循环语句

    }

   条件:可以是beelan类型的值,变量和表达式,还可以是一个结果为boolean的方法

2.do-while循环

  do{

     //循环操作语句

 }while(循环条件);

3.for循环

for(表达式1;表达式2;表达式3){

      循环操作;

} 
表达式1:参数初始化
表达式1:条件判断
表达式1:更新循环变量

 三个表达式都可以省掉    表达式2省掉会出现死循环 ,   表达式3会导致条件永远成立形成死循环

 

 数组

作用:  存储相同数据类型的一组数据

      对同类型数据进行集中管理,比如存储和遍历

数组的声明

  数组类型[ ]  数组名;

声明并创建数组

  数据类型 [ ]  数组名=new 数据类型[大小]

初始化数组

方法1:(静态初始化)边声明边赋值

int[ ] score={66,67,68}

int[ ] score=new int[ ]{66,67,68}

方法2:(动态初始化)

常用数组查找法

线程查找法

二分查找法   取下标中间值

常用数组排序算法

冒泡排序:   比较相邻的元素

选择排序法

插入排序法

 

 Arrays类用法

package com.tanlei.newer.shuzu;

import java.util.Arrays;

/**
 * @author tanlei
 *
 */
public class ArraysUtilDemo {
   public static void main(String[] args) {
	int [] arrays= {1,3,4,5,6,2};
	//数组拷贝
	int [] arrays2=Arrays.copyOf(arrays, 10);
	for (int i = 0; i < arrays2.length; i++) {
		System.out.println(arrays2[i]);
	}
	System.out.println("*****************************");
	//拷贝指定数组中的指定范围内的数据
	int[] arrays3= Arrays.copyOfRange(arrays, 4, 5);
	for (int i = 0; i < arrays3.length; i++) {
		System.out.print(arrays3[i]);
	}
	System.out.println("*****************************");
	//比较两个数组是否相等
	int[] arrays4= {1,2,4,3,5};
	boolean flag=Arrays.equals(arrays, arrays4);
	System.out.println(flag);
	//数组填充
	int[] arrays5= new int[10] ;
	Arrays.fill(arrays5,2,5,6);
	for (int i = 0; i < arrays5.length; i++) {
		System.out.println(arrays5[i]);
	}
	//对数组进行排序
	Arrays.sort(arrays5,2,6);
	for (int i = 0; i < arrays5.length; i++) {
		System.out.print(arrays5[i]);
	}
	//二分法查找(下标)
	int index=Arrays.binarySearch(arrays5, 3);
	System.out.println(index);
	System.out.println("*****************************");
	//使用System这个类的方法来拷贝数组从o开始拷5个 从数组第三个下标起
	int[]arraydeo5=new int[10];
	System.arraycopy(arrays2, 0, arraydeo5, 3, 5);
	for (int i = 0; i < arraydeo5.length; i++) {
		System.out.println(arraydeo5[i]);
	}
}
}  

二维数组

声明

int[ ] [ ]  arr=new int[10 ][ ]

int[ ] [ ]  arr=new int[10 ][20 ]

一维数组决定大小

初始化

int[ ] [ ]  arr={{1,2},{2,3}};

动态初始化

String [ ] [ ] arr=new Strng[3][ ];

arr[0]=new String[2]

arr[1]=new String[3]

arr[2]=new String[4]

 

杨辉三角形

package com.tanlei.newer.shuzu;

public class YanHui {
   public static void main(String[] args) {
	 //声明一个8行8列的数组
	 int row=8;//行数
	 int [] [] p=new int[row][row];
	 for(int i=0;i<row;i++) {
		 for (int j = 0; j <=i; j++) {
			//判断第一列和对角线列的元素值为1
			 if(j==0||j==i) {
				 p[i][j]=1;
			 }else {
				//其他元素的值取正上方和左上方的和
				 p[i][j]=p[i-1][j]+p[i-1][j-1];
			}
		}
	 }
	 //打印输出
	 for (int i = 0; i < row; i++) {
		for (int j = 0; j <row; j++) {
			System.out.println(p[i][j]+" ");
		}
		System.out.println();
	}
}
}

  

 

posted @ 2018-11-05 00:43  言西早石头侠  阅读(213)  评论(0编辑  收藏  举报