java概述~至数组
java概述
1. Java是gaosiling开发的编程语言
2. Java的三种架构是:
- JavaEE :java PlatForm Enterprise Edition企业级开发应用
- JavaSE :Java Platform Standard Edition 标准版的应用开发平台
- JavaME: Java Platform Micro Edition 微小板的应用开发平台
3. jre和jdk的关系
- jdk: java Development Kit = jre+kit
- jre: java runtime enviroment
4.为什么要配class,和classPath
配置classpath后那么Java虚拟机会再指定的文件夹目录下查找配置文件
path是设置dos命令下面的命令要去哪里查找。而Java如果没有配着环境变量, 那么再dos窗口下输入javac命令就会报错
java语法基础
- 关键字:就是Java赋予特殊含义的单词
- 标识符: 就是程序中自定义的名词。比如:类名,变量名,函数名
- 数字不可以开头
- 不可以使用关键字
- 由数字, 字母, $, 下划线 组成
- 常量: 是指再程序中不会变化的量
- 变量:内存中的一个存储空间 ,用于存储常量数据。
- 作用: 方便于运算。 因为有些数据不确定。所以确定数据的名词(变量名)和变量名上的存储空间
- 特点:变量空间可以重复使用
- 什么时候定义变量: 只要数据不确定的时候就可以定义变量
5. 变量需要什么?
- 变量类型, 变量名称, 变量初始化
6.变量的作用域和生命周期:
作用域: 开始在定义的位置开始, 到最近的大括号结束。
离开作用域,未必会被清理,因为内存未必会满, 所以垃圾回收器未必会被调用
7. 运算符号:
- 算术运算符:+ - * / %
- 连接符号: +
- 赋值运算符: =
- 比较运算符:
特点: 结果要么是true要么是false- 逻辑运算符:& | ^ ! && ||
8. & 和&&:
&不论左边结果什么,右边都将参与计算,而&& 如果左边为假,右边不参加计算。 | 和|| 的区别:与上面类似,换成左边为真
9.控制语句:
if, switch, do...while, while, for
if在判断固定值的时候用。
switch在判断多个值的时候用。
do...while是先执行后判断循环条件的循环。
while是先判断后循环
for是由下标进行控制循环的次数
ps: switch中有一个default:不论在什么时候它默认都会执行。
10. break,continue,retrun的区别:
continue跳出一层循环, break跳出所有循环, return跳出方法
- 函数: 为了提高代码的复用性,可以将其定义成一个单独的功能
定义格式:
执行语句;
return 返回值;
}
函数作用:
- 定义功能
- 用于封装代码提高代码的复用性。
主函数:
- 保证该类的独立运行
- 因为它是程序的入口
- 它可以在类中进行测试。
函数定义名称是为什么?
- 为了对该功能进行标识
- 为了通过名称就可以明确函数的功能, 提高代码的阅读性。
12. 重载的定义是:
- 在一个类中, 函数名称相同, 但是函数签名不同, 则被称为重载。
13. 数组:
用于存储同一类型的数据的容器
好处: 可以通过下标操作一组数据
元素类型[] 变量名 = {元素1, 元素2, 元素3}
元素类型[] 变量名 = new 元素类型 {元素1, 元素2, 元素3...}
//二分查找法:
public static int halfSeacher_2(int[] arr, int key)
int min, max, mid;
min = 0;
max = arr.length-1;
mid = (max + min ) / 2
while(arr[mid] != key){
if(key>arr[mid]){
min = mid +1;
}else if(key < arr[mid]){
max = mid-1;
}
}
//选择排序,选最小的放在左边
for(int i = 0;i<arr.length;i++){
for(int j= 1 ; j<arr.length;j++){
if(arr[j-1]>arr[j]){
int temp = arr[j];
arr[j] = arr[j-1];
arr[j-1] = temp;
}
}
}
//冒泡排序
for(int i=0; i<arr.length-1;i++){
for(int j=0; j<arr.length-1-i; j++){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
4个内存相关, 一个重要术语(java思想中的):
方法区:
方法区主要存储一些静态数据(比如string类型,方法区中有个静态常量池,一般用String a = "xxx"格式的时候就会存在里面,这个时候String b = "xxx",会直接用存在常量池里面的值, 于是所以String a, b都等于同一个数值,比较起来也会是为true)
堆: 存放引用数据
堆栈:基本数据类型都在里面
本地方法栈: 对应native方法-》java 中会用本地方法访问c或者c++语言
程序计数器: 类似计算机中的程序计数器 用于计数, 其很重要, 详解可以了解 汇编语言等其他书籍都有提到