黑马程序员学习日记--java编程基础

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------


一:关键字,常量,变量,运算符

关键字:被java赋予特殊含义的单词

特点:都是英文小写

标识符:由26个英文字母,数字0~9,符:-$组成

特点:标识符首字母必须是字母或符号

(Java严格区分大小写)

Java中的命名规范:

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

eg:xxxyyyzzz

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

eg:XxxYyyZzz

变量名和函数名:

多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写

eg:xxxYyyZzz

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

eg:XXX_YYY_ZZZ

Java中常量的分类:

整数常量,小数常量,布尔型常量,字符常量,字符串常量,null常量。

进制:

十进制:逢十进一

八进制:逢八进一,用0开头表示

十六进制:逢十六进一,用0x开头表示

进制的转换:

十进制-->二进制:对十进制数进行除二运算

二进制-->十进制:对二进制数进行取幂求和

负数的二进制表现形式:对应的整数二进制数取反加一(负数的二进制数最高位都是一)

变量:就是将不确定的数据进行存储,也就是在内存中开辟一个空间

运算符:

比较运算符instanceof:检查是否是类的对象

eg: "Hello" instanceof String  结果为true

逻辑运算符:用于连接boolean类型的表达式

&:无论左边是真是假,右边都运算

&&:左边为假时,右边不运算

(|与||同理)


二:流程控制与函数

程序流程控制:

判断结构,选择结构,循环结构

Swith语句:

switch语句选择的类型只有四种:byte,short,int,char

case与default之间没有顺序,先执行第一个case,没有匹配的case执行default;

结束switch语句的两种情况:遇到break;执行到switch语句结束。

无限循环的最简单表现形式:

for(;;){}

while(true){}

累加思想:通过变量记录操作后的结果,通过循环的形式进行累加操作。

计数器思想:通过一个变量记录数据的变化状态,通过循环完成

break:跳出循环   应用范围:选择结构和循环结构

continue:结束本次循环   应用范围:循环结构

(标号:可以让上面两个语句作用于指定的范围)

函数:定义在类中的具有特定功能的一段独立小程序,也成为方法。

(函数中只能调用函数,不能在函数内部定义函数)

函数的重载(overload):

概念:在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。

特点:与返回值无关,只看参数列表。


三:数组

内存结构:

Java程序在运行时,需要在内存中分配空间,为了提高运算效率,有对空间进行了不同区域的划分,每一个区域都有特定的处理数据方式和内存管理方式。

栈内存:用于储存局部变量,当数据使用完,所占空间会自动释放

堆内存:

数组和对象,通过new建立的实例都存在于堆内存中

每一个实体都有内存地址值

实体中的变量都有默认初始化值

实体不再被使用,会在不确定的时间内被垃圾回收站回收

方法区,本地方法区,寄存器

数组:

格式一:元素类型【】 数组名 = new 元素类型【元素个数】;

格式二:元素类型【】 数组名 = new 元素类型【】{元素1,元素2,....};

length:获取数组元素个数  使用方法:数组名.length

二维数组:

格式一:int[ ] [ ] arr = new int [3][5];

格式二:int[ ] [ ] arr = new int [3][ ];   (每个一维数组默认初始化值为null,可以对三个一维数组分别初始化)


附:冒泡排序练习

class J3_1 
{
	/*
	需求:在冒泡排序中去除数组元素间多余的交换操作
	思路:	以升序为例
			1,n维数组的冒泡排序要有n-1次冒泡
			2,每次冒泡中只需要一次数组元素的交换
			3,定义变量记录每次冒泡中最大数的元素序列号,比较完后做两个数的交换
	*/
	public static void main(String[] args) 
	{
		int [] arr = {5,3,19,2,1,45,64,33};
		System.out.println("原数组:");
		arrPrint(arr);
		arrSort(arr);
		System.out.println("排序后数组:");
		arrPrint(arr);
	}
	//排序函数
	public static void arrSort(int [] a)
	{
		for(int i=0;i<a.length-1;i++)
		{
			//定义变量max记录每次冒泡最大值的序号,初值为0
			int max = 0;
			for(int j=1;j<a.length-i;j++)
			{
				//依次将元素与最大值比较,若该元素比当前最大值大,将它的序号赋给max
				if(a[max]<a[j])
					max = j;
			}
			//定义变量k记录每次冒泡中的最后一个比较数的序号,若max!=k,则将这两个下标对应的元素交换
			int k = a.length-i-1;
			if(k != max)
			{
				int temp = a[k];
				a[k] = a[max];
				a[max] = temp;
			}
		}
	}
	//定义一个功能,将数组遍历输出
	public static void arrPrint(int[] a)
	{
		for(int i = 0;i<a.length;i++)
		{
			if(i!=a.length-1)
				System.out.print("a["+i+"]="+a[i]+',');
			else
				System.out.println("a["+i+"]="+a[i]);
		}
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值