java基础

Java语法部分
1.配置环境
安装JDK–>配置环境变量–>验证
2.Hello World!
public static void main(String[] args){}
System.out.println(“Hello World!”);
3.关键字
概念:被java语言赋予了特殊含义的单词
特点:所有字母都小写
public private protected package import class interface extends implements abstract static final finally try catch new void throw throws if else for while switch case default break continue return do true false null this super byte short int long float double char boolean instanceof transient
synchronized
4.标识符
概念:自定义的一些名称
规则:(1)不能以数字开头 (2)不可以是关键字
由26个英文字母大小写,数字0~9,_ $ 组成
规范:类名、接口名、包名、方法名、变量名、常量名
5.注释
单行注释:多行注释:文档注释:
6.常量
概念:不可改变的值
7.变量
概念:内存中的一个存储区域,该区域有自己的类型(数据类型),自己的名称(变量名),该区域中的数据在一定范围内可以不断的变化。
变量的声明:数据类型 变量名 = 初始值。
局部变量:出现在方法中或者语句中
块变量:出现在语句块中的变量
成员变量:出现在类的成员位置上
如果成员变量加上static修饰后,称为全局变量(类变量)
8.数据类型
1>基本数据类型:4类8种
整数、浮点、字符、布尔
2>引用数据类型
类、接口、数组
9.运算符
算数运算符 + - * / % ++ –
逻辑运算符 & | ! ^ && ||
比较运算符 > < >= <= != ==
赋值运算符 = += -= *= /= %=
三元运算符(三目运算) 判断条件?值1:值2;
位运算:二进制进行运算
<<(左移) >>(右移) >>>(无符号右移) &(按位与) |(按位或) ~(反码)
10.流程控制语句
判断语句
if…else…
循环语句
for while do…while foreach(高级for循环)
选择语句
switch…case
11.内存图
栈、堆、方法区、静态域。
12.数组(Array)
概念:同一数据类型的集合,称为容器
声明数组:元素类型[] 数组名 = new 元素类型[数组长度];
获取数组长度:数组名.length
遍历:for、foreach
排序:冒泡排序、选择排序。
好处:方便查询
弊端:长度固定。类型固定。
13.方法(function)、函数(method)
概念:对功能、行为、动作的描述。
定义格式:
[权限修饰符] [修饰符] 返回值类型 方法名([参数类型 形式参数]){
执行语句;完成该功能的步骤。
return 返回值;
}
特性:重载
概念:一个类中可以有多个同名方法,只要参数列表不同即可

面向对象(重中之重)
面向过程与面向对象两者都是编程思想。
类:对一类事物的统称。
对象:一类事物的实实在在存在的实体,称为实例。
面向对象的编程的关键:对类的设计
对类的设计其实就是定义类中的成员:
1.属性:成员变量
2.方法:成员方法
3.构造器(构造方法):初始化对象(在创建对象时对属性进行赋值)
4.内部类 5.代码块

【面向对象的三大特征】
封装:私有化属性,公有方法。
将属性进行私有化,提供属性所对应的set get 方法,提升属性赋值的合理性。
继承:子承父业
使用extends让类与类之间产生继承关系
特性:重写
继承的出现提供了多态的前提
多态:一类事物的多种表现形态
前提:1.类与类之间必须有继承关系
2.子类需要重写父类中的方法
父类的引用指向子类的对象==>向上转型==>自动类型提升
如果在多态中想使用子类特有的成员时:向下转型==>强转

类的高级特性:抽象类、接口
抽象类:被abstract修饰的类就是抽象类,包含有抽象方法的类必须是抽象类。
1.抽象类为了继承而诞生
2.抽象类不可以创建对象
3.抽象类具有强制性
接口:特殊的抽象类,看成对程序的功能扩展,看成规则。
1.接口与类是平级关系
2.声明接口使用:interface
3.接口中的属性:public static final 进行修饰
4.接口中的方法:public abstract 进行修饰
5.类与接口是实现关系:implements 类:实现类

面向对象的应用
异常(Throwable)
Throwable|–Error
|–Exception|–编译时异常
|–运行时异常(RunntimeException)
空指针异常:NullPointerException
数组角标越界异常:ArrayIndexOutOfBoundsException
除数为零异常:ArithmeticException
类型转换异常:ClassCastException
没有…异常:NoSuchXXXException
处理异常的方式:
1.抓

