java基础框架

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_37194624/article/details/79383189
day01
Java语言特性 两点
环境变量 特点 path和classpath
注释   解释说明 调试程序   分类:单行 多行 文档
关键字 特殊含义 小写 会变色
标识符 类 接口 方法 常量 变量器名字 组成:字母 汉字 _和美元 ‘’‘’非数字开头 非关键字 分大小写
       命名规则 包 接口和方法 变量 常量(_隔开)
   day02
常量 字面值(整数 浮点数 字符 字符串 布尔 空) 自定义(面向对象)
进制 四大进制的表现形式 进制转换 原码 反码 补码
变量 基本(数值(整数:byte short int long浮点:flaot double) boolean char) 引用类, 接口, 数组(后面讲解)
数据类型及数据类型转换
运算符(算术/符合 赋值 比较/关系 逻辑 位移 三目)对常量,变量操作
   day03
两个整数交换
键盘录入 特点:2点 过程:导包 创建 获取
  day04
流程控制(顺序/判断 选择(if switch) 循环(for,while,for..while))清楚控制语句的执行顺序 水仙花 九九乘法表
控制跳转语句 break(单层)continue(当前)return(方法)
方法概述和格式说明(方法重载)两个明确(参数列表,返回值类型) 调用:直接,赋值,输出
方法重载: 允许在一个类中,同时存在一个以上的同名方法,参数个数和类型不同
  day05
数组 一维 二维 多个同种数据 初始化:静态:int[] i=new int[3]动态:int[] i={1,2,3}; 成员变量和局部变量
    问题 越界和空指针 操作:遍历,长度,最值,反转,查表法,元素查找(第一次出现的索引)
参数传递 形式参数改变 基本数据无影响 引用有
  day06
面向对象的思想 面向过程:研究步骤和过程 面向过程开发:面向具体的每一步过程和节奏,并把每一步过程和步骤完成 研究对象 亲力亲为
面向对象:根据不同的功能,进行不同的(功能类似)封装 需要时调用,无需编写 [需求太多时,亲力亲为太麻烦] 
 面向对象开发:不断的创建对象,使用对象,指挥对象做事:
面向对象:对象 面向过程:步骤 特征 封装 继承 多态
类与对象及其应用 学生与班长 特点:符合习惯 简单化 执行变指挥 原因:模拟现实事物
成员变量和局部变量的区别 内存位置 类中位置 初始化值 生命周期
匿名对象 无名字 new Student() te:仅调用一次方法,参数传递
封装(private) 隐藏细节 提供访问 特点:提高复用和安全性
private:权限修饰符 修饰成员变量和方法 被修饰只能在本类访问
this关键字 本类对象引用 谁调用代表谁 局部变量隐藏了成员
     day07
构造方法 方法名和类名相同,无返回值类型和具体返回值 作用:对象成员初始化 (学生,手机类)
static 关键字 特点:类加载,优先对象,被所有对象,类名对象名访问 注意:无this 静访问静,非静皆可
静态变量和成员变量的区别 所属(方法区的静态区) 生命周期 调用(静类对象 成员对象) 所属 (静态类 成员对象)
帮助文档
随机数 int number = (int)(Math.random()*100)+1; Math 基本数学运算
    day08
代码块 {}括起来的 分类 局部,构造,静态
继承 相同属性提取到一个类 好处:复用维护以及类与类产生关系 成员访问就近原则 单继承和多层继承
  作用:沿袭父类,定义特有
方法重写与方法重载的区别 子类出现和父类一样的方法
final关键字 修饰类,变量,成员方法
 不想让子类重写父类方法
   day09
多态(动态绑定机制)
多态的概述 事物存在的多种形态
多态前提 继承 重写 引用
多态的成员访问特点 代码体现 编译看。。,运行看。。 成员变量左左 成员方法左右 静态方法左左
多态的好处和弊端 好:维护 扩展 弊 不能使用子类特有功能,向下转型解决
向上转型和向下转型 Person p = new SuperMan();向上转型 SuperMan sm = (SuperMan)p;向下转型
多态内存图
抽象类
抽象类的概述 没有方法体的方法应该定义为抽象方法,有抽象方法的为抽象类
抽象类特点 abstract修饰,有抽象方法必是抽象类,有构造方法,多态间接实现实例化,子类具体类复写父类
抽象类的成员特点 成员变量,常量 构造方法:父类数据初始化  成员方法抽不抽象接口
abstract不能和private static final共存 抽象可以无抽象类(但不能创建对象)
接口
接口的概述 额外功能 方法特征的集合
接口特点:多态间接实现实例化 无构造方法 子类具体类复写父类
接口的成员特点 成员常量 public static final 成员方法 public static修饰
  类与类,类与接口,接口与接口的关系 类与类 单继承,多层继承 类与接口:单多实现 接口与接口:单多继承
