javase整合

初级

1.java基础----软件不要安装在中文目录下。
(1)JDK环境---版本:1.8---配置环境变量:[java javac命令只能在当前所在目录使用]
可以在全局使用java和javac命令

(2)写了HelloWorld
(3)变量 语法: 数据类型 变量名=值;
   [1]数据类型: 基本数据类型和引用数据类型。
      基本数据类型8个: byte short int long float double boolean char.
      引用数据类型:  接口,类,数组,枚举[常量]
   [2]变量名定义规则: 1.有字符,数字,_和$组成 2.不能以数字开头  3.不能使用关键字。  
(4)运算符:
   [1]赋值运算符:=,+=,-=,*=,/=,%=
   [2]算数运算符: +,-,*,%,/,++,-- [位置可以放在前面和后面]
   [3]关系运算符: >,>=,<,<=,==,!= 返回结果一定是boolean类型
   [4]逻辑运算符: &&,||,!  连接关系运算符
   [5]三目运算符: 表达式?值:值
 优先级: 算数运算符>关系运算符>逻辑运算  
 ==比较: 基本类型:比较的是值,引用类型:比较的引用地址。
 equals()比较: 只能比较引用类型。默认比较的是引用地址。如果想比较值那么必须重写equals方法。因为String,Integer重写了equals

 (5)控制语句:
    if(){}else if(){}.....else{} 
    ==if可以单独使用==

   switch(表达式){
       case 值: 语句块;break;
       case 值: 语句块;break;
       ....
       default: 
   }
   表达式:得到的结果可以是什么类型? byte,short,int,char,String类型【1.7以后】
     //碰到满足需要的case后,会把该case后的所有case以及default都执行

​    for(初始化;条件;变化){ //初始化只会执行一次
​         循环体。
​    } 

​    while(条件){
​       循环条件;
​    }
   语句嵌套:
​      1.99乘法表。 
  (6) 数据组:
​      格式: 数据类型[] 数组名=new 数据类型[长度];
​      下标从0~长度-1;
​      数组名[0]获取第一个元素
​      格式: 数据类型[] 数组名={元素,元素....};
​     算法: 排序 [冒泡排序 手写,插入排序,选择排序....] 
​      for(int i=0;i<arr.length;i++){ //遍历的次数
             for(int j=arr.length-1;j>i;j--){
                 if(arr[j]<arr[j-1]){
                     int tmp=arr[j];
                     arr[j]=arr[j-1];
                     arr[j-1]=tmp;
                 }
             }
        }
        System.out.println(Arrays.toString(arr)); 

 (7) java OOP面向对象编程。---纵向编程。
    三大特点: 
      封装:使用了private修改类成员,使其外界无法直接访问。一般封装属性。
      继承:extends继承父类中的成员。提高代码的复用性。 
           只能单继承。 
           抽象类: 使用abstract来修饰。不能被实例化,只能被子类继承。
           接口: interface.里面的属性都是静态常量,方法都是抽象方法
      多态: 一个对象具有多种形态。 
            向上转型:子类对象可以转化为父类对象。自动转化 
            向下转型: 父类对象转化为子类对象,需要手动转化

高级

1. 异常: 处理异常的方式:
    try{可能发生异常}catch(){捕获异常}finally{资源关闭}
    throws 抛出异常 写在方法名()后面, 调用者。
2. 集合体系结构:
     Collection: 
         |--List: 有序,可重复。
            |---ArrayList:底层数据结构:数组,特点:查询快,增删慢。当数组元素满了,动态扩容。把数组中原来的元素复制到新数组。新数组的长度是原来的1.5倍。
            |---LinkedList: 底层双向链表。特点: 查询慢, 增删快。
         |--Set:无序,不可重复。
            |---HashSet:底层哈希算法。
     Map:8
        |---HashMap: 底层1.7和1.8不一样。
          1.7:底层使用数组+链表。链表是头部插入
          1.8: 底层使用数组+链表 或者数组+红黑树,链表使用尾部插入。
          如果冲突个数特多时使用红黑树。当冲突个数高于8个转化为红黑树。

     Collections:集合的工具类      

3. IO流:
    InputStream: 字节输入流
    OutputStream:字节输出流
==========================文件操作=====================    
    Reader:字符输入流
    Writer:字符串输出流
=========================文本操作======================

4. 线程
   (1)创建线程的方式:1.继承Thread重写run方法 2.实现Runnable接口 3.实现Callable接口。 Callable有返回值,Runnable无返回值。
   (2)线程的状态:
        NEW--->Start---进入就绪状态---->获取CPU时间片--->进入运行状态--->
        syn--->堵塞状态---sleep|wait--等待状态。----终止状态
 NEW--->RUNABLE--->BLOCKED---->WAITING----TIME_WAITING----TERMINATED  
   (3)线程池:
     创建方式: new ThreadPoolExecutor()原始的线程池。
     单一线程池:
     固定长度的线程池:
     可变线程池:
     延迟线程池:

5. JDK8的新特性:
    1.Lambda表达式: 接口必须是函数式接口。函数接口:有且仅有一个抽象方法。
    2.Stream流:针对集合和数组的操作。Stream流类中包含很多方法。
    3.方法引用:  
    4.时间类:

6. 设计模式: 23种
   [1]单例模式: ---恶寒和懒汉【线程安全问题--->双重校验锁 手写】
   [2]工厂模式:
   [3]动态代理:---JDK动态代理[基于接口]和Cglib动态代理[基于当前类的子类]。
   [4]观察者: 
   [5]建造者模式
   [6]适配器模式:
   [7]桥接模式 等等

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值