zoukankan      html  css  js  c++  java
  • java 学习汇总

    java高价进阶架构

    -------java概述-----------------------------------------------------------------------------------------
    1.Java 语言概述
    jdk=java development kit 1.0---jdk14
    2.java语言平台版本
    J2SE:桌面程序
    J2ME:嵌入式设备程序
    J2EE:servlet,jsp开发web程序
    3.java语言特点:
    简单,解释性,面向对象,高性能,分布式处理,多线程,安全性,开源,
    跨平台(.class 安装java jvm 虚拟机);
    安装java jvm 虚拟机==JRE
    安装win jvm 虚拟机
    安装mac jvm 虚拟机

    JRE(JAVA Runtime ev java 运行环境):包含Java虚拟机和java程序所需的核心类库等
    JDK:JAVA开发工具包:包含JRE和开发工具(编译工具javac.exe,打包工具jar.exe)等

    4.JDK,JRE,JVM三者关系:
    4.1 JKD开发工具包 ---------------------JAVA编写的开发工具包,是面向开发人员的提供API帮助开发功能
    4.2 JRE运行环境----------------------JAVA程序运行环境,有就JRE就可以运行程序不需要JDK
    4.3 JVM虚拟机----------------------JVM运行字节码文件.class代码,将代码翻译给对应的操作系统执行实现跨平台的代码
    4.4 OS操作系统--------------------运行JVM翻译之后的代码

    5.为什么要学java
    - 23年独立开发的历史
    - 83次荣获ITOBE排行榜第一
    - 90%的服务器使用Java
    - 45.5%的开源项目使用Java
    - Java语言易学易用还跨平台
    - Java市场需求大,就业岗位多,岗位薪资水平高

    6. 环境安装
    https://www.oracle.com/index.html
    https://developer.oracle.com/ Java Se Development kit 14


    -----变量定义语言规范------------------------------------------------------------------
    1.数据类型:
    基本数据类型:
    四种整型:
    byte:8位=一个字节= - 2~7
    short:16
    int :32
    long:64
    二种浮点型:
    float 4字节
    double 8字节
    字符型:char 2字节
    布尔型:boolean 不能确定
    原始数据类型:8大基本数据类型+void

    2.变量定义:定义语法:数据类型,变量名称=变量的值, double price=45.3
    变量名定义规则:变量名不能包含 & _;不能以数字开头,变量要有意义,变量以小写字母开头,不用中文命名;

    3.变量运算:
    四则运行:+,-,*,%
    比较运算:>, < ,>=,<=,==, !=
    逻辑运算: &&,|| ,!
    位运算:<<,>>,<<<,&,|~,
    4.变量转换:
    自动转换
    强制转换
    byte b=120;
    shor st=320;
    int age=30;
    long height=3000;
    float price=3.2f;
    double price2=34.3
    char ch='a';
    boolean flag=true;
    int a=3;
    System.out.println(a++);//3 递增,递减【递增在前,先计算后输出,递增在后,先输出,在计算】
    System.out.println(++a); //5

    shor s1=1;
    shor s2=s1+1;
    shor s2=(short)(s1+1);
    s2+=1;//s2=s2+1;//不能提示结果类型;

    5.流程控制:
    if else;
    switch case; switch(变量) { case 变量值1 语句;bread;case 2 语句;bread;default;}//语句接收的类型是:整型,字符型,字符穿类型(JDK1.7)
    for:for(int i=1;i<10;i++){System.out.println("a"); a++;}
    while, while(a<10) {System.out.println("a"); a++;}
    do--while, do{ System.out.println("a"); a++;}while(a<10);
    a>b?a:b
    6.跳转语句:
    continue:跳出当次循环
    break:退出当前循环体,外层循环继续执行
    return: 退出当前方法体程序

    7.数组:存储相同类型的一组值
    int[] a=new int[5]; a[0];a.lenght;
    int[] nubmers=new int[4];
    int[] nums=new int[]{1,2,3,4};
    int[] ages={1,2,3};

    int[][] table= new int[3][3];
    int[][] tables={{1,2,3},{2,3,4},{2,2}};

    8. 数组分配的内存空间
    栈区:局部变量 int ages[] =oxff110 内存地址;程序计数器;
    堆区:存储对象 new int[4]; ages[0]=oxff110 内存地址

    9.IDEA IDE 工具的使用
    IDEA 2020.1.3
    https://www.jetbrains.com/idea/download/#section=windows Ultimate

    psvm //快捷生成main方法
    numbs.fori //快捷生成for循环
    numbs.for //快捷生成foreach循环
    sout // 快捷生成System.out.println();
    变量名称.sout//快捷生成System.out.println(b.name);
    new 对象().var //快捷补全变量名称 B b=new B();
    alt + insert //快捷生成setter,getter属性
    ctrl +d // 向下复制快捷键
    ctrl +alt + m //提取方法


    -------OOP---------------------------------------------------
    1.面向过程:自己是参与者;

    2.面向对象:自己是领导者,做事之前都想有没有什么人能帮助我完成(那些对象)
    2.1找对象:大象,冰箱,人
    2.2给对象定功能:
    冰箱:开门,关门,装大象
    人:打开冰箱们,关闭冰箱门,把大象放进冰箱
    大象:属性,
    2.3 找对象帮我完成功能(依赖关系):

    3.对象和类的关系
    类是对象模板,对象是类实例
    类:物以类聚,具有相同特征和行为的一类事物的抽象;
    对象通过new关键字创建

    4.面向对象的特征
    封装:隐藏类实现的细节,提高代码复用性
    支付:
    类的属性私有化:提供需要给外部访问和设置的权限,属性对应setter,getter方法组;
    提供外部调用方法接口;
    setter 现有属性的合法性
    继承:
    子类继承父类的非私有的全部方法,属性;继承了不可见
    extends 关键字来完成继承;
    覆写:重写:子类中定义了和父类中一样的属性和方法,则调用的是子类的属性和方法
    用父类引用了子类的方法,调用的还是子类的方法;
    supper.hello()
    supper();//调用父类的构造函数
    那些方法和类不能被继承:
    static final 方法不能被继承=密封类
    final修改的方法不能重写;
    一个类只能继承一个类:单继承
    具体类继承抽象类,必须实现方法;override
    抽象类继承抽象类,不用实现抽象方法;

    多态:
    重写:子类重写父类的方法;
    重载:在用一个类中存在不同参数列表(参数类型,参数个数,参数顺序)的方法;
    与方法的返回值无关,与方法的参数名称无关

    5.抽象类:abstact 关键字修饰,具有某种对象的特征,但不完整;
    抽象方法必须是抽象类,抽象类不能实例化
    抽象类里,可以有具体的方法;

    6.接口:约定,能力,implements
    定义在接口中的方法都是公共的抽象的;
    接口中不能有具体的实现方法,jdk8之后可以有具体的方法;default void hello(){println("");}
    在接口中定义的属性都是常量;public static final String name="a";


    7.集合:
    Float.class
    collection
    list:元素可以重复,保证顺序性
    arrayList.asList()

    LinkedList
    list.add()
    set接口特点:元素不能重复,不保证顺序
    hashset
    treeset.get(1);
    hasmap.put("key","value");
    hasmap.keyset();
    hasmap.values();
    masmap.get(11);
    Set keyset=hasmap.keyset()

    Collections.reverse(list).
    Collections.shuffle(list);
    Collections.println(list);

    8.JDBC
    8.1.下载驱动
    8.2 加载驱动
    8.3 根据驱动对象获取链接数据库的对象connection
    8.4 根据connection对象创建编译对象statement
    8.5根据Statement对象设置执行的sql语句和参数
    8.6使用statement对象执行sql语句并处理返回结果;
    private static void genericMethod1() {
    try {
    // 加载驱动
    Class.forName("com.mysql.cj.jdbc.Driver");
    // 通过驱动管理类DriverManager获取连接对象
    String url = "jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=GMT%2B8";
    Connection connection = DriverManager.getConnection(url, "root", "123");
    String sql = "select * from t_user where user_name like ? and user_gender=?";

    // 创建编译对象
    PreparedStatement pst = connection.prepareStatement(sql);
    // 设置参数
    pst.setString(1, "%han%");
    pst.setString(2, "女");
    // 执行SQL语句并处理返回结果
    ResultSet resultSet = pst.executeQuery();
    // 把获取结果输出到控制台
    while (resultSet.next()) {
    System.out.println(resultSet.getString("user_name")+","
    +resultSet.getString("user_gender"));
    }

    // 释放操作资源
    resultSet.close();
    pst.close();
    connection.close();
    } catch (Exception e) {
    e.printStackTrace();
    }
    }

    private static void genericMethod() {
    try {
    // 加载驱动
    Class.forName("com.mysql.cj.jdbc.Driver");
    // 通过驱动管理类DriverManager获取连接对象
    String url = "jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=GMT%2B8";
    Connection connection = DriverManager.getConnection(url, "root", "123");
    // 创建编译对象
    Statement statement = connection.createStatement();
    String name = "han";
    // String sql = "select * from t_user where user_name like '%"+name+"%'";
    // SQL注入问题
    String sql = String.format("select * from t_user where user_name like '%s' and user_gender=%s","%hanmei%' -- ","女");
    // 执行SQL语句并处理返回结果
    ResultSet resultSet = statement.executeQuery(sql);
    // 把获取结果输出到控制台
    while (resultSet.next()) {
    System.out.println(resultSet.getString("user_name")+","
    +resultSet.getString("user_gender"));
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    }

    -------------------- idea 安装及简单介绍和简单项目部署---------------

    下载:idea https://www.jetbrains.com/idea/download/download-thanks.html?platform=windows

    下载:jdk1.8

    配置tomcat
    创建javaweb项目

    file--new project--empty project //创建解决方案
    file -new module
    发布:add config

    -------------------Javeweb-tomcat---------------------------------
    1.web服务器: tomacat:
    静态服务器:nginx(只能发布.html页面访问
    动态服务器:apache tomat,jetty,weblogic,自带动态页面编译位静态页面;

    2.下载tomcat服务器:https://tomcat.apache.org
    https://tomcat.apache.org/download-80.cgi 8.5

    3.直接解压

    4.验证tomacat是否可用:C:java_05_lessonapache-tomcat-8.5.70instartup.bat
    http://localhost:8080

    ----------------javeweb - servlet------------------------------------
    servlet:运行在服务端的java应用程序 =iis/tomcat
    定义:在创建web项目中引用tomcat里面提供的servlet-api.jar类库;
    创建一个servlet
    public class MyServlet extends HttpServlet{

    }

    serlet生命周期:
    实例化--初始化(init()--调用分发请求service---destroy销毁

    jsp
    el表达式
    Filter
    listener
    mvc


    java面试题:
    16773/00085814
    1.四种整型:
    byte:8位=一个字节= - 2~7
    short:16
    int :32
    long:64

    2. int a=1;
    System.out.println(a++);
    System.out.println(++a);
    3.接口可以被实例化吗? 不能,没有构造函数,接口可以多实现,接口和接口间可以继承,接口和类之间只能实现,不能继承;

    Java基础
    https://ke.qq.com/course/2770403?taid=9894973292561891&tuin=65d16efb

  • 相关阅读:
    结构体的malloc与数组空间
    绘制K线图
    加载文件
    数据分析(绘图)
    GIT操作
    疑难杂症汇总
    Shell编程2
    shell编程1
    shell命令2
    Shell命令1
  • 原文地址:https://www.cnblogs.com/csj007523/p/15168621.html
Copyright © 2011-2022 走看看