抽象类与接口的区别 1.成员区别(成员变量 构造方法 成员方法) 2.关系区别 2.设计理念
day10
包 文件夹
权限修饰符 private 默认 protected public
内部类 把类定义在其他类的内部 特点::内部类可以直接访问外部类的成员,包括私有。2.外部类要访问内部类的成员,必须创建对象。
  分类:成员 局部 调用成员内部类  Outer.Inner oi=new Outer().new Inner();调用静态内部类  Outer.Inner oi=new Outer.Inner();
  调用局部内部类必须在方法中建立局部内部类对象调用
  成员内部类常见修饰符 private 保证数据安全 static 简化创建对象,方便外部访问
匿名内部类 局部内部类的简化 前提:需要一个类或者接口 本质: 就是继承一个类或者实现接口的子类对象
格式;new 类名/接口名(){方法重写}; new Jump(){public void jump(){System.out.println("跳高")}};
    day11
eclipse安装使用(了解)
object 继承体系中的顶层父类 java中的上帝 hashCode()哈希值 getClass()字节码文件 toString()成员变量 equals默认比较地址值.  
    day12
Scanner(接收键盘录入数据) hasNextXxx()判断录入数据是否是Xxx类型
String(字符串)一但被创建无法改变 相关的构造方法 成员方法 获取功能
    day13
String 是不可变的字符序列 , 而 StringBuffer 和 StringBuilder 是可变的字符序列
StringBuffer 安全的,效率低 
StringBuilder 不安全的,效率高 
数组常见操作*****
必须先遍历)
                冒泡排序  相邻元素两两比较,大的往后放,最大值出现在了最大索引处
高级(选择)排序  从0索引开始,依次和后面元素比较,小的往前放,最小值出现在了最小索引处
二分查找(必须先排序) 比较大或者小查中间元素就能减少一半的元素,节约时间,提高效率。
    day14
正则表达式 描述或者匹配一系列符合某个句法规则的字符串的单个字符串
Pattern和Matcher类 模式器和匹配器 正则获取功能所需要使用的类
Math类 基本数学运算规则
Random类 随机数
System类 有用的类字段,方法。不能被实例化 gc exit(0) currentTimeMillis
BigDecimal类 能精确的表示、计算浮点数
Date类 当前系统时间,精确到毫秒
SimpleDateFormat类 日期/时间格式化子类的抽象类 算算你来这个世界多少天
Calendar类 操作日历 获取任意年份2月份天数
    String,StringBuffer的转换 append和构造方法 StringBuffer,String的转换:sb.substring(0, sb.length()) new String(sb) toString
数组转换成String 必须先遍历append数组数据
Arrays toString,sort,BinarySearch;
基本数据类型包装类 概述:对基本数据进行更多的操作 常见:String和int类型的相互转换
int>>String:valueOf toString String>>int:Integer.parseInt Integer.intValue

     day15
