java小白入门笔记(干货满满)

这篇博客详细介绍了Java编程的基础知识,包括命名规范、数据类型、运算符、三目运算、条件判断、循环、数组、方法、面向对象的概念、类、继承、抽象、接口和多态。还探讨了Java高级特性,如数组与集合的区别、单列集合、双列集合、遍历、泛型、包装类,以及IO流中的File类和流的概念。内容适合Java初学者,全面涵盖Java核心概念。

目录

一、命名规范

二、数据类型

1.基本数据类型

2.引用数据类型

3.定义变量

4.java支持的变量类型

5.转义序列

6.堆和栈

7.数据类型转换

三、运算符

1.算术运算符

2.比较运算符

3.逻辑运算符

四、三目运算

三目运算与if的区别

五、条件判断

1.if else

2.Switch

3.if()else if 判断

六、循环

1.for循环

2.while循环

3.do while循环

4.死循环

5.break、continue、return语句

6.for循环与while循环的不同

七、数组

1.概念

2.数组的定义(使用)

3.数组遍历

4.空指针异常

5.索引越界异常

6.冒泡排序

7.打印数组

八、方法

1.定义

2.优点

3.命名规则

4.方法的三种调用格式

5.方法重载

九、面向对象

1.包

2.面向对象和面向过程的区别

3.面向对象和面向过程的特点

4.什么是对象

5.封装

6.访问修饰符

7.常用的非访问修饰符

8.类

9.继承

10.抽象

11.接口

12.多态(父类引用指向子类对象)

13.异常

14.常见的内置异常类

15.抛出异常

十、java高级

1.数组和集合的区别:

2.单列集合(Collection)

3.双列集合(Map)

4.遍历

5.泛型

6.包装类

7.list集合

8.Set集合

9.Map集合

10.ArrayList集合概述

11.Java常用类

12.Date(时间类)

13.CalendarDemo类(日历类)

14.装箱和拆箱

15.随机数

十一、IO流

1.File类

2.IO流

3.字节流

4.字符流



一、命名规范

Java命名规范:

1.只能用英文、下划线、数字、$结尾(硬性要求)
2.只能用英文、_、$开头(硬性要求)_
3.不能使用关键字命名(硬性要求)
4.不可以用中文及拼音
有意义
首个单词首字母小写其余首字母大写(小驼峰)
虽然可以但一般不使用_$

包名命名规范:

1.全小写
2.com.baidu.login

代码一定规范

单行注释  //      多行注释/* */
如果注释中中文输出错误则用:编码→编码字符集→中文→GB2312
ctrl+shift+f 格式化代码的格式(规范)
Alt+/ 提示补全
try{代码}catch(捕获异常){} finally(不管有无异常都运行)

JDK工具包→JRE运行环境

二、数据类型

1.基本数据类型

数据类型 大小
byte(整型) 1字节8位
short(整型) 2字节16位
int(整型) 4字节32位
long(整型) 8字节64位
float(浮点型) 4字节32位浮点数
double(浮点型) 8字节64位浮点数
boolean 1个字节
char(只能有一个字符,必须用单引号) 2个字节

2.引用数据类型

String

3.定义变量

变量的声明与赋值

(1)先声明后赋值

int(数据类型) = a(变量名); a = 20(变量值);

(2)边声明边赋值

int a = 20;

也可以同时为多个赋值

int a1 = 10,a2 = 20;

B/S 互联网应用

C/S 客户端应用

4.java支持的变量类型

局部变量:类的方法中的变量

全局变量:独立于方法之外的变量,没有static修饰

类变量:独立于方法之外的变量,用static修饰

5.转义序列

\t 在文中该处插入一个tad键
\b 在文中插入一个后退键
\h 在文中该处换行
\r 在文中插入回车
\f 在文中插入换页符
\ ' 单引号
\ " 双引号
\ \ 反斜杠

6.堆和栈

