Java语法部分

  1. 配置环境

安装JDK-->配置环境变量-->验证

  1. Hello World!

public  static  void  main(String[]  args){}

System.out.println(“Hello World!”);

  1. 关键字

概念:被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

  1. 标识符

概念:自定义的一些名称

规则:(1)不能以数字开头  (2)不可以是关键字

26个英文字母大小写,数字0~9_  $ 组成

规范:类名、接口名、包名、方法名、变量名、常量名 

  1. 注释

单行注释:多行注释:文档注释:

  1. 常量

概念:不可改变的值

  1. 变量

概念:内存中的一个存储区域,该区域有自己的类型(数据类型),自己的名称(变量名),该区域中的数据在一定范围内可以不断的变化。

变量的声明:数据类型  变量名  = 初始值

局部变量:出现在方法中或者语句中

块变量:出现在语句块中的变量

成员变量:出现在类的成员位置上

如果成员变量加上static修饰后,称为全局变量(类变量)

  1. 数据类型
  1. 基本数据类型:48

整数、浮点、字符、布尔

  1. 引用数据类型

类、接口、数组

  1. 运算符

算数运算符 +  -  *  /  %  ++  --

逻辑运算符 &  |  !  ^  &&  ||

比较运算符 >  <   >=  <=  !=  ==

赋值运算符 =  +=  -=  *=  /=  %=

三元运算符(三目运算判断条件?1:2;

位运算:二进制进行运算 

<<(左移)  >>(右移)  >>>(无符号右移)  &(按位与)  |(按位或)  ~(反码)

  1. 流程控制语句

判断语句

if...else....

循环语句

for   while  do...while   foreach(高级for循环)

选择语句

switch...case

  1. 内存图

栈、堆、方法区、静态域。

  1. 数组(Array)

概念:同一数据类型的集合,称为容器

声明数组:元素类型[] 数组名 = new  元素类型[数组长度];

获取数组长度:数组名.length

遍历:forforeach

排序:冒泡排序、选择排序。

好处:方便查询

弊端:长度固定。类型固定。

  1. 方法(function)、函数(method)

概念:对功能、行为、动作的描述。

定义格式:

[权限修饰符] [修饰符] 返回值类型  方法名([参数类型 形式参数]){

执行语句;完成该功能的步骤。

      return  返回值

}

特性:重载

概念:一个类中可以有多个同名方法,只要参数列表不同即可

 

面向对象(重中之重)

面向过程与面向对象两者都是编程思想。

类:对一类事物的统称。

对象:一类事物的实实在在存在的实体,称为实例。

面向对象的编程的关键:对类的设计

对类的设计其实就是定义类中的成员:

  1. 属性:成员变量
  2. 方法:成员方法
  3. 构造器(构造方法)初始化对象(在创建对象时对属性进行赋值)
  4. 内部类 5.代码块

 

【面向对象的三大特征】

封装:私有化属性,公有方法。

将属性进行私有化,提供属性所对应的set  get 方法,提升属性赋值的合理性。

继承:子承父业

使用extends让类与类之间产生继承关系

      特性:重写

继承的出现提供了多态的前提

多态:一类事物的多种表现形态

前提:1.类与类之间必须有继承关系 

  1. 子类需要重写父类中的方法

父类的引用指向子类的对象==>向上转型==>自动类型提升

如果在多态中想使用子类特有的成员时:向下转型==>强转

 

类的高级特性:抽象类、接口

抽象类:被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

处理异常的方式:

 

try{  尝试执行可能会发生异常的代码

}catch(异常类型的参数){如果发生异常就将异常对象捕获

}finally{一定会执行到的代码块,通常用来关闭资源

}

  1. 使用throws在方法声明处声明异常
  2. 使用throw在方法的内部抛出异常对象

自定义异常:

  1. 声明一个类继承Exception或者Throwable
  2. 如果想要提示异常原因,必须在子类的构造器中将父类的带message的构造器指定出来。
  3. 在发生该异常的情况下使用throw抛出该异常对象
  4. 在抛出该异常的方法声明处声明该异常类型

 

集合(Collection)

概念:专门用来存储一堆对象的,而且可以存储各种数据类型的对象。

好处:长度可变,增删改查特别方便

弊端:因为什么对象都可以存储,所以程序设计的不太严谨,但是有了泛型后,弊端可以忽略了。

 

 

Collection|--List:有序的,数据可以重复

|--Set:无序的,数据具有唯一性

ArrayList(列表)LinkedList(链表)Stack

HashSet(根据哈希表进行存储)TreeSet(有序二叉树进行存储)

对数据的操作:

(addaddAll)(removeclear)(set)(getsize)

集合中的遍历:

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接口,并指定***:JavaSE 总结

如果自定义对象中有不需要序列化的属性时,使用transient(瞬态)关键字进行修饰。

打印流:PrintStream 将程序中需要打印的信息打印到文件中。(生成日志文件)

 

 

 

多线程

程序:硬盘中的一个可执行文件

进程:程序的一次执行过程,

线程:进程的一条执行路径。

多线程:进程中的多条执行路径。

Java中如何创建多线程:

  1. 继承

类继承Thread....

  1. 实现

类实现runnable接口...

start()  join()  setName()  getName()  sleep() currentThread()  

设置线程的优先级:1   5   10

setPriority()getPriority()

线程的一生(线程的生命周期)

线程的同步机制:

  1. synchronized代码块
  2. 同步方法:synchronized修饰后的方法
  3. Lock

线程的等待唤醒机制(线程的通信)

wait(),notify()===>只能在同步中使用。

 

Callable接口:与Runnable类似。

线程池:

JavaSE 总结

 

 

网络编程

七层网络模型:应用层、表示层、会话层、网络层、传输层、数据链路层、物理层。

TCP协议将网络模型划分为四层:应用层、传输层、网络层、链路层。

IP:指的是网络中的一台机器

端口号:指的是机器中的某一款应用程序

 

UDP:面向无连接,将传输的数据进行打包,大小不超过64KB

不太安全、会丢包

DatagramPacket(打包、拆包)   DatagramSocket(发包、收包)

 

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

Socket    ServerSocket

 

JavaSE 总结

 

NIO>>详情参阅0928课件文件夹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

 

自己成功才能感悟生命壮观!!!

 

相关文章: