java入门知识点总结

来源:互联网 发布:深圳单片机解密 编辑:程序博客网 时间:2024/05/22 04:43

程序=数据+算法

机器语言10101010

汇编语言

高级语言

  1-c--面向过程

  2-java  c++  c#

1--javaEE:b/s

  1-java---sun

    1-面向对象

  2-java语言

  3-数据库:oracle  mysql

  4-web:html css js  jquery

  5-web高级:jsp servlet tomcat

  6-企业级应用:框架

2--java:sun--1.6

   1-mysql

   2-oracle

   3-特点:

     1-面向对象:

      1-love(persin1 person2){}---喜欢张三李四

      2-zhangsan.love(lisi---zhangsan xihuan lisi 

     2-跨平台:1-jvm   2-垃圾回收机制

      1-jdk

        1-下载

        2-安装:不要中文路径

         1-jvm:java的虚拟运行环境

 2-jdk:软件,java 的编译运行环境

 3-jre:软件,java的运行环境(jvm)

     3-配置环境变量:告诉操作系统

         1-java_home:C:\Program Files\Java\jdk1.8.0_11

  -jdkan安装路径

 2-classpath:.;%java_home%\lib

          classpath实质是一个数组

          -. : 配置用户自定义的class(.class文件)路径

  1-.:当前路径

  2-..:父路径

           -%java_home%\lib:系统的class路径

          3-path:%java_home%\bin;

           -配置可执行文件的路径  .exe

   -javac:编译命令(将java的源代码编译成class文件)

  1-语法:javac 文件名

  -java:运行命令

  1-语法:java className

 4-验证jvm环境

          1-win+r

  2-输入cmd 回车

  3-javac  java

         5-hello world

          1-编写程序

          2-cmd---

           1-cd命令切换到程序所在的位置

   2-javac 文件名

   3-java hello

--------------------------------------------------------

一处编译处处运行

安全性   .jsp  .action  .do  

1--电脑习惯

  1-显示后缀名

  2-文件显示模式:详细信息

2--文件夹:

3--iteye   csdn

4--java运行流程:

  1-java源文件(xxx.java)---javac->xxx.class(字节码)

   -java->结果

  2-cmd

5--注释: 程序员使用

  1-//:单行注释

  2-/*   xxxx */:多行注释

  3-/**  xxxxx  */:文档注释(会被解析)

6--关键字:在一种语言中,已经被赋予特定含义的单词  

  1-小写   void  int int = 1;

  2-不能再次使用

7--标识符:在程序中需要程序员自己定义名字的地方

  1-函数名,变量名,类名,包名

  2-首字母不能为数字(规定)

  3-字母,数字,_,$

  4-驼峰标识(规范):每一个单词的首字母大写 StudentName

8-标点:

  1-空格:分隔符  int num=1;

  2-;:结束符

  3-{}:代码体  for  if  main  hello{}

9--变量:

  1-概念:可变化的数值

  2-本质:内存空间

  3-三要素:  类型 名字=值

10--数据类型:

  1-基本类型:java固有的类型

    1-boolean char byte short int long float double

2-特殊格式:long float

3-float比long能够容纳下更大的整数

 byte    1字节

               short    2字节

                int    4字节

               long    8字节

 单精度float   4字节

              双精度double    8字节

 4--在java中:boolean类型数据只允许取值true和false,不可以非0或0的整数替代true和false。

 5---byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。

     6--当把任何基本类型的值和字符串值进行连接运算时(+),基本类型的值将自动转化为字符串类型。1+"abc"   1abc

 7--boolean类型不可以转换为其它的数据类型。

        注意:强制类型转换有可能损失精度。

  2-复合类型(引用类型):多个基本类型或者复合类型组成的类型

  3-数据类型转换:

    1-自动转换:字节数小--〉大  int num = 1; long l = num;

2-强制转换:字节数大--〉小  long l = 1; int num = (int)l;

  4-字符在计算机里是以asc码形式存储

11--进制:

  1-二<--->十进制:

12--运算符:

  1-++:

    1-前加:  ++num 先加在运算

    2-后加:  num++ 先运算再加

  2-?:  

    1-是一个算数运算,会返回一个确切的结果 int num = n>2?0:1;

    2-:前后的两个值的类型必须相同

    A &&B a是假,则不运行B;

A&B      无论a是假,都运行B;

--------------------------------------------------------

jquery   $()

var num = 1;

var str = “aa”;

‘a’

 

源代码-->javac-->字节码(可执行文件)

--->java--->结果

jvm jdk jre

环境变量配置:

 1-java_home :jdk安装路径c:\java\jdk

 2-classpath:.;%java_home%\lib

 3-path:命令文件路径bin

1--java

 1-关键字:class

 2-标识符:自己起名字的地方

  1-首字母不能为数字 字母 数字 _ $

  2-int num = 123_456;//jdk1.7(必须在1.7以后,两个数字之间)

 3-变量

  1-空间

  2--三要素:  类型 名字=值

   1-类型:决定空间类型(int4个字节)

  3-java是一种强数据集类型的语言

 4-数据类型

  1-基本类型:8

   1-顺序

   2-字节数

   3-各个基本类型之间的相互转换

    1-自动转换byte--int--long--float(占4个字节)  char--int

2 8最快的速度二进制位移

2-强制转换char i = (char)97;

“123”--(int“123”不能

  2-复合类型(引用类型):由若干个个基本类型或者复合类型组成的类型

   1-class interface String char

 5-运算符

  1-?:(三目运算符) double num = 1>2?9:9.0f(float不能省略后缀) long 1 =9

 6-流程控制语句:

  1-分支语句:互斥

   1-if:

    1-单分支if(boolean){....}

2-双分支if(boolean){....}else{....}

3-多分支if(boolean){....}else{....} if(){}else{}(若干个)

 1-问题:条件覆盖问题(上面的条件不要覆盖下面的条件)

 2-if(){..} if(){} if(){}

   2-switch(算数表达式):

    1-语法:

 1-语法:switch(表达式){

         case常量1:

  xxxx

  break;

 case常量2:

  xxxx

  break;

             case常量3:

  xxxx

  break;

    }   

2-常量:值不可变的变量

 1-int num = 1; num =2;

 2-常量必须赋初值

3-switch 表达式:

允许byte short int char 枚举 jdk1.6

String jdk1.7

4-case --- if

 - default -- 最后的else:用来收尾:

 如果前面的case一个都不走,

 就走它(可以省略)

 -break:用来终止当前case的执行

5-case 的优先级要高于default

6-if/switch:

  1-if:适合范围处理(<>)

  2-switch:适合固定值(==)

  2-循环语句:  

--------------------------------------------------------

int num = 1;//声明(开辟内存空间)  初始值

num = 2;//赋值:空间已经存在

 

1--循环:

  1-for:

    1-语法:for(b1;b2;b3){.4.}

    2-b1:初始化  int num = 1;

    3-b2:条件判断语句  num<=9;如果b2返回true则循环会继续

    4-b3:步长   num=num+1

    5-执行顺序:1 2 4 3 2 4 3 2

    6-次数n:b1=1  b2=n+1  b3=n  4=n

    7-三个表达式都是可选,分号不能省  for(;;){}

    8-单循环:线性   ;双循环:面  ; 三个循环:立体

    9-增强for循环(foreach)

      1-语法;for(char i : 数组){}

  2-while:

    1-语法:while(bool条件){.....}

    2-for:适合有次数限制  while:没有次数控制

  3-do-while:

    1-语法:do{...}while(bool条件);

    2-无论如何都会运行一次

  4-没有goto:关键字;保留关键字)

  5-关键字:

    1-break:终止

      1-switch:用于终止一个case的执行

      2-循环中:终止循环的运行

    2-continue:继续

      1-循环中:终止本次循环,继续下一次循环

    3-结论:

      1-影响的是直接包含循环:就近原则

2--数组:

  1-概念:一组数据的集合,类型相同    1  2  3  5  8  0

  2-特征:

    1-类型相同

    2-长度不可变

    3-地址连续

  3-语法:

  4-复合类型:

    1-new

  5-下标:0开始

  6-length:数组的一个属性,记录该数组中数值的个数

    1-属性:变量,类中,但是方法外的变量

2-变量的作用域:{}

--------------------------------------------------------

1--数组:

  1-定义:长度   new

  2-赋值,获取:下标:0

  3-长度:数组名.length

  4-遍历:for

  5-操作:

     1-排序

     2-选择排序:java实现

  6-维度:

     1-一维数组:一组类型相同的数据的线性集合(线)

     2-二维数组:数组的数组(面)

--------------------------------------------------------

 

1--五子棋:

  1-进行每一个方向判断输赢前,计数器重置为1

  

2--面向对象::将现实抽象成一种虚拟的过程

  1-概念:关注的是动作(行为)的发出者

  2-面向过程:关注点:事情怎么做,而不关心谁来做

  love(person p1,person p2){

   ......

  }

  3-步骤:

    1-表白的对象----〉模板(概念,描述)

    2-对象去做事情

  4-概念:

    1-OOA:做事情--做事的对象---对象的模板

    2-OOD:模板(大小,打电话,发短信等)---对应的对象---做事情

    3-OOP:面向对象的编程

  5-面向对象中的两个基本概念:

    1-类:模板   对一类事物所具有的共同特征和行为的一种描述,对现实中一类事物的一个抽象

      1-特征:变量----属性:全局变量(成员变量)

        1-属性可以被权限修饰符修饰

        2-变量的分类:  

 

          1-作用域:全局  局部

            1-全局:可以被当前类的所有方法访问的变量

              1-全局变量包含属性

            2-局部:方法中的变量,只能被当前方法(或者for if)是用

              1-局部变量不能重名

              2-局部跟全局可以重名

          2-类型:基本  复合

      2-行为:方法

        1-*1-public:权限修饰符:public protected  默认  private

 *  1-作用范围

 *2-void:返回值  

 *  1-事情完成后需要交付的结果

 *3-call:方法名

 *4-String name:参数

 *  1-要想完成一个事情,所需要的外界条件

 *5-{}:方法体

 *  1-过程

2-方法外面(类里面)不能直接写逻辑代码

3-如果一个方法需要返回值,则该方法中一定要有一个return语句

    2-对象:个体  实实在在存在的一个具体的实例

      1-创建:Phone p1 = new Phone();//int num = 1;复合数据类型

      2-对象的使用:

        1-调用方法:对象名.方法名(参数)

        2-访问属性:对象名.属性名

      3-匿名对象:声明时不给对象起名字,直接使用

        1-安全

        2-耗资源

      4-类是对象的描述(抽象),对象是类的实例(具体体现)

      5-定义类时:为了保证属性值的有效性

      -将属性设置为private(不可见)

      -对外提供一个public的setXXX的方法

        -该方法的作用:负责给该属性赋值

      -对外提供一个public的getXXX方法

        -作用:负责获取对象的该属性的值

    3-面向对象编程:

      1-定义类(属性,方法)

      2-声明对象

      3-调用方法

    4-三个特征:

      1-封装:面向对象的抽象的过程(类的形成过程,方法的形成)

        1-好处:

          1-代码的重复利用

          2-隐藏细节

        2-this:当前对象:当前哪个对象正在调用该方法,则方法中的this就指的是的哪个对象

         1-.:当前路径     通配符

         2-在一个类的方法中可以通过this关键字访问本类的属性或者其他方法

         3-可以省略

           1-当方法中有重名的变量时,则不能省略this

       3-构造方法:public Person(String name){}

         1-方法名:类名相同

         2-没有返回值,不等价于void

         3-作用:用于创建类的对象

 

 

         4-调用方式:普通方法:.调用    构造:new

         5-如果类中没有明确定义构造方法,则jvm会自动分配一个空构造

         6-代码:this.属性=值 : 初始化对象的每一个属性值

       4-重载overload:在一个类中,方法名相同,参数不同的

         1-参数:

           1-数量

           2-类型

           3-顺序

         2-返回值不同不能作为重载的判断依据

         3-含义:同一种行为的不同表现方式

       5-传参:

         1-值传递:

           1-基本数据类型

           2-是将元数据的值复制了一份给了参数变量

           3-返回值方式

           4-String:字符串:复合类型

         2-引用传递:

           1-复合类型

           2-本质:没有引用传值;只不过复合类型的值是地址

       6-包:文件夹

         1-作用:对一个工程中的类文件进行分类管理

         2-.:层次结构com.test1

         3-命名:全小写;域名倒写  com.baidu.test1  com.baidu.test2

         4-类文件的第一行代码:package com.java1 包的声明

         5-导包:import com.java1.test;

           1-当需要用到另外包里的类时

       7-封装类:

         1-自定义:Person

         2-系统封装类:String  System

           1-import java.util.Scanner;

           2-java:基础包   javax:扩展包

             1-io:输入输出流包

             2-lang:默认包 不需要导入

             3-net:网络

             4-sql:数据库

             5-text:文本操作

             6-util:工具

       8-注释:

         1-//

         2-/*   */

         3-/**    */:文档注释

      2-继承:

      3-多态:

--------------------------------------------------------

1--面向对象:

  1-封装:

    1-实现代码的重复利用   int num = 2;

    2-隐藏细节

    3-类:概念---〉通过一类对象抽象出来

     -对象:根据类生成的一个具体的实例

     -方法:public void add(int num1,int num2){...}

    4-重载:一个类中,方法名相同,参数不同   int num =p1.add("a",12);

    5-构造方法:

      1-方法名

      2-返回值:跟void是两回事,返回值就是本类的对象

      3-this.xx = xx;

      4-空构造

  2-继承:类跟类之间的一种传递关系

    1-父类更通用,子类更具体

    2-关键字:extends

    3-技术角度:多个类中具有一些共同的全局变量和方法,

     -将这些变量和方法继续提取出来,封装成一个类,让这多个类继承该类

    4-单继承,一个类如果没有显示继承另一个类,则默认继承Ojbect

     -继承可以传递  stu  is a Person

    5-父类本身也是子类的类型(身份)

    6-父类的引用指向子类对象

    7-abstract:

      1-修饰类:抽象类

        1-不能直接实例化对象,必须被继承

        2-技术角度:如果想让一个类不能被实例化,则定义成抽象类

      2-修饰方法:抽象方法

        1-只能出现在抽象类中

        2-必须被子类重写overread

    8-重写: 子父类中相同行为的不同的表现方式

      1-子父类

      2-子父类之间,方法的声明相同,方法的实现不同

    9-父类不能调用子类扩展的方法或属性(一个对象能调用什么方法,取决于栈里的引用的类型)

    10-接口:Stu like a person

      1-多实现(继承):implements

      2-定义:interface

      3-完全抽象化的类

        1-只能有抽象方法:默认修饰符:public abstract

        2-成员变量:静态常量  public static final

      4-为了解决单继承

      5-标准

    11-关键字:super:当前类正在运行的对象的父对象

      1-this:当前类正在运行的对象

      2-用法:  

        1-this(...)  super(...):调用构造方法

        2-this.methodName()/this.attributeName:调用普通方法或属性

      3-结论:

        1-类的构造方法里的第一行代码:super();

 

         -调用父类的空构造,先初始化父类对象

        2-如果父类中没有的空构造,则必须显示的在第一行代码中写出调用父类的哪个构造

    12-子类不能继承父类中似有的成员变量或方法

    

    13-成员变量/局部变量:  

      1-成员可以不赋初值,局部必须有初值

      2-初值:0   0.0  null 空格  false  

      3-成员变量在编译时就载入内存

    14-结论:

      1-如果父类没有空构造,则子类的空构造也不回默认分配,必须显示的声明出来

      2-规范:定义一个类时,尽量显示的将空构造声明出来

         1-子类的构造中不用显示的调用super(...)

         2-子类会重用空构造

         

  3-多态:一个对象的多种表现形态

    1-父类的引用指向子类对象

    2-使用:当在一个类中需要定义若干个相同功能的方法,这些方法的参数类型是兄弟关系,

     -这时就可以将这几个方法合并成一个方法,参数需要改成父类的引用

    3-表现方式:重写,重载

    4-instanceof:验证一个对象的类型

      1-验证对象在堆里的类型(new)

    5-强制类型转换:person p = new Stu();  Stu s = (Stu)p;

      1-前提:该对象在堆里new的就是该子类(instanceof true)

      2-子类--〉父类:自动

      3-父类--〉子类:强制

    6-封装类:

      1-自动装箱解箱(jdk1.5新特征):基本类型《--》封装类

  4-Object:超类

    1-构造:空构造

    2-toString():返回一个对象的字符串表示形式

    3-equals:

      1-==:比较两个对象栈里的值是否相等

      2-equals:比较两个对象的内容是否相等(堆里的内容)

--------------------------------------------------------

1--面向对象:现实---虚拟  

  1-编程:行为(方法)---->对象----〉类

    1-ooa  ood  oop

  2-类  对象

  3-特征:

    1-封装:类    方法   属性(变量)  包

      1-形成一个集合体的过程

    2-继承:

      1-抽象类----〉接口   抽象方法:理想

      2-类---〉接口  接口---〉接口

      3-继承:不用做出改变

       -实现:实现抽象方法

    3-多态:父类的引用指向子类对象

      1-instanceof

      2-重写  重载

  4-接口:

    1-属性(全局):public static final

    2-方法:public abstract

    3-static:

    4-final:常量  public final int num = 1;

      1-常量在定义是必须赋初值:在对象初始化前赋值

        1-在全局声明时给值:在编译时值进入内存

        2-在构造里给值:运行时动态给特定对象赋值

      2-在内存空间产生时,常量有值即可

      3-还可以修饰类 方法:

        1-修饰类:最终类:不能被继承

        2-修饰方法:最终方法:不能被重写

    5-static:静态

      1-修饰:属性,方法,类

      2-修饰属性:静态变量  类变量

        1-static一般情况下会跟final搭配使用

        2-属于类,不属于某一个对象,普通属性属于某一个对象

        3-可以直接由类名访问

        4-静态变量在内存中只产生一块内存空间

        5-在编译时就已经载入内存,对象属性在new时(运行时)才载入内存

        6-局部变量不能被static修饰

      3-修饰方法:静态方法

        1-可以直接由类名访问

        2-Math

        3-静态方法中不能直接访问非静态的方法或属性

         -不能使用this super关键字

      4-修饰类: 静态类

        1-只能修饰内部类

          1-内部类:类中的类

      5-静态代码块:

        1-语法:static{

System.out.println("aaa");

}

    2-运行时机:编译时

    3-作用:执行一个类中耗资源的代码,资源申请

  6-构造不能被static final  abstract

  

  7-static应用:

    1-单例模式:一个类在内存中只有一个实例

          1-私有的构造

          2-私有的对象

          3-共有的静态方法---〉返回值--〉私有的对象

          4-分类:

            1-懒汉式:饱汉式:当第一次调用静态方法时才初始化

            2-饿汉式:定义时直接初始化

   6-内部类:

     1-概念:类中的类

     2-优点:安全,只给外部类这一个类服务

     3-字节码:外部类$内部类.class

     4-匿名内部类:

       1-为了保证给一个方法传递的参数是唯一一个对象

       2-new的时候,new的是他的父类或者父接口

     7-链表:线性结构

--------------------------------------------------------

1--集合:

  1-自定义数组:3  add()

  2- 链表:head

  

2--集合:数组

  1-线性集合:Collection

    1-List:有序可重复的线性集合

      1-ArrayList:数组形式

      2-linkedList:链表

      3-操作:  

        1-定义

        2-添加:add()  addFirst()

        3-获取元素:get(index)

        4-长度:size()

        5-遍历:for  增强遍历foreach

    2-Set:无序不可重复的线性集合

      1-HashSet:hash算法

        1-hash码  hashCode():获取一个对象的hash码的数值格式

        2-如果需要存储自定义类型,则需要该类重写object的hashCode()方法

         -和equals方法

        3-规范:一个封装类需要重写object里的toString,equals,hashCode方法

        4-比较相等:

          1-==:比较基本类型,栈里的值是否相等

            1-所以如果比较复合类型,则比较的是地址

          2-equals:比较对象的内容是否相等,比较复合类型

      2-TreeSet:树

        1-自然顺序:compareTo:比较两个对象是否相等

        2-问题:

          1-不能存放不同的数据类型

          2-不能存放空值null

        3-compareTo:用来比较两个对象的大小顺序:来自Comparable接口

          1-如果想让一个类型的两个对象进行大小比较,实现Comparable,重写compareTo

      3-set的不可重复性:

        1-后来的如果跟之前的相同,则不进行add操作

  2-键值对集合:Map

    1-HashMap

      1-问题:

         1-可不可以放null?

           1-如果可以:value  key

           2-结论:都可以为null

         2-key  value:能不能重复

           1-如果可以:哪个可以重复

           2-结论:key不能重复,如果重复,则为修改动作

    2-TreeMap

      1-key不能为null

    3-遍历:借助keySet

    

  3-iterator:迭代器

    1-作用:对集合类进行遍历

    2-好处:不依赖下表访问集合

    3-方法:

      1-hasNext:判断有没有下一个

      2-next:返回下一个

    4-问题:如何获取一个接口的对象:

      1-通过new实现类

      2-如果一个接口没有实现类,通过另外一个类中的一个方法(返回值是该接口的对象)

  4-集合好处:

    1-变长

    2-可以存放任意数据类型

  5-泛型:

    1-数据类型

    2-可以表示任意数据类型

    3-作用:限制集合中所能存放的数据类型

    4-使用:需要替代成某一种数据类型

    5-表示:E  T  K  V

    6-不能表示基本类型,只能表示复合类型(泛型的原型是:Object)

  6-算法类:

    1-Arrays

    2-collections:

 1-myarray---><>

 2-借助LinkedList:栈  

--------------------------------------------------------

1--异常:

  1-bug:

    1-错误error:一定会发生的一种问题,不能通过技术手段处理掉

    2-异常exception:不一定会出现的一种问题,可以通过技术处理

      1-编译时:在编译阶段就能发生的一种异常

      2-运行时:在运行的时候出现的异常

    3-体系:throwable---〉exception(编译时)---〉runtimeexception

    4-解决:

      1-处理异常:try--catch---finally

        1-语法:try{

        ....可能出异常的代码

        }catch(异常对象){

         处理代码

        }finally{//可选的

         一定需要运行的代码

        }

        2-总结:

          1-finally可以省略

          2-catch里面的异常对象的类型要跟try中会发生的异常匹配

          3-如果catch中的对象没有匹配上,则相当于没有写try--catch

          4-多个catch时,先catch子类,后catch父类

          5-会在最后写一个catch:catch(Exception e)

          6-finally:资源释放类代码:close()

      2-声明异常:throws

        1-printStackTrace():打印异常栈里的信息

          1-名字

          2-异常信息

          3-哪一行出的该异常

    5-人工抛出异常:throw

      1-jdk内置了一些计算机默认的异常

      2-自定义异常:

        1-定义一个异常类:

          1-如果是一个运行时异常:继承RuntimeException

          2-如果是一个编译时异常:继承Exception

        2-重写一个构造方法

        3-使用:

          if(异常条件){  throw new MyException("message");}

        4-通常搭配throws使用

    6-目的:

      1-给用户人性化的提示方式

      2-为了保证程序能正常运行

2--工具类:

  1-字符串:

    1-String

      1-不可变字符串   String str = "abc";

      2-valueOf():将任意类型的数据转成String

      3-可以将string--〉任意类型

        1-int---Integer

         -double---Double

         -char---Character

        2-jdk1.5:新特性 :自动装箱解箱

        3-paseInt(String)  paseDouble(String)

      4-当字符串不需要频繁改变值,频繁读写时(读写效率高)

    2-StringBuffer

      1-可变

      2-字符数组

      3-线程安全:效率低

      4-当字符串频繁改变值时(节省资源,改变的效率高)

    3-StringBuilder

      1-可变

      2-线程不安全

  2-Math:

    1-random()---- 0--1

  3-Random类:伪随机类

1-种子:种子一样则随机序列一样

--------------------------------------------------------

1--工具类:

  1-BigInteger

  2-BigDecimal:精确工程运算类

    1-转换:double--->BigDecimal

      1-构造:传参格式是string,如果传递double相当于还是进行的了double的运算

      2-valueOf:会进行double值的处理

    2-javadoc命令

  3-日期操作:

    1-Date:

    2-时间元年间:

    3-DateFormat:日期格式化类

      1-抽象类

      2-子类:SimpleDateFormat

    4-Calendar:日期操作类

      0-日历字段:

        1-一年中的月份

        2-一月中的天数

        3-星期中的天数

        4-年中的天数

      1-set:给指定的日历字段,设置指定的值

      2-get:获取日历中指定的数据

      3-add:改变日历中的数据,在当前日历基础上加或者减多少

    5-正则表达式:

      1-解决问题:验证一个字符串的格式

      2-本质:字符串

      3-格式:

        1-字母:a-z

        2-数字:0-9  \d  \\d   

        3-符号:

          1-[]:匹配一个字符  [a-c]

          2- -:到

          3-{}:匹配次数  [abc]{1,4} X{1,}  X{2}

          4-*:次数 相当于{0,}

           -?:次数 相当于{0,1}

           -+:次数 相当于{1,}

          5-():完全匹配   (abc)

          6-|:或    (abc|def)

          7-.:匹配一个字符,任意字符

          8-\:转义    \.

            1-除了键盘上的特殊符号不需要转义,其他都需要转

          9-^:

            1-^[abc]:开头

            2-[^abc]:非法

          10-$:结尾   X$

      4-验证方式:matches

   6-Object:超类

     1-equals()  hashcode()

     2-toString():返回一个对象的字符串格式

       1-默认:xxxx@13123

       2-重写

     3-clone():实现对象的复制

       1-步骤:

         1-重写

         2-实现Cloneable

           1-标识接口:接口中没有任何属性和方法

           2-作用:起到一个标志作用

       2-满足特征:

         1-this != this.clone()---true

         2- x.getClass() == x.clone().getClass() --- true

         3-x.clone().equals(x)   --- true

     4-getClass():获取一个对象的类

     5-finalize():垃圾回收机制

       1-jvm会自动调用

       2-final  finally  finalize

         try{

         xxxxx;

         return 1;

         }catch(){

         

         return 2;

         }finally{

         return 3;

         }

        1-gc():触发垃圾回收器工作的方法

          1-调用该方法只能说是给垃圾回收器发出了一个指令,但是不代表垃圾回收器就会立刻运行

--------------------------------------------------------

1--Scanner

2--IO流:

  1-I:Input 数据进入内存

  2-O:Output:数据出内存

  3-流:字节

  4-参照物:内存

  5-文件:File  

    1-java.io

    2-获取文件属性

    3-修改该文件属性

  6-流:

    1-外部存储设备(文件,键盘,磁盘)----->内存:输入

    2-内存--------〉外部存储设备:输出

    3-分类:按照字节大小分

      1-字节流:以字节为单位进行读写的方式

        1-基础

        2-通用的

        3-输入流:InputStream

          1- int read(byte):方法非常特殊,两个返回值

            1-1个返回值:读取的字节数

            2-2个返回值:读取的字节数据

        4-输出流:OutPutStream

          1-FileOutputStream(f):建立一个文件的输出流

            1-问题:会覆盖文件中原来的内容

          2-追加模式:FileOutputStream(f,true)

        5-总结:流中有一个模块指针形式的参量,每次新打开一个流时,

        -参量总是指向文件的开头位置(0),在同一个流对象中,

        -该参量只会随着操作往后移动,永远不能移动回去

      2-字符流:以字符为单位

        1-升级版

        2-不通用(不能操作超文本(二进制文件))

--------------------------------------------------------

1--异常:

  1-try:直接处理异常

  2-throws:声明异常

  3-throw:  

    1-自定义异常:

      1-运行时

      2-编译时

2--工具类:

  1-String:

   1-String s = "abc";   String s = new String("abc");

   2-不可变

  2-StringBuffer  StringBuilder:

   1-可变字符串:StringBuffer sb = new StringBuffer()

   2-StringBuffer:线程安全  StringBuilder:线程不安全

  3-Object:超类

    1-clone():

      1-重写该方法:因为该方法是受保护

      2-实现Cloneable接口:object没有实现

        1-标识接口:空接口

           1-作用:标记  标记一个对象能否被复制(只要实现了该接口的类,其对象都可复制)

    2-getClass:获取一个对象的运行时类

    3-equals:比较两个对象的内容是否相等

      1-但是:object 中默认的equals原型却是比较地址(==)

      2-所以子类如果想要使用equals方法,则需要重写

    4-hashCode:获取一个对象的哈希码值

      1-计算机对内存中数据的管理机制

      2-协定:如果两个数值相同则哈希码相同

    5-finalize():垃圾回收器回收对象时调用的方法

      1-System.gc():触发垃圾回收器工作的方法

    6-toString():对象的字符串表示方式

      1-默认打印的是class+'@'+hashcode,如果需要改变则进行重写即可

      2-在输出语句中默认调用

  4-BigInteger:大整形,处理java中数值型所处理不了的数值运算

   -BigDecimal:精确工程运算类

   -UUID:equals:

  1-比较内容,内容相同不代表是同一个对象

  2-Set:

    1-HashSet:equals

    2-TreeSet:自然顺序(compareTo)

  3-协定:

    1-重写equals,有必要重写hashcode

    2-如果两个对象equals,则他们的compareTo返回0

 

1--IO流:java.io包

  1-计算机处理信息,文件:信息的载体(磁盘)

  2-io流:input  output

  3-参照物:内存:人机交互

  4-File:

    1-建立文件对象:4种方式

    2-File类中的各个方法的使用

    3-静态分隔符属性

  5-文件内容的操作:IO流

    1-input:输入流:从信息存储介质到内存

    2-output:输出流:信息从内存到存储介质

    3-stream:流:信息的传输过程(方向)

    4-分类:

      1-字节流:基础流(可以操作左右信息,包括二进制数据   图片  视频)

      2-字符流:专门操作字符的一种流

    5-字节流:

      1-InputStream:字节输入流

        1-FileInputStream

      2-OutputStream:字节输出流

        1-FileOutputStream

          1-追加模式:默认是替换: FileOutputStream(File file,boolean append):append=true

          

    6-过滤流:对数据类型进行过滤

      1-FilterInputStream/FilterOutputStream:没有进行相应的读写操作扩展

      2-DataInputStream/DataOutputStream:过滤流的两个子类

        1-原因:实现接口:DataInput/DataOutput

      

    7-字符流 :以字符为单位进行读写

      1-Reader/Writer:字符流的基类

      2-BufferedReader/BufferedWriter:缓冲字符流(可以直接操作字符串)

        1-reader:readLine:一次读取一行数据,但是不读取换行符

        2-writer:writer方法写完数据后需要刷新缓冲区(否则数据不会进入文件,除非缓冲区满 了)

         -close方法会自动刷新缓冲区

      3-OutputStreamWriter/InoutStreamReader:桥梁流(将字节流转换成字符流)

    8-对象流:直接对对象进行读写的流

      1-ObjectOutputStream/ObjectInputStream

      2-对象流具有过滤流特有的方法(实现了共同的接口),额外增加了一个方法WriteObject/readObject  

      3-序列化(串行化):将一个对象的状态保存起来的一种机制

        1-如何:实现Serializable接口

        2-反序列化:恢复对象状态的过程

        3-注意点:

          1-只保存属性值,不保存方法和构造

          2-不能保存静态属性

          3-只保存属性值和名字,不能保存修饰符

        4-transient:忽略序列化(比如密码)

    9-打印流:

    10-随机文件访问流:产生一个唯一标示符

--------------------------------------------------------

equals:

  1-比较内容,内容相同不代表是同一个对象

  2-Set:

    1-HashSet:equals

    2-TreeSet:自然顺序(compareTo)

  3-协定:

    1-重写equals,有必要重写hashcode

    2-如果两个对象equals,则他们的compareTo返回0

 

1--IO流:java.io包

  1-计算机处理信息,文件:信息的载体(磁盘)

  2-io流:input  output

  3-参照物:内存:人机交互

  4-File:

    1-建立文件对象:4种方式

    2-File类中的各个方法的使用

    3-静态分隔符属性

  5-文件内容的操作:IO流

    1-input:输入流:从信息存储介质到内存

    2-output:输出流:信息从内存到存储介质

    3-stream:流:信息的传输过程(方向)

    4-分类:

      1-字节流:基础流(可以操作左右信息,包括二进制数据   图片  视频)

      2-字符流:专门操作字符的一种流

    5-字节流:

      1-InputStream:字节输入流

        1-FileInputStream

      2-OutputStream:字节输出流

        1-FileOutputStream

          1-追加模式:默认是替换: FileOutputStream(File file,boolean append):append=true

          

    6-过滤流:对数据类型进行过滤

      1-FilterInputStream/FilterOutputStream:没有进行相应的读写操作扩展

      2-DataInputStream/DataOutputStream:过滤流的两个子类

        1-原因:实现接口:DataInput/DataOutput

      

    7-字符流 :以字符为单位进行读写

      1-Reader/Writer:字符流的基类

      2-BufferedReader/BufferedWriter:缓冲字符流(可以直接操作字符串)

        1-reader:readLine:一次读取一行数据,但是不读取换行符

        2-writer:writer方法写完数据后需要刷新缓冲区(否则数据不会进入文件,除非缓冲区满 了)

         -close方法会自动刷新缓冲区

      3-OutputStreamWriter/InoutStreamReader:桥梁流(将字节流转换成字符流)

    8-对象流:直接对对象进行读写的流

      1-ObjectOutputStream/ObjectInputStream

      2-对象流具有过滤流特有的方法(实现了共同的接口),额外增加了一个方法WriteObject/readObject  

      3-序列化(串行化):将一个对象的状态保存起来的一种机制

        1-如何:实现Serializable接口

        2-反序列化:恢复对象状态的过程

        3-注意点:

          1-只保存属性值,不保存方法和构造

          2-不能保存静态属性

          3-只保存属性值和名字,不能保存修饰符

        4-transient:忽略序列化(比如密码)

    9-打印流:

10-随机文件访问流:

--------------------------------------------------------

for update

1--打印流:

  1-PrintStream

    1-自动刷新

  2-PrintWriter

    2-默认关闭刷新功能,需要开启

 

2--随机流:RandomAccessFile

  1-seek():设置指针的偏移量(从文件开头算)

  

3--多线程:

  1-单线程:

  2-概念:

    1-程序:一系列代码数据文档的一个集合,对一个完整事件的描述    静态的

    2-进程:程序在内存中运行时所需要的资源(空间)      静态的

    3-线程:进程中的每一个运行单元      动态的

      1-单:

      2-多:

  3-作用:提高运行效率

  4-实现:

    1-继承Thread类

    2-实现Runnable接口

  5-步骤:

    1-继承或者实现父类或者父接口

    2-重写线程的主运行方法run

    3-通过调用start方法来运行线程

  6-时间片:cpu是由若干的时间片组成

    1-程序运行时,需要首先进入内存(等待),等待一个空闲时间片来运行程序;如果在该时间片的时间范围内程序运行完了,或者时间片时间到了但是程序没有运行完

     -将线程重新放回到内存中等待,所以线程在运行时,是通过start方法来通知cpu可以随意运行

  7-生命周期:

    1-创建(新建)状态:new

    2-就绪状态:start()

    3-运行状态:run()开始运行

    4-死亡状态:线程结束(run方法结束)

    5-阻塞(挂起)状态:在运行时,发生了IO异常

  8-优先级:setPriority()

  9-加锁:

    1-原因:为了解决多线程引发的数据部同步

    2-Synchronized

      1-给方法加锁

      2-过对象加锁

    3-问题:

      1-效率降低

      2-引发死锁

4-Thread.currentThread().getName():获取当前正在运行的线程的名字

--------------------------------------------------------

程序=算法+数据

1--流总结:

  1-计算机工作:输入输出

  2-输入输出的是:数据(信息)

  3-输出到:文件(信息载体)

  4-输入输出:信息流动的方向   参照物:内存(处理信息的相应的程序)

    1-入:由载体----》内存(程序)

      1-input   reader

      

    2-出:由内存----》载体

      1-output  writer

  5-File类:   对文件属性的操作

    1-createNewFile():创建文件

    2-mkdir():创建目录

    3-方法:

      1-length():long

      2-isHidden()

      3-renameTo()

      4-list()  listFiles()

    4-静态属性:separator:与操作系统有关的路径分隔符

  6-流:

    1-步骤:

      1-定义文件对象:File f = new File()

      2-定义字节流关联文件对象 : InputStream is = new FileInputSream(f)

      3-在2的字节流基础上可以进行二次封装

      4-进行读写

      5-关闭

2--线程回顾:

  1-实现:

    1-Thread类:真正的线程类

    2-Runnable接口     :线程的操作目标       new Thread(target)

  2-步骤:

    1-继承或者实现

    2-重写run:

      1-线程的主运行方法

      2-不能是同步方法

    3-点:

      1-优先级:1---10  默认5

      2-当前线程:currentThread()

      3-getName():当前线程的名字     setName

      4-生命周期:

        1-阻塞态不能直接回到运行态,回到就绪态

      5-同步(加锁):

    4-线程通信:

      1-sleep(long):

        1-持有锁睡觉

      2-wait()/notify():

        1-释放锁

        2-必须用在同步里

      3-join():A正在运行,B.join(),会将A挂起,等待B运行完,A才接着运行

        

      4-yield():A.yield()  A挂起

   5-生产者消费者模型:

     1-4个对象

     2-2个线程,2个操作目标

     3-生产者负责往容器(容量)里放食物,当容器满时,则生产者要暂停

     4-消费者负责从容器中取食物,当容器空时,则消费者要暂停

     5-当消费者取走一个食物时,需要将生产者唤醒

      -当生产者生产一个食物时,需要将消费者唤醒

      

     6-Component类    a-z食物

      -T1  T2线程

**空指针异常:

  1-原因:对为null的引用调用了其方法或属性

--------------------------------------------------------

1--网络编程:

  1-InetAdress:主机对象

    1-主机名

    2-主机地址

  2-IP:定义主机  192.168.1.1

    1-端口号:唯一定位主机上的一个应用程序  tcp 0---65535   udp0---65535

      80   21

      ftp  21

      http  80

  3-socket:套接字:ip地址和端口号的组合

    1-ServerSocket:服务器套接字对象

    2-Socket:客户端套接字

--------------------------------------------------------

1--socket编程:

  1-服务端:

    1-Serversocket   指定端口号

    2-等待客户端连接---》Socket

    3-对客户端开启输入输出流

    4-进行输入输出操作

    5-关闭

  2-客户端:

    1-获取服务器主机地址InetAddress

    2-根据主机和端口号获取服务器套接字

    3-获取服务器输入输出流

    4-进行输入输出操作

    5-关闭

2--URl编程:

  1-url   uri   urn

  2-格式:协议://地址:端口号/资源名     http://www.baidu.com:80/1.jpg  ftp    web   tomcat

  3-步骤:

  

  

3--GUI:图形编程

  1-java.awt:基础包

  2-javax.swing:扩展包

  3-组件:

    1-容器组件

    2-非容器组件

  4-布局管理器

 *5-事件监听:给某一个组件添加一个事件,当对该组件做出什么动作(addXXXListener)(xxx:action  mouse  key)时,执行该事件(方法)

    1-三个要素:

      1-事件源:触发动作的对象        注册按钮

      2-监听行为:当对事件源做出什么行为    点击注册按钮

      3-事件动作:当监听行为发生时,需要完成的动作    完成注册动作

4--反射:在运行时动态获取一个类的基本信息(属性,方法,父类,接口,包),并进行操作的一种机制

  1-缺点:

    1-异常多

    2-运行效率低

  2-获取一个类的类对象:

    1-Class.forName

    2-String.class

    3-p.getClass()

  3-Constructor:代表类中的每一个构造对象

    1-getConstructor(parameterTypes)

  4-Field:代表类中的属性对象

    1-getField("name"):获取公共属性

    2-getDeclaredField:获取已声明属性

  5-Method:代表类中的一个方法对象

    1-getMethod(name,paramTypes...)

    2-invoke:用于反射调用该方法对象

      1-如果方法无返回值,则该方法返回null

5--动态方法传参:

   1-语法:methodNasme(type... obj){}

   2-调用:类似方法重载

--------------------------------------------------------

java:跨平台:

 

数据库:数据的仓库   完整的数据管理系统

 作用:存储数据

 

1--jdbc:

  1-计算机语言跟数据库之间进行通信的一种技术

  2-步骤:

    1-加载驱动

      1-导入库文件(jar包):工程(右键)--》build path-->config path-->lib选项卡--》点击(add jars)--》ok

      2-加载驱动

     Class.forName(driver);

    2-创建连接

  Connection conn = DriverManager.getConnection(url, user, password);

  String sql = "delete from emp where empno=7735";

3-定义执行sql语句的对象

  Statement stmt = conn.createStatement();

4-执行sql

  int count = stmt.executeUpdate(sql);

5-关闭连接

  stmt.close();

  conn.close();

  3-事务:

  4-预处理机制:

  5-存储过程:

  6-数据源(数据库连接池)技术:

 国际化:

 单例模式

 适配器模式

 工厂模式

2--分层:

  1-层与层之间的通信有顺序

--------------------------------------------------------

1--jdbc:

   1-* 单例模式:

 *  1-一个在内存中只有一个对象    new Object()

 *  2-设计:

 *    1-构造私有化

 *    2-对外提供一个共有的静态方法

 *    3-提供私有的静态对象(属性)

 *  3-分类:

 *    1-饱汉式:当第一次调用方法时才创建对象

 *    2-饿汉式:在编译时就创建对象

 

   2-Properties:属性(键值对)文件操作类

     1-通过类加载器中的一个方法:getResourceAsStream获取一个文件流对象

     2-调用该类中的load方法加载流中的键值对

     3-调用getProperties(key)

   

   3-ClassLoader:类加载器对象

     1-一个jvm只有一个类加载器

     2-作用:加载类,创建类空间对象

     3-工作顺序:jvm启动时,首先bootstap加载器加载底层核心库(c  c++)

      -第二步加载jdklib目录中的ext/jar

      -第三步加载应用库classpath(class:用户自定义的class和jdk/lib(dt.jar tools.jar))

   4-预处理:

     1-sql注入攻击:在输入的信息中加入一些sql片段,让底层原来的sql变为另外一个样子

        1-问题:安全性低

     2-预处理:PreparedStatement

     3-好处:

        1-提高安全性

        2-sql的书写简单

        

   5-事务机制:

     1-oracle:

       1-savepoint a;//设置事务保存点

       2-commit

       3-rollback  to a;

        -tollback;//回退所有保存点

       4-只读事务:set Transaction read only;  

     2-jdbc:

       1-默认自动提交事务

       2-开启事务步骤:

         1- conn.setAutoCommit(false)

         2-conn.commit();

         3-conn.rollback();

   6-jdbc调用存储过程:in  out  in out

     1-常用过程语法:

       1-只有in参数

         1-预处理sql

         2-给in参数set值

         3-执行

       2-有in,有out(返回简单数据)

         1-预处理语句

         2-给in设置值

         3-给out注册

         4-执行

         5-获取out的值

       3-有in,有out(集合):给定一个年龄,返回该年龄的所有人

       4-有inout

         1-先设置带入过程的值

         2-再对该参数进行注册

         3-执行完后get获取该参数的值   :注意:这三步中的序号保持一致

--------------------------------------------------------

总结:

 1-反射:

   1-Class获取类对象

   2-构造对象

   3-方法

   4-属性

 2-jdbc

   1-加载驱动:Class.forName("Driver")

   2-Connection: DriverManager.getConnection

   3-Statement(PreparedSatement,CallableStatement)

     1-存储过程:

       1-in:setXXX

       2-out:先注册后get

       3-inout:先set再注册再get

       4-游标(列表):(ResultSet)getObject()

   4-处理结果:int  ResultSet(next  getXXX(""))

   5-关闭

 

1--数据源技术:

   1-:

   2-dbcp

     1-导入jar:commons-dbcp-1.4.jar  commons-pool-1.5.5.jar

     2-导入配置文件:配置键值对数值

     3-获取DataSource

   3-c3p0:

     1-注意:配置文件名字固定:c3p0-config.xml

     2-优点:

       1-封装更完善

       2-自动回收连接功能

       3-可以同时配置多组连接属性

2--国际化:让app能自动适应当前操作系统的语言环境

  1-本地化:

  2-步骤:

    1-开发语言包

      1-后缀:.properties

      2-前缀:保持一致

      3-xxx.prperties(默认包)  对应环境的包:xxx_zh_CN.properties

        1-zh_CN   jp_JP  en_US  fr_FR

    2-Locale指定语言环境  Locale.getDefault()

    3-ResourceBundle加载对应的语言包信息

    4-调用ResourceBundle.getString(key)

  3-语言包的加载顺序:

    1-首先找对应locale的语言包文件

    2-再找当前操作系统对应的

    3-再找默认的

    4-报错:MissingResourceException

  4-日期/数字:

    1-getDateInstance(style, locale)

 

 

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 买手机送话费的卡不想用了怎么办 到银行存钱被骗买保险了怎么办 去银行存钱被骗买了保险怎么办 京东申请退款后卖家又发货了怎么办 苹果6s没有4g网怎么办 花呗分期付款买手机额度不够怎么办 手机天猫不支持购买淘宝商品怎么办 天猫国际购买商品狠盾怎么办 在微信上微拍堂买东西被骗了怎么办 京东自营买到返修手机怎么办? 7p弯了怎么办能修复吗 农商银行app登录密码忘了怎么办 网址上的重庆时时彩不能提现怎么办 天天中彩票自己账户登录不了怎么办 天猫上卖王者荣耀的兑换码是怎么办 身份证借别人开淘宝永久封店怎么办 天猫店铺被扣12分怎么办 天猫法人变更之前的天猫贷款怎么办 在日本旅游遇到精日导游怎么办 银行资金交易异常卡被冻结怎么办 如果淘宝被盗了店铺乱上东西怎么办 快递不送货直接代售点签收怎么办 淘宝快递没收到却显示已签收怎么办 支付宝余额未满16受限怎么办 未满16岁支付宝余额受限怎么办 手机天猫购物买的数量大怎么办 扣扣游戏领礼包出现账号异常怎么办 美容院转让给别人客人要退钱怎么办 卖家毁约中介费担保费怎么办 天猫买东西店家不开增值税票怎么办 天猫专卖店品牌不授权了怎么办 临时京东账号被冻结买的东西怎么办 天猫强行退款给买家商家怎么办 淘宝店铺没交保证金被释放了怎么办 沭阳县地段生过了报名时间怎么办 淘宝买东西地址和收件人填错怎么办 才装修的房子马上要住怎么办 淘宝发货显示无效的发货人怎么办 微信位置和所在地位置不一样怎么办 qq号被冻结了短信发不出去怎么办 商户刷自己信息卡被冻结怎么办