自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(301)
  • 资源 (1)
  • 收藏
  • 关注

原创 Kotlin中接口、抽象类、泛型、out(协变)、in(逆变)、reified关键字的详解

一、Kotlin中接口的定义。四、out协变和in逆变详解。五、reified关键字。

2023-02-01 21:47:47 512

原创 Kotlin中嵌套类、数据类、枚举类和密封类的详解

如果一个类只对另一个类有用,那么将其嵌入到该类中并使这两个类保持在一起是合乎逻辑的,可以使用。三、数据类中的copy函数。创建一个数据类看一下效果。五、数据类中的运算符重载。四、数据类中的解构声明。七、枚举类中定义函数。

2023-01-27 22:00:28 451

原创 Kotlin中继承、类型转换、Any超类、object关键字详解

Kotlin中类默认都是封闭的,要让某个类开放继承,必须使用open关键字修饰它。使用object关键字有三种方式。一、继承、类型转换、Any超类。二、object关键字详解。

2023-01-27 21:33:55 613

原创 Kotlin中空安全操作符,异常处理和自定义异常,以及先决条件函数详解

二、Kotlin中的安全调用操作符,非空断言操作符,空合并操作符的详解,代码中已经给出详细注释。博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家。地把运行时可能会出现的null问题,以编译时错误的方式,提前在编译期强迫我们重视起来,四、substring、split、replace,字符串遍历方法的使用。六、数字类型的安全转换函数,Double转Int类型、以及格式化。而不是等到运行时报错,防范于未然,提高了我们的程序的健壮性。五、- = =与===的比较。

2023-01-23 20:50:28 1454

原创 Kotlin中标准库函数(apply、let、run、with、also、takeIf、takeUnless)的使用详解

apply函数可以看作是一个配置函数,你可以传入一个接收者,然后调用一系列函数来配置它以便使用,如果提供lambda表达式给 apply函数执行,它会返回配置好的接收者。这种行为有时又叫相关作用域,因为lambda表达式里的所有函数调用都是针对接收者的,或者说,它们是针对接收者的隐时调用。因为有这个差异,also尤其适合针对同一原始对象,利用副作用做事,既然also返回的是接收者对象。also函数和let函数功能相似,和let一样,also也是把接收者作为值参传给lambda。六、takeIf函数。

2023-01-23 20:25:23 2542 1

原创 Kotlin中匿名函数(又称为Lambda,或者闭包)和高阶函数的详解

7、函数类型作为返回值类型、以及闭包。8、lambda表达式与匿名内部类。3、函数的参数是另一个函数。2、Lambda的概述。2、kotlin代码。

2023-01-18 17:02:12 1061

原创 Kotlin 中变量,类型,表达式,函数详解

1、要声明可修改变量,使用var关键字。二、Kotlin的引用类型与基本数据类型。2、要声明只读变量,使用val关键字。三、Kotlin内置数据类型。四、表达式和String模板。,忍不住也分享一下给大家。一、变量,编译时变量。2、String模板。2、反引号中的函数名。

2023-01-15 15:58:31 671

原创 Kotlin 中初始化块、初始化的顺序、lateinit延迟初始化详解

1、初始化块:初始化块可以设置变量或值,以及执行有效性检查,如检查传给某构造函数的值是否有效,初始化块代码会在构造类实例时执行。前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。可以通过反编译看java代码,就清楚了,反编译代码如下。3、延迟初始化lateinit。2.初始化执行的顺序。

2023-01-11 22:03:23 499

原创 Kotlin 中定义类、field关键字,主构造函数和次构造函数详解

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下。1、定义类与field关键字,以及计算属性,和防范竞态条件。,感觉非常有意思,忍不住分享一下给大家。4、多个次构造函数来配置不同的参数组合。

2023-01-10 22:07:05 393

原创 Kotlin 中List集合,Set集合,Map集合,数组的详解

1、创建不可变List集合。2、创建可变的List集合。5、创建不可变Map集合。6、创建可变Map集合。

2023-01-09 22:14:42 457

原创 GoShoppingActivityLearnBinding.java:918: 错误: 参数过多 protected GoShoppingActivityLearnBinding

当时这个编译失败了,找了一上午原因,都不知道问题在哪,因为用的约束布局+DataBinding,当时那个页面有3000多行的xml,id太多了,我在原有的界面上面加了有200多行代码,用的也是约束布局,就编译失败,报参数过多,我把我加的代码删除掉就可以正常运行。用include引入布局,把约束布局换成线性布局,不需要定义id的控件,就不定义,再次运行项目可以正常跑起来了。工作中遇到的问题,使用DataBinding,报参数过多,编译失败。记录一下,后期再次出现类似问题,可以快速解决。