对象数组 存储对象 Student[] s=new Student[3];
集合 存储多个不同元素collection 数组和集合的区别(长度:集合不变 数据类型:集合引用,基本 内容) 迭代器遍历(iterator)
数据结构 存储数据的方式 栈,队列(先进先出) 数组(查快, 链表(增删快.树hashset,哈希表treeset
list(特有遍历size和get)有序重复 子类:(ArrayList,Vector[安全])数组 (LinkedList)链表  **遍历for和while
    day16
ArrayList 数组 查询快,增删慢 线程不安全,效率高
Vector 数组 查询快,增删慢 线程安全,效率低
LinkedList 链表 查询慢,增删快 线程不安全,效率高
泛型(Generic)数据类型明确的工作推迟到创建对象或者调用方法 好处:清除黄色警告 错误提前到编译 避免强制转换
  通配符?任意 ? extends E下限定 ? super E上限定
静态导入 import static 包名.类名.方法名;
可变参数 定义方法的时候不知该定义多少个参数 本质数组 public static int add(int... a)
增强for循环 更高效的遍历数组和集合 for(int a:arr){System.out.println(a);}
    day17
Set 无序 唯一
HashSet 哈希 唯一:hashCode和equals保证
LinkedHashSet 有序(链表) 唯一(哈希)
TreeSet 二叉树 唯一 元素排序:自然和比较(实现Comparator接口)
    day18
Map集合 键K映射到值v 一个映射不能有重复键 一个键只能映射一个值 **:学号K表示学生V
Map和Collection的区别 双列和单列 键和元素 唯一,Set保证Collection唯一
HashMap 哈希表 不安全 效率高 允许null值和null键
TreeMap 二叉树 不安全 效率高 元素排序:自然和比较器
LinkedHashMap 链表(有序)哈希(唯一)
map遍历:键获取值(KeySet) 键值对对象获取键和值entrySet
HashMap和Hashtable的区别 HashMap:不安全,效率高.允许null值和null键 相反hashtable
Collections(集合工具类)
集合练习
模拟斗地主(洗牌,发牌,看牌)
    day19
IO的概述 处理数据传输
异常 运行期间出现的异常 error.exception 处理:try...catch 和 throws
   throws和throw区别:throws:异常名称(多个 ,隔开)声明可能出现的异常 throw:异常对象,抛出异常
File 文件或目录的抽象表示形式
    day20
递归:方法定义中调用方法 public void show(){show();} 有出口,次数不易过多 阶乘:n*(n-1);
IO流:设备间数据传输 输出:OutputStream Writer写 输入:InputStream Reader读
    字节流:二进制字节,不使用缓冲区,非直接读写Unicode 字符流:文本数据  BufferedOutputStream(new FileOutputStream())
高效的字节输入流BufferedInputStream和字节输出流BufferedOutputStream(读写更快) 复制文件 int by : byte byte,int len
字节流复制文件4种方式:普通:文件/高效输入输出流分别用字节/字节数组读写
day21
字符流 方便操作中文
String中的编解码 编码: 把字符串转换成字节数组 解码相反
转换流 字节流操作中文不便 InputStreamReader OutputStreamWriter 便捷类:FileReader FileWriter
高效字符流 BufferedReader BufferedWriter
   day22
注册登录案例
数据输入输出流 DataInputStream DataOutputStream 读写基本数据
内存操作流 ByteArray/CharArray/String-Writer ByteArray/CharArray/String-Reader
打印流 PrintStream字节 PrintWriter字符 
序列化流 序列化流:ObjectOutputStream 反序列化流:ObjectInputStream 注意:想让对象被序列化,对应的类须实现Serializable
随机访问流 RandomAccessFile 特点:父类Object,操作任意类型,读写数据
Properties 父类Hashtable,双列集合,键值都是String ,可以配合IO流使用
标准流:InputStream PrintStream
   day23
多线程 调用线程start
进程概述和多进程意义 执行ing的应用程序 提高CPU使用率
线程概述和多线程意义 程序中执行的任务 提高程序使用率
同一时间段(并行)/点(并发)执行多个程序
JVM运行原理以及JVM启动的线程探讨 使用Java命令行执行程序会启用jvm,相当于启用一个主线程,会调用main方法
 jvm的启用是多线程>2,主线程和垃圾回收线程
实现多线程1.继承Mythread重写run方法 2,实现Runnable,复写run方法
线程调度 分时:分配相同时间 抢占:优先级(范围1-10)高执行,相同随机
线程控制 获取get设置set线程名称,休眠sleep(暂停执行)加入join礼让yield守护setdaemon终止stop中断interrupt
判断一个多线程应用程序是否有问题:1.多线程环境 2.共享数据 3.多条语句同时操作共享数据
需要:同步代码块 synchronize(对象){需要被同步的代码} 作用:保证数据安全性
   day24
Lock锁 清晰的表示加锁和释放锁 ReentrantLock lock();unlock();
死锁现象 代码需要会写 两个或者两个以上的线程,在抢占CPU的执行权的时候,都处于等待状态
线程池 指定数量的线程 步骤 获取线程池 提交任务 停止线程池:shutdown()
定时器 Java线程指定时间或周期运行任务 步骤 1.创建对象 2.执行任务
设计模式 思考设计问题的方法,被反复使用,多数人知晓的,经过分类编目的,代码设计经验的总结。
  作用:重用代码,更易被理解,保证可靠性,结构清晰
  分类:
   创建 创建对象  单例,抽象工厂,建造者,工厂,原型。
行为 对象功能  适配器,桥接,装饰,组合,外观,享元,代理。
结构 对象组成   模版方法,命令,迭代器,观察者,、中介者,备忘录,解释器,状态,策略,职责链,访问者。
   简单工厂:具体的工厂类 
抽象工厂:抽象类的接口,对象创建由继承抽象工厂的具体类实现   
单例:保证类在内存中只有一个对象,节省内存 实现:1.方法私有 2.提供一个对象和公共访问方式
   饿汉式和懒汉式的区别:面试懒汉 开发恶汉 两种思想:线程安全和延迟加载
模板:定义一个算法的骨架,具体的算法由子类实现  
装饰者:使用被装饰类的一个子类的实例(装饰类),相当于继承 比如手机听音乐,天气预报的功能
观察者 猎头headhunter
day25
API-GUI  graphical user interface,command line user interface 人机交互形式
  GUI与CLI GUI:图形用户接口,方便直观 GLI:dos命令,需要记住一些命令,不方便直观
  java.awt: 抽象窗口工具包,调用本地系统方法实现,重量级控件 javax.swing:awt的基础上建立的图形界面系统.特点:(提供更多组件,完全由Java实现,增强移殖性)轻量级控件
  GUI中组件继承component:1.button,label,CheckBox,textcomponent(textarea,textfield);
             2.comtainer(window(frame,dialog(filedialog))),(panel);
  窗体关闭 System.exit(); windowListener WindowAdapter
  适配器设计模式 
    1.接口增删改查 UserDao
2.适配器类实现接口 UserDaoAdapter
3.匿名内部类实现 new UserDao(){重写方法}.addUserDao(); new UserDaoAdapter(){重写方法}.addUserDao();
  窗体添加按钮并对按钮添加事件案例以及布局方式
    ActionListener Button
布局方式: 流式布局(FlowLayout) , 边界布局(BorderLayout) , 网格布局(GridLayout), 网格包布局(GridBagLayout) ,卡片布局(CardLayout)
  文本框的值转移到文本域
     添加Textfield和Textarea对象  获取文本框数据-清空文本框数据-给文本域设置获取到得数据(append) 获取焦点
  鼠标移动到按钮上更改背景色
    按钮添加鼠标监听器 MouseListener mouseEntered mouseExited
  在文本框里面只能输入数字字符
    文本框添加键盘监听 KeyListener keyPressed
   day26
网络编程   OSI(Open System Interconnection开放系统互连)
网络模型:计算机通信规则 物理层 数据链路 网络 传输层 会话层 表示层 应用层
三要素:1,IP地址 InetAddress:设备标识 2端口号:进程标识 3传输协议: 通讯的规则常见协议:UDP,TCP
UDP和TCP的区别 UDP:无连接,不可靠,速度快,64k TCP:建立连接,可靠,速度慢,大数据传输
     客户端                                           服务器
UDP:创建UDP通讯客户端对象DatagramSocket和数据报包     创建UDP通讯的服务器端对象(DatagramSocket)和数据报包(接收数据)
(DatagramPacket),发生数据(send方法),释放资源         接收解析数据 释放资源
TCP:创建对象(Socket)获取输出流对象,写数据,释放        创建对象(SocketService)数据报包,接收解析数据 释放
   day27
类加载器:加载字节码文件 分类:系统,根类,扩展
反射:剖析类的成员 获取字节码文件对象:Object类的getClass,静态的class属性,Class类中的forName
    反射获取构造方法(constructor)成员变量(field)成员方法(method:无参无返回值,有参有返回值)
动态代理:为其他对象提供一种代理以控制对这个对象的访问 UserDao增删改查
JDK1.5以及1.7的新特性JDK1.5的新特性: 自动拆装箱 , 泛型 , 增强for , 静态导入 , 可变参数 , 枚举
    枚举:一个类只能存在几个固定的对象 一种数据类型,一组有共同特性的数据的集合
 格式:public enum 枚举名 { 枚举项1,枚举项2,...; }
展开阅读全文

没有更多推荐了,返回首页