名称 特征
先进先出
先进后出(栈中储存与堆的标识,通过标识找堆中实际标识)

7.数据类型转换

自动转型:double num1 = 2;

强制转型:int num2 = (int)3.9;

三、运算符

1.算术运算符

+、-、*、/、%、++、--、+ =、- =、 * =、/ =、% =

注意:+比较特殊,在几个数字的运算中,+扮演了“加”的角色,在字符串中却扮演了“链接”的角色

2.比较运算符

>、<、>=、<=、==、!=、 .equals()  (判断字符串是否相等)
注意:单个=是赋值运算符,两个==才是比较

3.逻辑运算符

运算符 用法 作用
&&、& num1 > num2 && num1 < 10 与,前后条件同时ture则为turre
||、| num1 == 5 || num1 < 10 或,前后条件同时false则为false
! !(num1 > 10) 非,除了表达式的情况之外为ture

四、三目运算

表达式?结果1:结果2;

?是三目运算符,当表达式结果为true,则执行?后面的代码;当表达式结果为false,则执行:后 面的代码。

三目运算与if的区别

三目运算有返回值,if没有返回值。

五、条件判断

1.if else

if(){
    代码块1...
}else{
    代码块2...
}
选择结构的第二种写法。增加了一种情况,属于条件分支,类似于Y字路口。功能与三目运算相同。但不能如同三目运算一样直接将结果进行赋值操作,if没有结果反馈,三目运算始终有结果反馈。
​

2.Switch

switch(表达式){
    case 值1:
        语句体1;
        break;
    case 值2:
        语句体2;
        break;
            ...
    default:
        语句体n+1;
        break;
}
使用switch的注意事项:
1.case后面只能是常量,不能是变量,而且,多个case后面的值不能相同。
2.default可以省略。但一般不建议,除非结果是可以预计且不会发生变化的。
3.break可以省略,-般不建议,容易导致穿透。
4.default的位置可以出现在switch语句任意位置。
5.switch语句的结束条件必定是遇到break或已经执行到最末尾。
​

3.if()else if 判断

if(){
    代码块1...
}else if(){
    代码块2...
}else{
    代码块3...
}
如果满足小括号中内容,就执行代码,如果不满足就用else,执行else中的内容。
也可以if中套if,即要先满足第一个if,也要满足第二个if的内容

六、循环

1.for循环

for(声明循环变量;循环条件;迭代){
    被循环的代码块
}
for循环可以在循环条件满足的情况下,反复执行{}大括号内的代码块。
执行顺序:声明循环变量-- > 判断循环条件:执行循环代码一-- >迭代-- > 判断循环条....
特点:结构紧凑、书写规范、内存使用合理、可预知次数的循环

2.while循环

声明循环变量
while(循环判断){
	被循环的代码块
	迭代
}
特点:语法宽松、适应各类循环、无法预支次数的循环

3.do while循环

do{
	被循环的代码块
	迭代
}while();
特点:优先先执循环代码

4.死循环

for( ; ; ){
	循环体
}
while(ture){
	循环体
}

5.break、continue、return语句

break

作用:跳出所在循环体

位置:必须出现在循环或选择结构内

continue

作用:提前结束本次循环,继续进行下次循环

方式:无法单独使用,必须将continue关键字置于循环语句中

规律:不需要判断任何条件,只要遇到continue便直接跳出本轮循环进行下次循环

return

返回、终止整个结构且不执行结构外的代码

作用:退出当前方法,可用在方法内,return之后不能写代码

6.for循环与while循环的不同

不同点 : 在for循环中声明的循环变量无法在循环外部使用,而while循环却是在循环结构外部声明的循环变量,所以即便循环结束,也可以继续使用。但更推荐使用for循环,for循环的循环变量在循环结束后会直接被销毁,更合理的使用内存空间。

七、数组

1.概念

