Java基础语法

0. 关键字

abstract boolean break byte case
catch char class continue default
do double else enum extends
final finally float for if
implements import instanceof int interface
long native new package private
protected public return strictfp short
static super switch synchronized this
throw throws transient try void
volatile while interface
保留字goto和const. (保留字的意思是说, Java现在还未使用这两个单词作为关键字, 但可能在未来的版本使用.)
三个特殊的直接量 true, false和null.


1. 标识符命名规则: 可以由26个字母大小写, 数字符号, 下划线_, 美元符号$组成. 且数字不能开头,不能使用关键字作为标识符. 


2. Java中的名称规范:

  • * 包名: 多单词组成时所有字母都小写. 
  • 类名和接口名: 多单词组成时, 所有单词的首字母大写. 
  • 变量名和函数名: 多单词组成时, 第一个单词首字母小谢, 第二个开始每个单词首字母大写. 
  • * 常量名: 所有字母都大写. 多单词是每个单词用下划线连接. 如XXX_YYY_ZZZ

3. 注释形式. 
  • 单行注释. //注释文字
  • 多行注释. /* 注释文字 */
  • 文档注释. /** 注释文字 */


4. 注释类型解释. 

  • 单行和多行注释, 被注释的文字, 不会被JVM解释执行. 
  • 文档注释是java特有的注释, 注释内容可以被JDK提供的javadoc工具解析, 生成一套网页文件形式存在的说明文档. 

5. 变量定义格式: 数据类型 变量名 = 初始化值; 

6. Java是强类型语言, 每种数据都定义了明确的具体数据类型, 在内存中分配了不同大小的内存空间. 


其中, byte占1字节, short占2字节, int占4字节, long占8字节; float占4字节, double占8字节; char占2字节; boolean占1位. 

7. 表达式的数据类型自动提升
  • 所有byte型/short型/char型的值将被提升到int型. 
  • 如果一个操作数是long型, 计算结果就是long型. 
  • 如果一个操作数是float型, 计算结果就是float型. 
  • 如果一个操作数是double型, 计算结果就是double型. 

8. 取模可以作用于整数也可以作用于浮点数. 取模运算有负数存在时, 所得结果的正负符号与%左侧的相同. 

9. 逻辑运算符. 


10. 位运算符. 


11. if(...), 条件表达式无论写成什么样子,只看最终的结构是否是true或者false. 其他不行. 

12. 函数: 函数就是定义在类中的具有特定功能的一段独立小程序. 函数也叫方法. 

13. 函数中只能调用函数, 不可以在函数内部定义函数. 

14. 函数的重载(Overload): 在同一个类中, 若干个同名函数只要参数个数或者参数类型不同即为重载, 如返回值类型无关. 

15. 数组是同一种类型数据的集合(其实数组就是一个容器). 

16.* 内存结构: Java程序运行时, 需要在内存中分配空间. 为了提高运行效率, 对空间进行了不同区域的划分, 每片区域都有特定的处理数据方式和内存管理方式. 
  • 栈内存: 存储局部变量, 当数据使用完, 所占空间自动释放. 
  • 堆内存: 数组的对象, 通过new建立的实例都存放在堆内存中. 每一个实体都有内存地制值. 实体中的变量都有默认初始化值. 如果实体不再被使用, 会在不确定的时间被垃圾回收器回收. 

17. 获取数组中的最大和最小值.
public class Test {		
		
		
		public static int getMax(int[] arr)		//获取最大元素
		{
			int max = arr[0];
			for(int x=1; x<arr.length; x++)
			{
				if(arr[x]>max)
					max = arr[x];
			}
			return max;
		}
		
		public static int getMin(int[] arr)		//获取最小元素
		{
			int min = arr[0];
			for(int x=1; x<arr.length; x++)
			{
				if(arr[x]<min)
					min = arr[x];
			}
			return min;
		}
		
		public static void main(String[] args)
		{
			int[] arr = {5,1,6,4,2,8,9};

			System.out.println(getMax(arr));
			System.out.println(getMin(arr));
		}
}

18.选择排序: 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序的序列中继续找到最值, 放到剩余的起始位置, 直至全部排序完成. 
public static void selectSort(int[] arr)
	{
		//升序
		for(int x=0; x<arr.length-1; x++)
		{
			for(int y=x+1; y<arr.length; y++)
			{
				if(arr[x] > arr[y])
				{
					int tmp = arr[x];
					arr[x] = arr[y];
					arr[y] = tmp;
				}
			}
		}
	}

19.冒泡排序 : 相邻的两个元素进行比较, 如果符合条件, 换位. 
public static void bubbleSort(int[] arr)
	{
		//升序
		for(int x=0; x<arr.length-1; x++)
		{
			for(int y=0; y<arr.length-x-1; y++)
			{
				if(arr[y] > arr[y+1])
				{
					int tmp = arr[y];
					arr[y] = arr[y+1];
					arr[y+1] = tmp;
				}
			}
		}
		
	}

20. 效率最高的是希尔排序. 

21. 折半查找 : 也叫二分查找BinarySearch. 操作有序数组. 将key值与数组最中间的元素比较, >则继续与数组前半部分的最中间的元素比较, 直到比较完毕. 
public static int BinarySearch(int[] arr, int key)
	{	
		//操作升序数组
		int min = 0;
		int max = arr.length-1;
		int mid = (min+max)/2;
		
		while(key != arr[mid])
		{
			if(key<arr[mid])
				max = mid-1;
			else
				min = mid+1;
			
			if(min>max)
				return -1;
			mid = (max+min)/2;
		}
		return mid;
	}
	
	public static int BinarySearch_2(int[] arr, int key)
	{
		//操作升序数组
		int min = 0;
		int max = arr.length-1;
		int mid = (min+max)/2;
		
		while(min<=max)
		{
			if(key<arr[mid])
				max = mid-1;
			else if(key>arr[mid])
				min = mid+1;
			else
				return mid;
		}
		return -1;
				
	}

======================================
问题:
System.out.println('a')和System.out.println('a'+1)的区别.
答: 前者输出字符a, 后者对'a'自动类型转换成int型后加1, 输出98. 
======================================
老毕说:
* 代码仅仅是思想的一种体现形式而已. 

======================================



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值