常见快捷键
全选 ctrl+a 复制ctrl+c 粘贴 ctrl+v 撤销 ctrl+z
保存 ctrl+s 关闭窗口alt+F4 永久删除 shfit+Delete
常用DOS命令
盘符切换 d;
查看当前目录下的所有文件 dir
切换目录 cd change directory
cd … 上一级目录清理屏幕 cls (clear scree)
退出终端 exit
查看电脑ip ipconfig
打开应用 计算器 calc 画图 mspaint 记事本 notepad
ping命令 ping www.baidu.com文件操作
创建目录 md 目录名
rd 删除子目录 rd /S (删除所有子目录和文件) /Q(删除不需确认)
需要目录下为空 不在当前子目录
切换 cd cd 目录名
删除文件 del 文件名
java的诞生与初识
1.语法像c
2.没有指针
3.没有内存管理
4.真正可移植性,编写一次,到处运行(只需你安装了JVM即可)
5.面向对象
6.类型安全
7.高质量的类库
Java初生
Java2 标准版(j2SE):占领桌面
Java2 移动版(J2ME):占领手机 ==> 移动互联网未兴起 运行还需要安装虚拟机
Java2 企业版(J2EE):占领服务器
*注意:三高:高可用 高性能 高并发
webblogic(java开发的):(事务 安全 权限管理解放 专注于业务实现)
Java特性和优势
简单性
面向对象
可移植性
高性能–即时编译
分布式–专门解决TCP/IP的协议
动态性–java反射机制实现动态性
多线程
安全性–java在安全性上加入防病毒防篡改
健壮性–每次运行对于内存进行检查 确认合法
JDK JRE JVM
jdk:java开发的工具包
jre:运行时的环境
jvm:java虚拟机 模拟一个cpu执行java程序 屏蔽底层系统的差别
安装JDK
windows/Linux/macOS(需要注册oracle账户 同意协议即可)
https://www.oracle.com/java/technologies/downloads/
环境配置:
在环境变量添加
JAVA_HOME jdk安装路径
PATH
Java的编译型和解释型
解释型:一行一行解释给计算机(出错行来过)
编译型:全部翻译好给计算机(出错了从头来过)
Java运行机制
1.源程序(.java文件)
2.Java编译器编译成字节码(.class)
3.类装载器:将字节码文件加载
4.字节码校验码:检查语法的问题
5.操作系统平台执行
IDEA安装
Java基础语法
注释
// 单行注释
// 多行注释
/ **/ 注解 带有功能的注释
标识符和关键字
数据类型与类型转换
变量、常量、作用域
final
运算符
包机制、JavaDoc
一、包的概念
包:是一个命名空间,它是一种松散的具有相似功能 的类与接口的集合。是java管理 类与接口的有效机制。在一个包中的类在默认情况下可以相互访问,称之为包访问性。
包语句的语法格式
package pkg1[.pkg2[pkg3]]
一般使用公司域名倒置作为包名
域名.公司名.项目名.模块名
导入某个包成员
import pkg1[.pkg2[pkg3]].(classname|*);
Java流程控制
用户交互
顺序结构
选择结构
循环结构
for 加强循环
break & continue
goto label:语句
练习:计算器
Debug
Java方法详解
高内聚低耦合
何谓方法
在类中定义的一些用于实现某些功能的
方法的定义及调用
//基本定义
//访问修饰符(public) 非访问修饰符(static) 返回值类型 方法名(形参){ 方法体/函数体 }
public static void add(String args){
;
}
//调用 方法名(实参)
add();
方法的重载
一个类中有多个相同名字的方法 但是参数列表 顺序 类型不一样
规则:
1.同一类中
2.相同名字
3.形式参数(个数,顺序,类型不同)
4.返回值类型不同不足以构成
仅仅参数变量名称不同是不可以的。
跟成员方法一样,构造方法也可以重载。
声明为final的方法不能被重载。
声明为static的方法不能被重载,但是能够被再次声明。
命令行传参
相对于main(主函数)
一个程序你希望在运行它的时候再传递给它消息,通过命令行参数给main函数实现
javac 文件名.java 编译
java 文件名 命令行参数1 参数2.
public static Class ClassName(){
public static void main(String args){} // arr就是用于接收命令行参数的
}
可变参数
在函数形参的数据类型后
int… 代表可以接收多个参数 相当于一维数组
public static void fun1(int... i){}
递归
递归就是:自己调用自己
好处:可以使用简单的程序实现一些复杂的问题,将大型复杂问题简单化,使用递归减少重复复杂的计算,大大减少了程序的代码量。
坏处:不断在栈中开辟空间,有可能会栈溢出
条件:
递归头:什么时候不调用自身(临界条件)
递归体:什么时候需要调用自身(未到达临界点)
public static void add(){
//递归头
//递归体
}
数组
数组概述
数组:一组相同类型数据的有序组合
访问:通过下标访问每个数组元素:(index从0开始)
数组声明和创建
//声明
int[] arr;//主流
int arr[]; // 不推荐 这个是为了让c/c++的程序员能够更快上手java
//创建
//静态初始化 创建+赋值
int[] arr = {数组元素};
//动态初始化 包含默认初始化(默认为0)
datatype[] arr = new datatype[arr_size]; //长度固定 创建后不可改变
//默认初始化 元素相当于类的实例变量 因此数组一旦被分配空间,其中每个元素也会按照实例变量的方式被隐式初始化
//获取数组长度
arrays.length
数组特点
- 长度是确定的,数组一旦被创建,大小不可改变
- 元素必须是相同类型
- 数组中元素可以是任何数据类型,包括基本和引用数据类型
- 数组本身就是对象,数组元素相当于对象的成员变量,Java中的对象存放在堆中
下标越界
数组下标从0开始,数组最后一个元素下标length-1
数组越界,抛出异常ArrayIndexOutBoundsException:数组下标越界异常
数组使用
- For-Each循环
- 数组作为方法入参 - 数组作为返回值
多维数组
int[][] arr = {{0,1,2},{2,4,5}};
int[][] arr = new int[3][3];
Arrays类
import java.util.Arrays
排序数组:sort(arr);
填充数组:fill(arr,fill_val)--->fill(arr,form_index,to_index,fill_val);
比较数组:equals(arr1,arr2);
查找数组元素:binargSearch() 对排序好的数组进行二分查找
八种排序算法
原文链接:八种常见排序算法
Java内存
详解请看:栈堆方法区
面向对象
详情:本文链接:面向对象
有什么不足可以邮箱留言进行改进
@[email protected]