容器:将多个数据存储到一起,每个数据称为该容器的元素。比如:水杯,大水缸(司马光)、衣柜等。 数组的概念:是一种容器,可以同时存放同一种数据类型多个数据值; 数组的特点: . 1.数组是-种引用数据类型; 2.数组当中的多个数据,类型必须统- +; 3.数组的长度在程序运行期间不可改变(存储数据长度固定:因为数组占用的内存必须是连续的,这样才能支持下标访问,如果硬要改变长度那就是数组扩容) (数组扩容的实质:在开辟一 块更大的内存空间,将之前的数组数据拷贝到新的内存中)。

2.数组的定义(使用)

动态数组创建(指定长度) :创建数组直接指定数组的长度 格式: 数据类型 [ ] 数组名称 = new数据类型[数组长度];

				int[ ] array = new int[5];
注意:[]中5是数组array的长度数组的长度一旦给定就不能修改
1.其中数据类型代表:数组中盛放数据的数据类型
2.数组使用下标(角标)来访问元素(保存元素)下标从0开始

3.数组遍历

在操作数组时,经常需要依次问数组中的每个元素这种操作称作数组的遍历。

获取数组的长度:array.length
		
System.out.println("数组的长度"+array.length);
 数组的遍历输出(数组操作的基础)
 		for (int i = 0; i < array.length; i++) {
            System.out.println("数组的遍历:"+array[i]);
         }

4.空指针异常

NullPointerException

原因:数组已经不在指向堆内存了。

5.索引越界异常

Array IndexOutOfBoundsException

原因:你访问了不存在的 索引 。

6.冒泡排序

基本原理:对存放原始数据的数组,按从前到后的方向进行多次扫描,每次扫描称为一轮(遍)。当发现相邻的两个数据的次序与排序要求的大小次序不符合时,将这两个数据进行互换。

过程:从小到大

特点

升序排序中每一轮比较会把最大的数沉到最后面,所以相互比较的次数,每一轮都会比前一轮少一次。

执行过程

for (int i = 0; i < array.length-1; i++) {//比较的轮数(array.length-1)

    for (int j = 0;j<array.length-1-i;j++){//相邻数字间比较的次数(array.length-1-i)

        if (array[j]>array[j+1]){//相邻两位数比较,前一位比后一位大,位置互换
        	//位置互换
            int a = array[j];
            array[j]=array[j+1];
            array[j+1]=a;
        }

    }
}

7.打印数组

System.out.println(Arrays.toString(数组名));

八、方法

1.定义

方法是语句的集合,他们在一起执行一个功能(方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用)

修饰符 返回值类型 方法名(参数类型 参数名){
                                          方法体
					return返回值;
}
方法包含一个方法头和一个方法体
(1.修饰符:是可选的,告诉编译器如何调用该方法定义了该方法的访问类型(public    static...)
2.返回值类型:方法最终产生的数据结果是什么类型。方法可能会有返回值。如没有,则为void
3.方法名:第一个单词首字母小写(小驼峰)
4.参数类型:进入方法的数据是什么类型(有多个,用逗号隔开)
5.方法体:方法体包含若干行代码,该方法要实现的功能
6.返回值:方法执行后最终产生的数据结果)

定义一个方法的三要素: 1.返回值类型; 2.方法名称; 3.参数列表:多个参数; 4.注意:return后面的返回值,必须和方法名前的返回值类型保持对应。

2.优点

1.使程序变得更简短而清晰 2.有利于程序维护 3.可以提高程序开发的效率 4.提高了代码的重要性

3.命名规则

1.方法名字的第一个单词应该以小写字母作为开头,后面的单词用大写字母开头,不使用连接符

2.下划线可能出现在方法名称中用以分隔名称的逻辑组件

4.方法的三种调用格式

单独调用:方法名称(参数); 打印调用:System.out.println(方法名称(参数)); 赋值调用:数据类型 变量名称=方法名称(参数);

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

景元昊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值