2022-12-31 17:26:07 233

原创 Android LayoutInflater.from(context).inflate()方法的作用

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"",感觉非常有意思,忍不住分享一下给大家。具体详情已经写在代码注释中。

2022-12-24 18:26:00 505

原创 Android RecyclerView对应的适配器中方法的执行顺序和具体作用详解

1.代码的执行顺序为,首次进入会先调用getItemCount(),返回条目的个数,之后会分别调用。onBindViewHolder 作用:这个方法是用于绑定holder的,一般用来设置数据。getItemViewType 作用:修改相应position的视图类型。onCreateViewHolder 作用:这个方法用于创建条目View。getItemCount 作用:返回条目的个数。

2022-12-10 21:43:34 1909

原创 Android ViewModel+LiveData实现Fragment间通信详解

前言: 使用ViewModel+LiveData实现同一个Activity不同Fragment间的通信。1、定义ViewModel与LiveData,使用LiveData对progress字段进行包装。2、将两个Fragment等比例放置在Activity的布局文件中。3、在Fragment的布局文件中放一个SeekBar控件,两个Fragment的布局文件类似4、编写Fragment的代码,实现具体的通信这里以OneFragment为例,TwoFragment类似。这样当OneFragment中

2022-10-24 22:09:03 2445

原创 Android ViewModel与LiveData组件组合使用详解

LiveData是一个可被观察的数据容器类,具体来说,可以将LiveData理解为一个数据的容器,它将数据包装起来,使数据成为被观察者,当该数据发生变化的时候,观察者就能获得通知,我们不需要自己去实现观察者模式,LiveData内部已经默认实现好了,我们只要使用就可以了。一、首先使用ViewModel写一个小案例,之后在此基础上,结合LiveData一起使用。二、将上面的案例,结合LiveData组件一起使用,这样会更方便,减少代码的冗余。1、TimerWithLiveDataViewModel 类如下。

2022-09-13 22:15:48 1324

原创 Android ImageView视图的七种图片缩放类型

前言ImageView默认图片居中显示,默认图片的缩放类型为scaleType属性为fitCenter。一、scaleType属性为fitCenter,默认就是这个属性。七、scaleType属性为centerInside。六、scaleType属性为centerCrop。三、scaleType属性为fitStart。四、scaleType属性为fitEnd。五、scaleType属性为center。二、scaleType属性为fitXY。......

2022-07-31 16:58:54 5374

原创 Android 中动画的详解(包括视图动画和图片动画)

前言:动画的介绍图片动画详解,移步这篇文章进行查看学习Android 动画之帧动画(也叫图片动画)的用法下面讲解视图动画相关的API如下(View Animation)Animation公用的功能视图启动动画后,默认是恢复到开始的状态。下面通过编码和xml两种方式实现视图动画,代码中已给出注释1、布局文件如下<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schema

2022-05-31 12:32:44 980 1

原创 Android 中Activity和Intent的详解

Activity的理解Activity的运行状态分为四种状态对应的生命周期流程图如下Intent的理解如下Intent的分类如下IntentFilter的理解Activity和Intent相关的API如下Activity的Task Stack(任务栈)特点:后进先出Activity的LauchMode(加载模式)具体详解看这篇文章Android 中Activity的四种启动模式应用实例进行打电话与发短信,隐示意图的练习,代码如下1、布局页面activity_inte

2022-05-27 12:07:42 2440

原创 Android 进行友盟多渠道打包步骤详解

1、首先在AndroidManifest.xml文件中的application标签内加入 <meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}" />2、在应用的build.gradle文件中,添加如下代码plugins { //表示这是一个应用程序模块,com.android.library表示这是一个库模块 id 'co

2022-05-10 12:18:27 1145

原创 Android 根目录下和应用目录下的build.gradle的详解,以及groovy语法的讲解

前言:Gradle的作用:打apk包打插件包自动化构建多渠道打包自动化签名后台java打包生成文件使用的是groovy语法,shell脚本,能够完成数据处理,文件操作groovy和java是一家,JDK支持两种语言java和groovy,在groovy中直接调用java包groovy和java进行了一个动态的补充,groovy是一个动态的语言,java是一个静态的编程语言,java处理不了的工作,可以用groovy来做Gradle的特性一、根目录下的build.gradle,