try{ 尝试执行可能会发生异常的代码
}catch(异常类型的参数){如果发生异常就将异常对象捕获
}finally{一定会执行到的代码块,通常用来关闭资源
}
2.抛
(1)使用throws在方法声明处声明异常
(2)使用throw在方法的内部抛出异常对象
自定义异常:
1.声明一个类继承Exception或者Throwable
2.如果想要提示异常原因,必须在子类的构造器中将父类的带message的构造器指定出来。
3.在发生该异常的情况下使用throw抛出该异常对象
4.在抛出该异常的方法声明处声明该异常类型

集合(Collection)
概念:专门用来存储一堆对象的,而且可以存储各种数据类型的对象。
好处:长度可变,增删改查特别方便
弊端:因为什么对象都可以存储,所以程序设计的不太严谨,但是有了泛型后,弊端可以忽略了。

Collection|–List:有序的,数据可以重复
|–Set:无序的,数据具有唯一性
ArrayList(列表)、LinkedList(链表)、Stack
HashSet(根据哈希表进行存储)、TreeSet(有序二叉树进行存储)
对数据的操作:
增(add、addAll)删(remove、clear)改(set)查(get、size)
集合中的遍历:
1.如果是list集合,可以使用普通for循环
2.高级for循环
3.迭代器(Iterator)

Map集合:存储数据比较特殊:一对一对的存储(键值对)
HashMap:是Map的实现类。
键key:是以Set集合进行存储(数据不可重复)
值value:可以看作是以List集合进行存储(可以重复)
其中增删改查都和集合中的差不多,只不过增加在Map集合中是:put(K k,V v)。
可以将key看成是value的下角标
遍历:
使用Map集合中的keySet方法将key值全部存入到Set集合中,然后遍历Set集合即可。
Properties:经常琢磨琢磨

IO流(Input Output)
Java提供了io的四大抽象基类:
字节:InputStream OutputStream
字符:Reader Writer
文件流:FileInputStream FileOutputStream
FileReader FileWriter
缓冲流:BufferedInputStream BufferedOutputStream
BufferedReader BufferedWriter
转换流:当程序与文件的编码不一致时,使用转换流
InputStreamReader OutputStreamWriter
对象流(序列化流):ObjectInputStream ObjectOutputStream
对于自定义对象如果想序列化,必须实现Serializable接口,并指定序列号:
如果自定义对象中有不需要序列化的属性时,使用transient(瞬态)关键字进行修饰。
打印流:PrintStream 将程序中需要打印的信息打印到文件中。(生成日志文件)

多线程
程序:硬盘中的一个可执行文件
进程:程序的一次执行过程,
线程:进程的一条执行路径。
多线程:进程中的多条执行路径。
Java中如何创建多线程:
1.继承
类继承Thread类…
2.实现
类实现runnable接口…
start() join() setName() getName() sleep() currentThread()
设置线程的优先级:1 5 10
setPriority(),getPriority()
线程的一生(线程的生命周期)
线程的同步机制:
1.synchronized代码块
2.同步方法:synchronized修饰后的方法
3.Lock锁
线程的等待唤醒机制(线程的通信)
wait(),notify()===>只能在同步中使用。

Callable接口:与Runnable类似。
线程池:

网络编程
七层网络模型:应用层、表示层、会话层、网络层、传输层、数据链路层、物理层。
TCP协议将网络模型划分为四层:应用层、传输层、网络层、链路层。
IP:指的是网络中的一台机器
端口号:指的是机器中的某一款应用程序

UDP:面向无连接,将传输的数据进行打包,大小不超过64KB
不太安全、会丢包
DatagramPacket(打包、拆包) DatagramSocket(发包、收包)

TCP:提供了两个概念:客户端、服务器端。
Socket ServerSocket

NIO>>

反射
获取字节码对象(Class对象)并操作。
获取字节码对象的三种方式:
1.根据对象创建:getClass()
2.使用类名.class获取
3.使用Class.forName(“类路径”) ,使用类路径获取
获取构造器、获取属性、获取方法

常用类库

包装类:Integer Byte Short Long Float Double Character Boolean
BigInteger BigDecimal Object
String 不可变的字符序列
StringBuffer(线程安全,效率低) 、StringBuilder(线程不安全,效率高):可变的字符序列
Date日期
SimpleDateFormat 格式化日期
Calendar 日历类
GregorianCalendar 公历类
File类
Math类
Arrays类
Scanner类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值