Java基础语法

来源:互联网 发布:plc编程师工资高吗 编辑:程序博客网 时间:2024/06/14 19:30

0. 关键字

abstractbooleanbreakbytecasecatchcharclasscontinuedefaultdodoubleelseenumextendsfinalfinallyfloatforifimplementsimportinstanceofintinterfacelongnativenewpackageprivateprotectedpublicreturnstrictfpshortstaticsuperswitchsynchronizedthisthrowthrowstransienttryvoidvolatilewhileinterface​​保留字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;elsemin = 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;elsereturn mid;}return -1;}

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

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



原创粉丝点击