2022-05-09 21:37:28 2513

原创 Java BasicDAO的详解

一、BasicDAO的介绍二、BasicDAO的示意图三、完成BasicDAO的简单实例1、创建BasicDAO类//开发BasicDAO,是其他DAO的父类public class BasicDAO<T> {//泛型指定具体的类型 private QueryRunner qr = new QueryRunner(); //开发通用的DML方法,针对任意的表 public int update(String sql, Object... parameter

2022-05-06 15:48:48 1383 2

原创 Java 中Apache-DBUtils类的使用详解

前言:问题引出:关闭Connection后,ResultSet结果集无法使用,ResultSet结果集不利于数据的管理。具体看下面的示意图一、首先用自己的方法把ResultSet结果集封装到ArrayList集合中代码如下public class JDBCUtilsByDruid_Use { //自己封装解决将ResultSet 封装到ArrayList中 @Test public ArrayList<Actor> testSelectToArrayList() {

2022-05-06 14:22:21 998

原创 Java 数据库连接池C3P0,德鲁伊(Druid)的详解

一、Java中数据库连接池的基本介绍数据库连接池的示意图二、数据库连接池的种类三、C3P0数据库连接池的使用,代码如下public class C3P0_ { //1.方式1:相关参数,在程序中指定user,url,password等 @Test public void testC3P0_01() throws Exception { //1.创建一个数据源对象 ComboPooledDataSource comboPooledDataS

2022-05-05 21:11:08 4016

原创 Java JDBC中的批处理SQL语句的详解

一、JDBC中批处理SQL语句的介绍二、使用批量处理和非批量处理,进行演示,看具体的耗时区别public class Batch_ { @Test public void noBatch() throws Exception { Connection connection = JDBCUtils.getConnection(); String sql = "INSERT INTO ADMIN2 VALUES(null,?,?)"; Pre

2022-05-05 15:14:07 1448

原创 Java JDBC程序中对于数据库事务的处理详解

一、JDBC中对于事务的介绍二、使用事务模拟经典的转账业务下面代码中演示JDBC中没有使用事务,和使用事务的两种情况//演示jdbc 中如何使用事务public class Transaction_ { //没有使用事务 @Test public void noTransaction() { //1.得到连接 Connection connection = null; //2.组织一个sql //更新记录

2022-05-05 14:24:03 889

原创 MySQL 中事务以及事务隔离级别的详解

一、MySQL 中事务的理解二、演示事务的基本使用DROP TABLE t27;-- 1.创建一张测试表CREATE TABLE t27(id INT,`name` VARCHAR(32));-- 2.开启事务START TRANSACTION-- 3.设置保存点SAVEPOINT a-- 执行DML操作INSERT INTO t27 VALUES(100,'tom');SELECT * FROM t27;SAVEPOINT b-- 执行DML操作INSERT I

2022-05-05 11:35:05 914

原创 Java 中封装JDBC连接到JDBCUtils工具类的详解

前言在JDBC操作中,获取连接和释放资源是经常使用到的,可以将其封装成到一个工具类JDBCUtils中JDBCUtils中有两个方法得到连接和关闭连接,代码如下//这是一个工具类,完成mysql的连接和关闭资源public class JDBCUtils { //定义相关的属性(4个),因为只需要一份,因此我们做成static private static String user;//用户名 private static String password;//密码 pr

2022-05-04 20:56:47 1002

原创 Java Jdbc的详解

一、Jdbc原理示意图二、Jdbc的概述

2022-05-04 16:48:41 1926

原创 Java 中线程同步机制synchronized,互斥锁,死锁,释放锁的详解

一、线程同步机制synchronized的理解二、synchronized的具体使用下面可以通过同步机制,解决多线程卖票,出现的超卖问题,代码如下public class SellTicket { public static void main(String[] args) {// SellTicket01 sellTicket01 = new SellTicket01();// SellTicket01 sellTicket02 = new SellTick

2022-05-01 11:29:13 1714 2

原创 Java 线程的生命周期(对应七大状态)

线程的生命周期线程状态的转换通过代码输出线程的状态,代码如下public class ThreadState_ { public static void main(String[] args) { T t = new T(); System.out.println(t.getName() + " 状态 " + t.getState()); t.start(); while (Thread.State.TERMINATED !=

2022-04-30 22:01:35 875

原创 Java 中大数的处理方案BigInteger和BigDecimal类的使用

BigInteger和BigDecimal的介绍应用场景:1、BigInteger适合保存比较大的整型2、BigDecimal适合保存精度更高的浮点型(小数)一、BigInteger类的使用详解,代码如下public class BigInteger_ { public static void main(String[] args) { //当我们编程中,需要处理很大的整数,long不够用 //可以使用BigInteger的类来搞定// lo

2022-04-29 11:36:44 840

原创 Java 算术运算符/,%,++的本质详解

具体看如下代码,讲解已经在代码中给出:public class Test2 { public static void main(String[] args) { //从数学来看是2.5 在java程序中,10是一个整数,2是一个整数,得到的结果也是整数为2 System.out.println(10 / 4); //2 System.out.println(10.0 / 4); //2.5 double d = 10 / 4;

2022-04-23 11:50:20 1953

原创 Java 中常用的转义字符

Java中常用的转义字符,看如下代码:public class ChangeChar { public static void main(String[] args) { // \t :一个制表位,表示对齐的功能 System.out.println("北京\t天津\t上海"); //\n System.out.println("jack\ntom\nmary"); // \\ System.out.p

2022-04-21 21:42:28 1058

原创 Java 中泛型的详解

泛型介绍:泛型又称参数化类型,是JDK5.0出现的新特性,解决数据类型的安全性问题。在类声明或者实例化时,只需要指定好需要的具体类型即可。Java泛型可以保证如果程序在编译时没有发出警告,运行时就不会产生ClassCaseException异常,同时代码更加简洁,健壮。泛型的作用是:可以在类声明时通过一个标识表示类中某个属性的类型,或者是某个方法的返回值类型,又或者是参数类型。(这个具体演示代码如下)public class Generic03 { public static voi

2022-03-28 21:54:07 2640

原创 Android 中使用Volley进行网络请求和图片加载详解

前言:Volley概述:Volley既可以访问网络取得数据,也可以加载图片,并且在性能方面进行了大幅度的调整。它的设计目标就是适合进行数据量不大但通信频繁 的网络操作。而对于大数据量的网络操作,比如说下载文件等,Volley的表现却非常糟糕。使用Volley前,需要在项目的build.gradle中引入相应的依赖:implementation 'com.android.volley:volley:1.2.1'一、使用Volley进行GET请求:1.创建activity_volley.xml,代

2022-03-26 10:46:52 4234 1

原创 Android 中使用HttpURLConnection进行网络请求详解

前言:下面使用HttpURLConnection进行POST的请求,GET请求不需要传递参数自然你也就会使用了。一、创建UrlConnManager类,提供getHttpURLConnection()方法,配置默认参数,并返回HttpURLConnection的实例。之后再写一个postParams方法,组织一下请求参数 并将请求参数写入输出流。代码如下:public class UrlConnManager { //配置默认参数,返回HttpURLConnection的实例 pub

2022-03-25 21:20:38 13296

原创 Java中第三代日期类LocalDateTime的详细使用

第三代日期类的概述:下面通过代码进行演示使用:public class LocalDate_ { public static void main(String[] args) { //第三日期 //1.使用now() 返回表示当前日期时间的对象 LocalDateTime localDateTime = LocalDateTime.now();//LocalDate.now();//LocalTime.now(); System.

2022-03-19 12:15:20 942

原创 Android 中自定义View,实现小球往复运动

一、介绍如何实现小球的往复运动,实现原理1、View 类定义了一组 invalidate()方法,该方法有好几个版本:public void invalidate()public void invalidate(int l, int t, int r, int b)public void invalidate(Rect dirty)invalidate()用于重绘组件,不带参数表示重绘整个视图区域,带参数表示重绘指定的区域。如果要去追溯该方法的源码,大概就是将重绘请求一级级往上交到 View

2022-03-15 12:14:28 4309 1

原创 Java IO流之Properties类的详解

前言:Properties类的基本介绍:Properties类的常见方法如下:一、使用Properties类来读取配置文件mysql.properties,具体代码如下:mysql.properties配置文件中具体内容如下:/** * 使用Properties类来读取mysql.properties文件 */public class Properties02 { public static void main(String[] args) throws IOException

2022-03-13 21:40:22 1573

原创 Android 中使用Canvas绘制文字和矩形,将结果呈现在Bitmap上

一、activity_view1.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" and

2022-03-06 15:29:32 3623 1

SwipeRefreshDemo.zip

Android中使用SwipeRefresh实现了RecyclerView的下拉刷新和上拉加载

2021-05-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除