Java入门基础
文章平均质量分 96
本专栏讲解了Java编程的所有核心基础知识,包括:基础语法、到面向对象以及Java的实际应用。每篇文章基本都包含了源代码,适用于初学者,拿来即用。
Winter_world
专注于物联网智能设备开发,目前已完成的项目涉及:医疗健康、智慧养老、智能家居、工控领域,欢迎有需求的各界大佬来撩!
展开
-
一文搞懂什么是RESTful API
在学习RESTful 风格接口之前,即使你不知道它是什么,但你肯定会好奇它能解决什么问题?有什么应用场景?听完下面描述我想你就会明白:在互联网并没有完全流行的初期,移动端也没有那么盛行,页面请求和并发量也不高,那时候人们对接口的要求没那么高,一些动态页面(jsp)就能满足绝大多数的使用需求。转载 2024-03-22 15:52:32 · 99 阅读 · 0 评论 -
Java——有return的情况下try catch finally的执行顺序(最有说服力的总结)
结论:1、不管有木有出现异常,finally块中代码都会执行;2、当try和catch中有return时,finally仍然会执行;3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的;4、finally中最好不...转载 2019-11-29 17:31:55 · 337 阅读 · 0 评论 -
Java——动态代理设计模型概述(实现步骤、增强方式)与代理商采购电脑模拟程序实战
目录1、先认识几个概念:2、实现方式3、实现步骤4、增强方式框架中很多底层的代码都有动态代理,所以对于动态代理最好要理解透彻了,博主仍在学习中~。临时应用到。本博文先讲述下动态代理,后续希望随着开发的深入再继续丰富下设计模式内容。1、先认识几个概念:真实对象:被代理的对象 代理对象: 代理模式:代理对象代理真实对象,达到增强真实对象功能的目的。2、实现方式静态代理:有一个类文件描述代理模式; 动态代理:在内存中形成代理类(应用较多,本节讲解动态代理):3、实现步骤原创 2020-08-05 20:05:13 · 674 阅读 · 0 评论 -
Java——数据库编程JDBC之JDBCTemplate的使用简化数据库操作步骤(含增删改查练习实例源码)
0 引言上一篇博文中讲解了数据库连接池技术,使用该技术代码的复用度和效率均有提高,但是在做JDBC操作时还是比较麻烦,特别是处理查询结果时,要从结果集中获取数据,再封装成对象等等。实际上我们希望的最理想操作就是定义好sql,再把它执行了,像抽取数据再封装、释放资源等这样的体力活不希望自己来做,本文介绍一个JDBC 简单封装类Spring JDBC,简化程序开发步骤。1 Spring JDBC其是Spring框架对JDBC的简单封装(Spring框架是JavaEE的灵魂框架,后续再学习总...原创 2020-07-10 10:47:26 · 597 阅读 · 0 评论 -
Java——数据库编程JDBC之数据库连接池技术(C3P0与Druid,提供了Druid的工具类)
1 数据库连接池概念数据库连接池就是一个存放数据库连接的容器(集合),当系统初始化后容器被创建,容器会申请一些连接对象,当用户访问数据库时,从容器中获取连接对象,用户访问完后会将连接对象归还给容器。使用连接池的好处:节约资源; 用户访问高效。2 数据库连接池的实现在javax.sql包下有一个标准接口DataSource:...原创 2020-07-06 23:06:19 · 522 阅读 · 0 评论 -
Java——数据库编程JDBC之快速入门吐血总结及各关键对象详解(提供了JDBCUtils工具类)
1 JDBC基本概念JDBC,Java Database Connectivity,Java数据库连接,Java语言操作数据库。JDBC的本质是SUN公司定义的一套操作所有关系型数据库的规则,即接口,各数据库厂商实现这套接口,提供数据库驱动jar包,用户可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。2 JDBC的快速入门使用JDBC的步骤:1)导入驱动jar包:mysql-connector-java-5.1.37-bin.jar; -...原创 2020-07-05 16:15:54 · 849 阅读 · 0 评论 -
Java——Annotation注解基本总结(简介、覆写、过期声明、压制警告)
目录1、Annotation简介2、@Override 覆写注解3、@Deprecated 过期声明注解4、@SuppressWarnings 压制警告5、总结1、Annotation简介Annotation(注解)提供了一种新的项目开发结构模式,利用Annotation,可以实现零配置的开发。对于软件项目开发,经过了以下三个开发阶段:第一阶段:代码完成期。将所需要的配置信息,直接写死在程序里。这样的程序编写起来最方便,但是不适合于变化,一旦配置发生变化,会导致程序必须原创 2020-05-14 21:00:04 · 681 阅读 · 0 评论 -
Java——枚举基础应用总结(多例设计模式、Enum类、枚举的实际应用)
目录1、多例设计模式与枚举2、java.lang.Enum类3、枚举结构定义4、枚举的实际应用5、总结1、多例设计模式与枚举多例设计模式一定是构造方法私有化,而后在内部类种产生若干个实例化对象。【举例】:定义颜色基色的多例模式public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) {原创 2020-05-12 22:55:01 · 554 阅读 · 0 评论 -
Java——泛型基本总结(通配符、泛型接口、泛型方法)
目录1、泛型的产生背景2、泛型的通配符?3、泛型接口(重点)4、泛型方法5、总结JDK1.5后的三大主要特性:泛型、枚举、Annotation。1、泛型的产生背景假如,现在定义一个表示坐标的类,Point,属性坐标x,y,但是此类设计特殊,现在由于设计特殊,现在实际使用中有可能出现以下三种结构的数据:整数:x=10、y=10; 小数:x=10.1、y=10.1; 字符串:x=东经10度、y=北纬20度。可以发现,Point中可以保存三种数据类型,而Point类中只存原创 2020-05-11 21:44:28 · 413 阅读 · 0 评论 -
Java——类图、时序图、用例图
目录1、类图描述2、时序图3、用例图从实际开发标准,应该在项目别写前设计类图,但是,不太符合实际,实际开发中改动的场景太多,大家懂的。所以,现在开发大部分情况下,都是先完成功能,交工前,将代码转换成类图。本文内容作为概念性的讲解。1、类图描述要想描述类图,基本都会采用以下结构完成:类名称 属性名称 方法名称 1)类名称普通类,直接进行编写; 抽象类,道理上应该使用斜体描述; 类名称 {abstract} 属性名称 方法名称.原创 2020-05-09 16:33:32 · 2728 阅读 · 0 评论 -
Java——try catch finally异常的捕获及处理逻辑实例详解大全
异常处理是Java语言的相当大的优势,且很简单。1、认识异常异常指的是导致程序中断执行的一种指令流。一旦发生异常且没有正常处理的话,程序将中断执行。【举例】:观察产生异常的代码 System.out.println("AAAA"); System.out.println("计算="+(10/0)); System.out.pri...原创 2020-05-09 14:49:37 · 4129 阅读 · 0 评论 -
Java——单例设计模式与多例设计模式
目录1、单例设计模式2、多例设计模式3、总结Java中有几个重要的设计模式,工厂设计模式、代理设计模式、单例设计模式,前几个在之前的博客中讲解过基本程序套路,本次讲解单例设计模式。1、单例设计模式现在有这样一个类,非常简单,只是当个引子。class Singleton{ public void print(){ System.out.print...原创 2020-05-02 22:26:55 · 416 阅读 · 0 评论 -
Java——四种访问控制权限(private、default、protected、public)及Java命名规范
目录1、访问控制权限2、Java命名规范1、访问控制权限之前的博文中提到了访问控制权限,本文系统的讲解下。Java中一共定义四种访问控制权限,由小到大的顺序是:private<defult<protected<public。这四种特点如下:序号 范围 private default protected public 1 ...原创 2020-05-02 21:06:56 · 2276 阅读 · 0 评论 -
Java——包的定义及使用
1、包的定义任何操作系统中,都有一个统一的共识:同一个目录下不能存在相同的文件名称,但是,实际开发中又很难避免命名冲突矛盾的问题,为此,项目中往往会引入包的概念,所谓的包,存储时就是一个文件夹,在不同目录中可以存放相同的文件。要想在Java中定义包,直接使用package关键字即可。【举例】:定义包...原创 2020-05-02 20:35:58 · 1880 阅读 · 0 评论 -
Java——扩展概念(匿名内部类、包装类、装箱与拆箱、数据类型的转换)
本文讲解的扩展内容,包括:匿名内部类、包装类实现原理分析、装箱与拆箱、数据类型转换。1、匿名内部类匿名内部类,故名思意就是没有名字的内部类。匿名内部类有什么用?先看下面的一段简单代码:【举例】:观察如下代码的问题public class MainActivity extends AppCompatActivity { @Override protected ...原创 2020-04-29 22:33:24 · 429 阅读 · 0 评论 -
Java——Object类(基本概念、toString()方法、equals()方法、可以接收所有引用类型)
目录1、Object类的基本概念2、取得对象信息:toString()方法3、对象比较:equals()方法4、Object类可接收引用类型5、总结1、Object类的基本概念虽然有对象的向上转型可以解决参数的统一问题,但是Java开发中有如此众多的开发类,所以面临这一的问题:参数类型怎么选择才能保存所有的类对象?为此Java为解决此类问题,提供有Object类,该类定...原创 2020-04-27 21:11:49 · 690 阅读 · 0 评论 -
Java——接口的基本总结(基本定义、使用接口定义标准、工厂设计模式、代理设计模式、抽象类与接口的区别)
接口与抽象类相比,使用率是最高的,所有的设计基本是围绕接口进行的,这部分内容很重要,要彻底学明白需要很长时间,与接口相关 的两个重要设计模式:工厂设计模式、代理设计模式,是需要死记硬背的。1、接口的基本概念...原创 2020-04-26 16:03:32 · 687 阅读 · 0 评论 -
Java——抽象类(基本概念、使用原则、模板设计模式)
抽象类相当之重要,不会抽象类与接口,相当于没学过Java。1、抽象类的基本概念若在一个类中要定义一个没有方法体的方法,可以利用abstract关键字进行抽象方法定义,而包含抽象方法的类就可以使用abstract来定义为抽象类。为什么会出现抽象类的概念?有什么作用?类的核心组成包括属性和方法,但是学习完继承后,可知子类存在一种覆写父类方法的机制,这一机制与对象的多态性相关。但是...原创 2020-04-23 23:06:20 · 1227 阅读 · 0 评论 -
Java——设计辅助概念(final关键字、对象多态性基本概念)
目录1、final关键字2、对象多态性3、总结1、final关键字final别名 终结器,意思是用final定义的类不能有子类,用final定义的方法不能被覆写,用final定义的变量就成为了常量,其无法修改。【举例】:利用final定义类实际开发中,无需太多关注此类模式,因为这种定义与实际的类的结构设计有关,比如结构系统框架等。【举例】:利用final定义的方...原创 2020-04-20 21:44:38 · 395 阅读 · 0 评论 -
Java——覆写(概念、覆写的意义、覆写的要求)
目录1、方法的覆写2、属性覆盖3、总结1、方法的覆写当子类定义了与父类中完全一样的方法时(参数名称、参数类型及个数、返回值类型),这样的操作就为方法的覆写。【举例】:观察方法的覆写public class MainActivity extends AppCompatActivity { @Override protected void onCreat...原创 2020-04-19 15:27:21 · 3781 阅读 · 0 评论 -
Java——继承性(继承的作用、实现、限制)
继承是面向对象中的第二大主要特点,其核心本质在于可以将父类的功能一直延续下去。1、为什么需要有继承?观察以下代码,区别 之前学习的概念与现在程序的区别,比如:现在定义两个,一个是Person,一个是Student。 class Person{ private String name; private int age; publi...原创 2020-04-16 23:02:40 · 1456 阅读 · 0 评论 -
Java——简单Java类深入(数据表与简单Java类、一对多映射、双向一对多映射、多对多映射)
1、数据表与简单Java类的映射简单Java类是整个项目开发的灵魂,其有严格的开发标准,最为重要的是它要与数据表完全对应。由于目前没有接触过多的程序设计功能,所以对于此处的访问就有了一些限制,目前要求可以完成如下两个操作:根据数据表的结构关系进行数据以及引用的设置; 根据数据表的结构可以取出所需要的数据。选用熟悉的数据结构:dept、emp,实现这样的转换操作。现在开发要求如下:...原创 2020-04-14 23:07:54 · 612 阅读 · 0 评论 -
Java——内部类使用总结(基本概念、定义内部类、static定义内部类、方法中定义内部类)
1、基本概念类的组成包括:成员、方法,几乎所有程序都不会对嵌套程序有什么限定,内部类指的是在一个类中继续嵌套其他类结构的一种代码形式,且理论上可以一直嵌套。【举例】:观察内部类public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundl...原创 2020-04-09 19:47:09 · 525 阅读 · 0 评论 -
Java——代码块(普通块、构造块、静态块)
代码块在实际开发中很少见,只需要了解即可,实际开发中也不需要使用它。代码编写中,使用{}声明的程序块就属于代码块,而根据其出现的位置,及声明关键字的不同,分为四种:普通代码块、构造块、静态块、同步代码块(多线程中涉及)1、普通代码块...原创 2020-04-07 22:18:47 · 692 阅读 · 0 评论 -
Java——static关键字总结(含义、定义属性或方法、使用时机)
目录1、声明static属性2、声明static方法3、分析主方法3、static应用案例1、声明static属性static关键字,主要描述全局的概念,利用该属性可以定义属性和方法,但是90%情况下很少直接编写static。现在假设定义一个只描述中国人的类,类中包含:姓名、年龄、国家,按之前的概念设计如下:protected void onCreate(Bund...原创 2020-04-06 15:18:02 · 1255 阅读 · 0 评论 -
Java——引用传递实例分析(进阶分析、对象比较、类与类的关联实现)
1、引用传递进阶分析引用传递是Java的精髓所在,也是初学者比较难学的地方。下面通过三个程序进行分析。【举例】:第一个protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Demo demo = new Demo(100)...原创 2020-04-06 12:48:48 · 425 阅读 · 0 评论 -
Java——this关键字(调用本类属性、调用本类方法、表示当前对象)
this是一个非常灵活的关键字,不会明确表示一个固定概念,比如int,它就是表示一个整型。1、调用本类属性类中有许多成员,大部分情况下类中直接进行成员调用,但是为了清楚的描述调用是本类属性,会用this.属性表示。 class Person{ String name; int age; public Person(){} ...原创 2020-04-05 17:33:44 · 8670 阅读 · 1 评论 -
Java——String类常用方法总结,看这一篇就够啦(比较、查找、截取、替换、拆分、其他)
1、字符与字符串很多编程语言都会用字符数组描述字符串,Java也有类似概念原创 2020-04-02 22:36:54 · 1077 阅读 · 0 评论 -
Java——String类使用详解(实例化、字符串比较、匿名对象、两种实例化方法的区别)
dd原创 2020-03-30 22:45:08 · 702 阅读 · 0 评论 -
Java——数组的定义与使用(基本概念、引用分析、初始化方式、二维数组、对象数组)
1、数组的基本概念数组指的是一组相关变量的集合。Java中,数组属于引用数据类型,所以必然牵扯到内存的关系。对于数组的定义格式包括:声明并开辟数组: 数据类型 数组名称[] = new 数据类型 [长度]; 分布完成: 数据类型 数组名称[] = null; 数组名称 = new 数据类型 [长度]; 以上可以看出定义格式 和 实例化对象的思路基本一致,eg:int...原创 2020-03-28 16:00:01 · 932 阅读 · 0 评论 -
Java——Stream数据流(Properties子类、Collection接口加强、MapReduce操作)
1、Properties子类Properties是专门复杂熟悉信息操作的类,其为Hashtable的子类,Hashtable能保存各种类型数据,但Properties类只能进行字符串数据的保存,因为其主要用于资源文件操作的。在使用时,使用的是子类中定义的方法构造方法:public Properties(); 设置属性:public Object setProperties(...原创 2020-03-17 20:22:41 · 496 阅读 · 0 评论 -
Java——集合工具类(Collections工具类、Stack子类)
目录1、Collections工具类2、Stack子类1、Collections工具类Collections是专为集合服务的工具类,可以进行List、Set、Map等集合的操作,比较有用 的方法如下:1)批量添加 public static <T> boolean addAll(@RecentlyNonNull Collection<? super T>...原创 2020-03-14 13:04:46 · 700 阅读 · 0 评论 -
Java——类集框架:Map集合的详解及应用举例(HashMap、Hashtable、TreeMap)
1、Map接口的定义Map保存的是二元偶对象,简单说就是两个值,key和value。使用中可以通过key查找到value数据,使用Map可以方便用户查询。Map中定义的关键操作方法:名称 作用 public V put(K key, V value) 向集合中追加数据 public V get(K key) 根据key返回对应的value数据 pu...原创 2020-03-14 12:39:23 · 410 阅读 · 0 评论 -
Java——类集框架:集合输出的详解及应用举例(Iterator迭代、ListIterator、Enumeration、foreach)
目录1、Iterator迭代输出接口(核心)2、ListIterator双向迭代输出(了解)3、枚举输出:Enumeration4、foreach输出集合的四种输出方式:Iterator、ListIterator、Enumeration、foreach,其中Iterator使用的最多。1、Iterator迭代输出接口(核心)Iterator是集合输出中最标准的操作接...原创 2020-03-06 15:55:45 · 405 阅读 · 0 评论 -
Java——类集框架:List集合接口的详解及应用举例
1、Java类集框架简介JDK1.2开始引入了类集框架的概念,Java中可以方便实现动态数组的操作,JDK1.5中泛型的出现,类集又避免了Object类对程序的影响。所有的类集开发类都保存在java.util包中。从JDK1.8中,类集支持了数据流的操作,支持MapReduce的操作。一句话:类集的本质就是动态对象数组2、类集框架核心接口java.util包类集框架核心接口包...原创 2020-03-06 15:08:25 · 554 阅读 · 0 评论 -
Java——类集框架:Set集合接口的详解及应用举例
目录1、Set集合接口2、关于TreeSet排序3、关于重复元素4、小结1、Set集合接口Set也是Collection的子接口,主要特点是保存的数据不允许出现重复。但Set子接口并不像List子接口那样,针对Collection接口进行扩展,而是完整按照Collection接口标准实现了继承,所以没有get方法。Set子接口有两个常用子类:TreeSet(有序)、...原创 2020-03-06 15:06:55 · 380 阅读 · 0 评论 -
Java——对象序列化(基本概念、序列化操作、反序列化、transient)
1、对象序列化基本概念原创 2020-03-02 21:31:38 · 471 阅读 · 0 评论 -
Java——深入分析类与对象(封装性、构造方法与匿名对象、简单Java类开发原则)
1、封装性Java中所有面向对象的概念都是以类与对象的关系为主,下面用一个程序说明为什么要提供有封装性。 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Person person = new Person(); ...原创 2020-03-24 22:39:00 · 331 阅读 · 0 评论 -
Java——类与对象(基本概念、定义、内存分析、引用传递)
1、面向对象简介 软件开发模式有两种:面向过程、面向对象。面向过程:指的是只完成自己所需要的操作,但这种设计缺少可维护性; 面向对象:本质上来讲是一种组件化(模块化)设计。方便进行代码局部维护。但设计上要求的规范较多,且对整个项目的整体把控较为关键。 面向概念中有以下几个特点:封装性:保护内部的操作对外不可见; 继承性:相当于一代代传承; 多态性:在...原创 2020-03-23 21:57:20 · 415 阅读 · 0 评论 -
Java——对String类型的时间进行加减操作
【使用需求】:项目需要把终端设备传输过来的一个字符串时间加减操作,避免每次都传输时间,节约终端设备的内存,同时减少数据传输量;【实现操作】: String time = "20191025235940"; SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss"); Calenda...原创 2019-10-25 10:57:08 · 2283 阅读 · 0 评论