java基础--狂神
java基础学习
- 学习前奏
- 要写笔记
- 基本dos命令
- 了解java
- java学习
- 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 | 创建 / 删除 文件 |
netstat |
-ano #查看所有端口 -ano | findstr “5900” #查看指定端口 tasklist | findstr “8696” #查看指定端口的进程 |
了解java
首先有了C语言(面向过程);后来有了C++,在C的基础上加入了面向对象的思想,但需要手动释放内存、不跨平台等;后期有了java,java有垃圾自动回收机制、更强大的类库、JVM使得java可以跨平台运行,使得迅速占领了大量市场份额。
java是编译型+解释型语言,运行初期通过 编译器 对.java文件进行编译,生成.calss文件(字节码文件);运行时加载.class,通过 “解释器” 解释一步运行一步
IDE使用 idea
java学习
----------- java基本命令 -----------
javac 编译.java 文件
javac xxx.java
java 运行.class文件
java xxx.class
javadoc 生成java文档
javadoc -encoding UTF-8 -chartset UTF-8 xxx.java
1.基本数据类型
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字节 | 存储逻辑变量(常用) |
2.变量
变量的作用域:
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; |
4.运算符
字符串连接符:+(从字符串开始的位置进行连接;之前的部分依然进行运算)
int a = 10;
int b = 20;
System.out.println(""+a+b); //输出1020
System.out.println(a+b+""); //输出30
5.控制流程
---------------------Scanner 对象---------------------//创建扫描器,接收控制台输入数据Scanner scanner = new Scanner(System.in);//判断用户有没有输入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://语句1break;case value2://语句2break;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<numbers.length ; i++){if(munbers[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 默认值为0boolean 默认值为falsefloat、double 默认值为0.0char 默认值为 null
数组的特点:
- 数组一旦创建,长度就不可改变;
- 同一数组数据类型必须相同,可以是 基本类型 或者 引用类型;
- 数组变量是引用类型:数组可以看成对象,保存在堆中;数组的元素相当于类的成员变量 ( 创建数组是通过关键字 new)
- 数组工具类:java.util.Arrays,可以对数组对象做一些基本操作。
冒泡排序
public void bubbingSort(int[] intArray){int temp = 0;//外层循环,判断执行多少次for(int i=0 ; i<intArray.length-1 ; i++){boolean flag = true;//减少排序//排序for(int j=0 ; j<intArray.length -i-1 ; j++){if(intArray[j] > intArray[j+1]){temp = intArray[j];intArray[j] = intArray[j+1];intArray[j+1] = temp;flag = false;}}if(flag){break}return intArray;}
}
稀疏数组
8.面向对象
9.封装、继承、多态
封装
- 隐藏代码的具体实现;隐藏代码的实现细节;统一接口;增加系统可维护性
继承
- idea快捷键( ctrl+H,打开继承结构 )
- 通过 super ,调用父类的方法或属性
- 私有属性or方法,无法被继承
- java类是单继承,但接口可以多继承
多态
10.抽象类
11.接口
12.内部类
13.异常
异常的五个关键字
try 、catch 、finally 、throw 、throws
Throwable类是 Error 和 Exception 的父类;如果多个catch,则应从小到大开始捕获
java基础--狂神相关推荐
- Java基础——狂神说
Java基础--狂神说 文章目录 Java基础--狂神说 一.第一章--基础语法 1.标识符 2.变量.数据类型.常量 2.1.变量的分类 2.1.1.按数据类型分类 2.1.1.1.浮点类型 2.1 ...
- 狂神说java java基础篇 学习笔记
java基础的视频内容笔记都在这了 前言等字数非常长的章节,使用了AI语音识别成文字后修改的,有错漏欢迎提出 面对对象模块的按照自己的理解进行了内容修改,可以对比原视频内容理解,如有建议欢迎提出 前言 ...
- Java基础总结【狂神说】
Java基础总结-狂神说 注释 //单行注释 三线码农学编程 /*多行注释 三线码农学编程*/ 这个是通过操作file header里面编写的 每次生成的时候就有了 /**文档注释* ClassNam ...
- 笔记整理:狂神说java——java基础00
笔记整理:狂神说java--Java基础00 笔记参考:b站狂神说java 视频链接:https://www.bilibili.com/video/BV12J41137hu?p=1 边学边写,欢迎浏览 ...
- 【狂神说笔记——Java基础03-方法】
Java基础03-方法 方法 1.何谓方法? 在前面几个章节中我们经常使用到 System.out.println(),那么它是什么呢? println() 是一个方法. System 是系统类. o ...
- 【狂神说笔记—— Java基础07-常用类】
Java基础07-常用类 Object类 大家都知道Object是所有类的父类,任何类都默认继承Object. 理论上Object类是所有类的父类,即直接或间接的继承java.lang.Object类 ...
- 【狂神说Java笔记】Java基础
Java基础01:注释 关闭 idea 后再次打开,默认打开上一次关闭时的项目 新建空项目 File --> New --> Project... Empty Project --> ...
- java mybatis狂神说sql_狂神说MyBatis01:第一个程序
狂神说MyBatis系列连载课程,通俗易懂,基于MyBatis3.5.2版本,欢迎各位狂粉转发关注学习,视频同步文档.未经作者授权,禁止转载 MyBatis简介 环境说明: jdk 8 + MySQL ...
- 1.1 java基础
视频看的是狂神说Java 一.电脑快捷键 1.Ctrl + shift + esc打开任务管理器 2.win + E打开"我的电脑" 3.win + R打开运行方式 4.ctrl ...
- Java基础代码语法讲解上
因为最近有多余的时间,可以码字,Java基础虽然真的很基础,但是我学起来又慢又吃力,我想不能忘记自己学语言学不会的样子. 这篇文章我决定写的很零碎,而且想尽量写的很通俗易懂,来锻炼自己说人话的能力. ...
最新文章
- 国内外财务软件科目结构的比较
- linux 下常见启动文件配置
- proguaid 混淆代码
- Centos7安装go-1.9.2
- Python闭包与延迟绑定
- 1、请简述DNS的作用,并说明当你输入网址“www.nxtc.edu.cn“按下回车后,DNS是怎么工作的?(关键步骤可以给出相应图示) 2、详细描述域名劫持攻击的过程及防御方式。
- Mvc 学习笔记(一)
- layui 单选项 点击显示与隐藏 很实用
- ELK6.0部署:Elasticsearch+Logstash+Kibana搭建分布式日志平台
- JQuery UI AutoComplete 与 Strtus2 结合使用
- OpenCV3学习(4.1)——图像阈值操作(Threshold,AdaptiveThreshold)
- mysql-python安装时EnvironmentError: mysql_config not found
- python爬虫什么意思-Python为什么叫爬虫?Python与爬虫有什么关系?
- 实用!Mybatis中trim标签的使用教程
- 概率生成模型-朴素贝叶斯(Naive Bayes)
- Git客户端操作GitHub
- 为什么acdsee服务器怎在运行,为何打开网页时会出现安装acdsee 5.0.1 powerpack
- 还在浪费时间创建工程图?6分钟教你自定义SOLIDWORKS工程图模板
- elasticsearch安装教程
- 「Computer Vision」Note on Kinetics and Two-Stream Inflated 3D ConvNets (I3D)