学习前奏要写笔记基本dos命令了解javajava学习
1.基本数据类型2.变量3.常量4.运算符5.控制流程6.方法7.数组8.面向对象9.封装、继承、多态10.抽象类11.接口12.内部类13.异常
学习前奏学习视频来自B站,感谢狂神的分享:B站视频地址
阿里巴巴java开发手册
idea注释设置
推荐博客园,CSDN作为主要博客,编辑器尝试MarkDown(本地下载typora,写好可直接复制到CSDN),记录学习的点点滴滴,防止后期遗忘还要查看视频。MarkDown语法格式,可以在CSDN–>写博客–>使用MarkDown编辑器(右上角帮助)中查看
基本dos命令| dos命令 | 作用 |
|---|---|
| cd | 切换当前位置 |
| dir | 列出当前位置的 文件/文件夹 |
| cls | 清理控制台 |
| exit | 退出控制台 |
| ipconfig | 查看电脑当前ip |
| notepad | 新建并打开记事本 |
| mspaint | 打开画图工具 |
| md / rd | 创建 / 删除 文件夹 |
| cd> / del | 创建 / 删除 文件 |
java学习首先有了C语言(面向过程);后来有了C++,在C的基础上加入了面向对象的思想,但需要手动释放内存、不跨平台等;后期有了java,java有垃圾自动回收机制、更强大的类库、JVM使得java可以跨平台运行,使得迅速占领了大量市场份额。
java是编译型+解释型语言,运行初期通过 编译器 对.java文件进行编译,生成.calss文件(字节码文件);运行时加载.class,通过 “解释器” 解释一步运行一步
IDE使用 idea
1.基本数据类型----------- java基本命令 -----------
javac 编译.java 文件
javac xxx.java
java 运行.class文件
java xxx.class
javadoc 生成java文档
javadoc -encoding UTF-8 -chartset UTF-8 xxx.java
java八大基本数据类型:byte、short、int、long、float、double、char、boolean
String 不属于基本类型,它是类
| 变量类型 | 大小 | 使用场景 |
|---|---|---|
| byte | 1字节 | 存储字节数据(较常用) -128~127 |
| short | 2字节 | 兼容性考虑(很少用)-32768~32767 |
| int | 4字节 | 存储普通整数(常用) (-231 ~ 231-1) |
| long | 8字节 | 存储长整数(常用) (-263 ~ 263-1)需要以l或L结尾 |
| float | 4字节 | 存储单精度浮点数 |
| double | 8 字节 | 存储双精度浮点数(常用) |
| char | 2字节 | 存储一个字符(常用) |
| boolean | 1字节 | 存储逻辑变量(常用) |
变量的作用域:
public class Variable{
static int allClicks = 0; //类变量,static 修饰
String str = "hello word"; //实例变量
public void method(){
int i = 0; //局部变量
}
}
3.常量
变量命名规则:
| 名称 | 折叠驼峰法 | 折叠Pascal法 |
|---|---|---|
| 别名 | 小驼峰法 | 大驼峰法 |
| 使用场景 | 命名变量、属性、方法(函数) | 命名类、空间、常量 |
| 规则 | 除第一个单词之外,其他单词首字母大写 | 第一个单词的首字母也大写 |
| 举例 | int myCount; | Public class DataUser; |
字符串连接符:+(从字符串开始的位置进行连接;之前的部分依然进行运算)
int a = 10;
int b = 20;
System.out.println(""+a+b); //输出1020
System.out.println(a+b+""); //输出30
5.控制流程
---------------------Scanner 对象---------------------
//创建扫描器,接收控制台输入数据
Scanner scanner = new Scanner();
//判断用户有没有输入
if(scanner.hasNext() || scanner.hasNextLine()){
//读取第一个非空单词
String strNext = scanner.next();
//读取第一行
String strNextLine = scanner.nextLine();
}
//关闭扫描器
scanner.close();
1.顺序结构
除非特别指明,否则代码就按照一句一句从上往下执行。顺序结构是最简单、基本的一种算法结构。
2.选择结构
关键字:if(可嵌套) switch
//------------- if选择结构 -------------
if(布尔表达式){
System.out.println("条件为真");
}else{
System.out.println("条件为假");
}
//------------- switch选择结构 -------------
//1. switch语句中的变量类型可以是:byte、short、int、char
//2. 从java7开始,支持String类型
//3. case标签,必须为字符串常量 or 字面量
switch(expression){
case value1:
//语句1
break;
case value2:
//语句2
break;
default: //default可有可没有
//默认执行语句
}
3.循环结构
while 循环 do while 循环 for循环
while 和 do while
//while循环,---条件为真执行循环体,先判断后执行
while(布尔表达式){
//程序语句
}
//do while ---先执行后判断,循环体至少执行一次
do{
//循环语句
}while(布尔表达式);
for循环 (可能一次都不执行) 注:java5引入了foreach写法
//可以写成for( ; ; ){},这是死循环的写法
//1.执行初始值--》判断布尔表达式--》执行循环体
//2.更新--》判断布尔表达式--》执行循环体
for(初始值 ; 布尔表达式 ; 更新){
//循环语句
}
//九九乘法表
for(int i=1 ; i<=9 ; i++){
for(int j=1 ; j<=i ; j++){
System.out.print(i+"*"+j+"*"=(i*j));
}
System.out.println();
}
//使用标签,输出100~200之间的质数(只能被1和它本身整除)
outer:for(int i=100 ; i<=200 ; i++){
for(int j=2 ; j<=i/2 ; j++){
continue:outer;
}
System.out.println(i);
}
6.方法
程序=算法+数据结构 软件=程序+数据
方法包含与对象中,是解决一类问题的步骤的有序集合。方法最好保持原子性,就是一个方法只完成一个功能。
java都是值传递?
方法的定义格式:
//修饰符 返回值类型 方法名 (参数列表){
// 方法体
//}
public static int sum(int a,int b){
return a+b;
}
1.重载
在同一个类中,方法名相同、参数列表不同构成重载。(与参数名、返回值类型、访问修饰符无关)
2.可变参数
//可变参数,又称为不定项参数
public void static mian(String[] args){
//两种调用方法:
printMax(1,2,3,4,5);
printMax(new double[]{1,3,5});
}
//比较大小
public static void printMax(double... numbers){
double max = numbers[0];
for(int i=0 ; i max){
max = numbers[i];
}
}
}
3.递归
递归就是方法调用自身。通常用来把一个大型复杂问题,转换成一个与原问题相似但规模较小的问题。递归包含两部分:递归头(什么时候结束调用);递归体(什么时候调用自身方法)尽量不用递归:java的方法调用,是压栈形式。如果递归深度越大,会占用大量内存甚至内存溢出。
//递归实现阶乘
public static int f(int n){
if(n == 1){
return 1;
}else{
return n*f(n-1);
}
}
7.数组
数据:相同数据类型的有序集合。每个数据称为数组的元素,可以通过下标访问。
//数组声明的两种方式:
dataType[] arrayRefVar; //推荐
dataType arrayRefVar[]; //不推荐
//创建数组:
dataType[] arrayRefVar = new dataType[size];
//数组的三种初始化状态:
1.静态初始化(创建时赋值)
int[] a = {1,2,3};
2.动态初始化(先创建、后赋值)
int[] a = new int[2];
a[0] = 1 ; a[1] = 2;
3.默认初始化
数组是引用类型,他的元素相当于类的实例变量。因此数组一旦分配空间,
每个元素就会根据变量类型赋予默认值。
byte、int、short、long 默认值为0
boolean 默认值为false
float、double 默认值为0.0
char 默认值为 null
数组的特点:
数组一旦创建,长度就不可改变;同一数组数据类型必须相同,可以是 基本类型 或者 引用类型;数组变量是引用类型:数组可以看成对象,保存在堆中;数组的元素相当于类的成员变量 ( 创建数组是通过关键字 new)数组工具类:java.util.Arrays,可以对数组对象做一些基本操作。
冒泡排序
public void bubbingSort(int[] intArray){
int temp = 0;
//外层循环,判断执行多少次
for(int i=0 ; i intArray[j+1]){
temp = intArray[j];
intArray[j] = intArray[j+1];
intArray[j+1] = temp;
flag = false;
}
}
if(flag){break}
return intArray;
}
}
稀疏数组
封装
隐藏代码的具体实现;隐藏代码的实现细节;统一接口;增加系统可维护性
继承
idea快捷键( ctrl+H,打开继承结构 )通过 super ,调用父类的方法或属性私有属性or方法,无法被继承 java类是单继承,但接口可以多继承
多态
10.抽象类 11.接口 12.内部类 13.异常异常的五个关键字
tray 、catch 、finally 、throw 、throws
Throwable类是 Error 和 Exception 的父类;如果多个catch,则应从小到大开始捕获



