- 博客(25)
- 收藏
- 关注
原创 抽象方法、抽象类、接口、接口和抽象类的区别
抽象类、抽象方法某个父类只知道子类因该包含什么样的方法,无法知道这些子类如何实现这些方法。抽象类包含该方法但没有对该方法的具体实现。有抽象方法的类只能被定义为抽象类,抽象类里可以没有抽象方法。抽象方法和抽象类的规则:抽象类必须使用abstract修饰符来修饰,抽象方法也必须使用abstract修饰符来修饰抽象方法不能有具体的方法体 抽象类不能被实例化,无法使用new关键字来调用抽象类构造器创建抽象类的实例。即使抽象类里不包含抽象方法,这个抽象类也不能创建实例 抽象类可以包含成员变量、方法
2020-12-07 14:09:34 279 1
原创 Maven下载、安装、环境变量配置
为什么要学习这个技术?在Javaweb开发中,需要使用大量的jar包,我们手动去导入 如何能让一个东西帮我们自动导入和配置jar包,可以使用MavenMaven项目架构管理工具Maven的核心思想:约定大于配置有约束,不要去违反Maven会规定好该如何编写Java代码,必须按照要求规范Maven下载及配置1.下载地址:https://maven.apache.org/download.cgi2.配置环境变量:M2_HOME maven目录下的bin目录 MAVEN_.
2021-03-13 15:08:25 112
原创 线程协作(生产者、消费者问题代码实现,代码测试成功)
生产者消费者模式:假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中的产品取走消费 如果仓库中没有产品,则生产者将产品放入仓库,否则停止生产并等待,直到仓库中的产品被消费者取走为止 如果仓库中放有产品,则消费者可以将产品取走消费,否则停止消费并等待,直到仓库中再次放入产品为止。分析:此问题是一个线程同步的问题,生产者和消费者共享同一个资源,并且生产者和消费者之间相互依赖,互为条件。对于生产者,没有生产产品之前,要通知消费者等待。生产了产品之后,需要通知消费者消费
2021-03-11 21:27:39 220 1
原创 死锁、Lock(锁)
多个线程各自占用一些公共资源,并且互相等待其他线程占有的资源才能运行,导致两个或者多个线程都在等待对方释放资源,都停止执行的情形。某一同步块同时拥有"两个以上对象的锁"时,就可能会发生死锁问题。Lock(锁)从JDK5.0开始,Java提供了更强大的线程同步机制------通过显示定义同步锁对象来实现同步。同步锁使用Lock对象充当 java.util.concurrent.looks.Lock接口是控制多个线程对共享资源进行访问的工具。锁提供了对共享资源的独占访问,每次只能有一个线程对Lock对
2021-03-11 14:14:34 297 2
原创 IO流
流:流是内存与存储设备之间传输数据的通道。输入流:将<存储设备>中的内容读到内存中。输出流:将<内存>中的内容写入到存储设备中。按单位:字节流:以字节为单位,可以读写所有数据 字符流:以字符为单位,只能读写文本数据字节流和缓冲流:字节流:数据以字节为单位进行读写操作缓冲流:将一个一个的字节先存入到缓冲区中。在JVM中会开辟一块缓冲区的内存空间,然后将文件中的数据读取到缓冲区中,直到读满这个缓冲,才会将缓冲区的数据获取到程序中。对象流:(Obje
2021-03-08 17:09:22 102
原创 JDBC 增删改查代码实例
需要的包 :java.sqljavax.sql还需要导入一个数据库驱动包 mysql-connector-java-5.1.47.jar1.创建一个普通项目2.导入数据库驱动(右键 add as library 添加到jar包库中)3.编写测试代码总结步骤:1.加载驱动2.连接数据库 DriverManager3.获得执行sql的对象 Statement4.获得返回的结果集5.释放连接statement对象jdbc中的statement对象用于向数据库
2021-03-06 12:58:16 348 1
原创 MySql数据引擎 MYISAM INNODB
MYISAM INNODB 事务支持 不支持 支持 数据行锁定 不支持 支持 外键约束 不支持 支持 全文索引 支持 不支持 表空间的大小 较小 较大,约为2倍 (1)为什么要合理选择数据库存储引擎(表类型):MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的...
2021-03-05 21:16:21 90
原创 数据库MySql
目录数据库的列类型:数值:字符串:日期:null:数据库的字段属性(重点)Unsigned:zerofill:自增:非空:默认:数据库的列类型:数值:tinyint 十分小的数据 1个字节 smallint 较小的数据 2个字节 mediumint 中等大小的数据 3个字节 int 标准的整数 4个字节 常用的 int bigint 较大的数据 8个字节 ...
2021-03-05 15:59:50 104
原创 网络编程
一、基本概念计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。Javaweb:网页编程 B/S架构网络编程:TCP/IP C/S架构1.网络编程中主要的问题:如何准确的定位到网络上的一台或者多台主机 找到主机之后如何进行通信2.网络编程中的要素:ip和端口号 网络通信协议 TCP/UDP3.万物皆对象二、IPip地址:InetAd..
2021-03-04 22:05:17 132 1
原创 MVC设计模式
MVC基本概念:MVC将整个程序分为三层:数据模型层(model主要处理数据)、视图模型层(view显示数据)、控制器层(controller处理业务逻辑)。可以将程序的输入输出、数据处理及数据的展示分离开来。1.模型层:数据对象封装 model.bean/domain 数据库操作类 model.dao 数据库 model.db2.试图层:相关工具类 view.utils 自定义view view.ui3.控制层:应用界面相关 controller.activity 存放..
2021-03-04 09:56:28 140 1
原创 线程同步
线程的生命周期:线程的同步:方法一:同步代码块该方法的使用同步的方式解决了线程安全问题。但操作同步代码时,只能有一个线程参与,其他线程等待。相当于一个单线程的过程,效率较低。补充:在实现Runnable接口创建多线程的方式中,可以考虑使用this充当同步监视器。方法二:同步方法如果操作共享数据的代码完整的声明在一个方法中,...
2020-12-22 10:51:05 123
原创 多线程(一)
1.基本概念:程序、进程、线程程序是为完成某种特定任务、用某种语言编写的一组指令的集合。即一段静态的代码,静态对象。 进程是程序的一次执行过程,或是正在运行的一个程序。是一个动态的过程。有它自身的产生、存在和消亡的过程。 线程,进程可进一步细化为线程,是一个程序内部的一条执行路径 1.若一个进程同一时间并行执行多个线程,就是支持多线程的 2.线程作为调度和执行的单位,每个线程拥有独立的运行栈和程序计数器,线程切换的开销小。 3.一...
2020-12-15 22:05:59 80
原创 java异常机制
异常概述与异常体系结构一、基本概念异常:在程序执行中发生的不正常情况称为“异常”。异常可分为Error和Exception两类:Error:java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。Exception:其他因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性代码进行处理。如:空指针访问 试图读取不存在的文件 网络连接中断 数组角标越界处理异常最理想的时间在编译期间。二、一些常见的编译时异常和运行时异常三、异常处理的的机
2020-12-14 11:10:18 73
原创 java链表数据结构、递归算法、链表(一)
在链表数据结构中,需要使用递归算法。(递归算法:方法本身调用自己)实现阶乘:public class Test{ public static void main(String[] args){ int result=jiecheng2(10); System.out.println(result);} public static int jiecheng2(int num){ if(num==1) return 1;
2020-12-09 16:10:42 115
原创 内部类、匿名内部类(小例子)
内部类和外部类区别: 内部内可以比外部类多使用三个修饰符:private、protected、static-----外部类不可以使用这三个修饰符 非静态内部类不能拥有静态成员 非静态内部内:当非静态内部类的方法访问某个变量时,系统优先在该方法内查找是否存在该名字的局部变量,如果存在就使用该变量,如果不存在,则到该方法所在的内部类中查找是否存在该名字的成员变量,如果存在则使用该成员变量;如果不存在,则到内部类所在的外部类查找是否存在该名字的成员变量;如果存在则使用该成员变量,如果不存在
2020-12-08 13:34:01 259 1
原创 单实例类(只可以生成一个对象的类)
在一些特殊场景下,不允许自由创建某类的对象,只允许为该类创建一个对象。实现步骤:把该类的构造器使用private修饰,将该类的所有构造器隐藏 提供一个public方法作为该类的访问点,用于创建该类对象,且该类方法必须使用static修饰 使用一个成员变量保存曾今创建的对象一个小栗子:public class Singel { //使用一个类变量来缓存曾今创建的实例 private static Singel s; //对构造器使用private修饰,隐藏该构造器 private
2020-12-06 12:16:03 603
原创 Object
Object类Object类是所有Java类的根父类 如果在类的声明中未使用extends关键字指明其父类,则默认父类为Object类Object类public class Person{.....}等价于public class Person extends Object{.....}多层继承,处于最高层的父类一定是Object类 从父类到子类的类型转换必须通过强制类型转换实现。 从子类到父类可以自动进行...
2020-12-04 21:42:33 73
原创 面向对象特征:多态性(把子类的对象可以给父类的类型的变量引用)
多态性在java中有两种体现:方法的重载和重写 对象的多态性-----可以直接应用在抽象类和接口上对象的多态------在Java中,子类的对象可以替代父类对象使用一个变量只能有一种确定的数据类型 一个引用类型变量可能指向(引用)多种不同类型的对象例如:Person p=new Person();Person e=new Student();//Person类型的变量e,指向Student类型的对象可以向上转型(把子类的对象可以给父类的类型的变量引用)Java引用变量有两个类型
2020-12-04 11:03:03 474
原创 关键字 Super
在Java类中使用super来调用父类中指定的操作super可以用于访问父类中定义的属性 super可以用于调用父类中定义的成员方法 super可以用于在子类构方法中调用父类的构造器注意:当子、父类出现同名成员时,可以用super进行区分 super的追溯不仅限于直接父类 super和this的用法相像,this代表本对象的引用,super代表父类的内存空间...
2020-12-03 13:29:46 97
原创 Java 关键字 this
this表示当前对象,可以调用类的属性、方法和构造器。 当在方法内需要调用到调用该方法的对象时,就用this 当形参与成员变量重名时,如果在方法内部需要使用成员变量,必须添加this来表明该变量时类成员 在任意方法内,如果使用当前类的成员变量或者成员方法可以在其前面添加this,增强程序的阅读性 class Person{ private String name; private int age; public Person(String name,int age){ .
2020-12-02 22:13:00 67
原创 Java String 类
Java String 类public class StringDemo{ public static void main(String args[]){ char[] helloArray={'h','e','l','l','o','S','h','a','n','g','h','a','i','!'}; String helloString=new String(helloArray); System.out.println(helloSt
2020-12-02 16:15:18 77
原创 Java基础复习(一)
类包含的变量类型:1.局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁2.成员变量:成员变量是定义在类中的,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。3.类变量:变量类也在声明类之中,方法体之外,但必须声明为static类型。构造方法:每个类都有构造方法,如果没有显示的为类定义构造方法,Java编译器将为该类提供一个默认的构造方法。...
2020-12-02 14:03:52 152
原创 决策树
决策树基本知识决策树:从根节点一步一步走到叶子节点(决策),所有的数据最终都会落到叶子节点。决策树既可以做分类,也可以做回归。 决策树的训练与测试:训练阶段:从给定的训练集构造出来一棵树(从根节点开始选择特征,如何进行特征切分) 测试阶段:根据构造出来的模型从上到下走一遍(决策树的难点在于构造一棵决策树)衡量标准——熵熵是表示最忌变量不确定的变量 公式:当p=0或p=1时,...
2020-12-01 16:45:24 111
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人