Java基础

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

·JDK:Java Development Kit 的简称,Java 开发工具包,提供了Java 的开发环境和运行环境。  ·JRE:Java Runtime Environment 的简称,Java 运行环境,为Java 的运行提供了所需环境。

        具体来说 JDK 其实包含了 JRE,同时还包含了编译 Java 源码的编译器Javac,还包含了很多 Java 程序调试和分析的工具。简单来说:如果你需要运行Java 程序,只需安装JRE 就可以了,如果你需要编写 Java 程序,需要安装 JDK。

(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都执行,直到break为止。

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

​   ④ while(条件){
​       循环条件;
​    }
  语句嵌套:
​      1.99乘法表。  

for (int i = 1; i <= 9; i++) {
    String sum="";
    for (int j = 1; j <= i; j++) {
        sum+=i+"*"+j+"="+i*j+"   ";

    }
    System.out.println(sum);

}

 (6)数据组:
​      格式: 数据类型[] 数组名=new 数据类型[长度];
​      下标从0~长度-1;
​      数组名[0]获取第一个元素
​      格式: 数据类型[] 数组名={元素,元素....};
​      算法: 排序 [冒泡排序 手写,插入排序,选择排序....] 

int[] numbers={16,25,9,90,23};
for (int i = 1; i < numbers.length; i++) {
    for (int j = 0; j < numbers.length - i; j++) {
        //比较相邻两数的大小,如果大于后者,则交换位置
        if (numbers[j] > numbers[j+1]) {
            int temp=numbers[j];
            numbers[j]=numbers[j+1];
            numbers[j+1]=temp;
        }
    }
}
System.out.println("排序之后"+ Arrays.toString(numbers));

  (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:字符串输出流
=========================文本操作======================

        字节流和字符流的区别是:字节流按 8 位传输以字节为单位输入输出数据,字符流按16 位传输以字符为单位输入输出数据。

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]桥接模式 等等

Mysql数据库:--CRUD 增删改sql语句

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值