自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 资源 (4)
  • 收藏
  • 关注

原创 jni c回调java

使用头文件将C语言中的标准实现通过预编译映射到自己定义的函数中,并在自己定义的函数中调用java函数来实现

2022-06-01 19:21:04 1052 2

原创 Android JNI

在Android studio中使用jni调用C/C++,有两种方式,一种是使用传统方式,通过Android.mk来调用,一种是使用cmake来调用一,传统方式调用1. 创建一个as工程NDKDemo,包名为:com.sun.android.ndkdemo2. 在ndkdemo包下创建一个调用本地库的工具类 NDKToolspackage com.sun.android.ndkdemo;public class NDKTools { public static nativ

2022-05-18 18:17:30 1535

原创 用apache.commons.math3库函数求非齐次线性方程组的解

import org.apache.commons.math3.linear.Array2DRowRealMatrix;import org.apache.commons.math3.linear.ArrayRealVector;import org.apache.commons.math3.linear.DecompositionSolver;import org.apache.commons.math3.linear.RRQRDecomposition;import org.apache.co.

2021-07-29 22:41:39 811

原创 二叉树及相关操作

class BinaryTree{ private HeroNode root; public void setRoot(HeroNode root) { this.root = root; } public void preOrder() { if (null != this.root) this.root.preOrder(); } public void infixOrder() { if (null != this.root) this.root.i.

2021-04-27 22:32:17 95

原创 线索化二叉树

class ThreadedBinaryTree { private HeroNode root; // 为了实现线索化,创建指向当前节点的前驱节点的指针 private HeroNode pre = null; public void setRoot(HeroNode root) { this.root = root; } public void threadedNodes() { this.threadedNodes(root); } // 中序线索化 pub.

2021-04-27 22:31:50 71

原创 查找

/** * 斐波拉契(黄金分割法)查找 */ public static int fibSearch(int[] a, int key) { int low = 0; int high = a.length - 1; int k = 0;// 表示斐波拉契分割数值的下标 int mid = 0; // 存放mid值 int f[] = fib(); // 获取k while (high > f[k] - 1) k++; // 因为f[...

2021-04-25 21:49:18 78

原创 双链表

双链表class DoubleListedList { // 先初始化一个头结点 private HeroNode2 head = new HeroNode2(0, "", ""); public HeroNode2 getHead() { return head; } // 遍历双向链表 public void list() { // 判断链表是否为空 if (head.next == null) { System.out.println("链表为空");

2021-04-17 23:05:49 66

原创 单链表

单链表public class SingleLinkedListDemo { public static void main(String[] args) { HeroNode hero1 = new HeroNode(1, "宋江", "及时雨"); HeroNode hero2 = new HeroNode(2, "卢俊义", "玉麒麟"); HeroNode hero3 = new HeroNode(3, "吴用", "智多星"); HeroNode hero4 = ne

2021-04-17 23:03:31 49

翻译 object中的equals方法

java核心技术卷Iequals方法的通用约定:自反性,对称性,传递性,一致性,对于任何非null的引用值x,x.equals(null)必须返回false。编写equals方法的建议:1)显式参数命名为otherObject,稍后需要将它转换成另一个叫做other的变量。2)检测this与otherObject是否引用同一个对象:if (this == otherObj...

2020-04-11 16:22:55 290

翻译 使用序列化进行深拷贝

package sun.com.cn.java;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.ObjectInputStream;import j...

2020-01-16 21:16:12 489

原创 将间隔几个的commit整理成1个

首先使用git log查看当前的历史提交记录情况,从下图可以看到1和3处的commit都是和readme相关的,所以此时我们想把1和 3 处的commit合为一个,并且是合到3上;3作为最底部的commit,在使用rebase时无法显示出来,所以需要手动添加进去。使用git rebase -i 3处的commitId 打开的页面显示的信息是pick 2commitIDpick ...

2019-07-21 17:53:43 396

原创 git实操系列之同时变更文件名和文件内容的处理

前提:A和B在同一个分支上对同一份代码仓库中的同一个文件做修改,A变更了文件名,B在不知道的情况下,基于原来的文件名对文件内容做了变更,此时合并出现问题应该怎么解决?首先对操作前的状态作以同步,分别在git_learning和git_learning_02目录所在的对应分支下,使用git pull命令。在git_learning下模拟变更文件名的操作,使用命令git mv index...

2019-04-24 11:04:10 1590

原创 git实操系列之不同人修改同一文件的同一区域

操作前提:花花维护的本地仓库git_learning与远端已建立联系;多多维护的本地仓库git_learning_02与远端已建立联系;现在花花和多多要对同一文件index.html的同一区域进行修改,在多多修改完成push之后,花花进行push操作时就会出现错误,那么如何解决错误完成最终的提交呢? 在git_learning_02本地仓库的feature/add_git_commands分...

2019-04-23 16:32:17 1755

原创 git实操系列之不同人修改了不同的文件处理问题

操作的前提是:两个人维护同一个分支,在同一个分支上两个人修改了不一样的文件。将这两个人假设为花花和多多,花花和多多维护的是同一个代码仓库中的同一个分支上的不同文件。花花维护的是仓库中的index.html文件,所在的本地仓库是git_learning;多多维护的是仓库中的readme.md文件。我们目前的状态是花花已经与远程仓库建立了联系,而多多与远程仓库还没有联系,只是明确自己需要与这个远程...

2019-04-14 17:30:56 1023

原创 git命令中git stash pop 与git stash apply的区别

git stash的使用场景: 当前分支下的某几个文件,前面的修改部分已经放在暂存区,目前在工作区还在进行修改,如果此时需要在当前文件下进行紧急修复bug,就需要把工作区正在修改的文件stash暂存起来,进行bug修复工作,在完成bug修复工作后,提交commit,将暂存的工作区文件内容拿出来继续工作。举例:对于index.html文件之前已经提交过了,现在工作区仍然还在index.html文...

2019-03-31 16:31:04 46111 3

原创 git中三大对象commit、tree和blob之间的关系

使用git最基本的命令行就是add 之后进行commit,每次commit之后才能进行push操作,这些是大家都知道的步骤。而git中的三大对象commit、tree和blog又指的是什么,它们之间又有什么关系呢,对此进行简单介绍与记录。首先通过一幅图来进行引入从图中可以清楚的看到,一个commit对象里面会包含有 tree(相当于文件夹)、parent、author和committe...

2019-03-18 21:47:40 6609 5

翻译 git笔记

半年前在优达学城上看过关于git使用的学习视频,简单易懂但长时间不怎么使用过段时间就会忘了。这几天又把简单的使用命令复习了一下,作以记录,以准查询。 git学习笔记 在本地盘符新建文件夹:D:\sun\learninggit 第一步 : cmd 在命令行中进入到新建的文件夹中:步骤:cd D:/sun/learninggit 回车之后 输入D: 回车之后就可以进入 第二步 :输入 git...

2019-01-19 17:10:25 121

原创 myEclipse构建java工程怎么导入第三方的jar文件

       由myEclipse创建的java项目并不像创建的Web项目一样,创建完成就有lib文件夹。Java项目中没有,那么这时候如果要引入第三方的jar文件该怎么做呢。首先右键单击项目在弹出的对话框中选择Build path --->  Configure build path,如下图所示。 第二步,选择 Libraries下的Add library...,如下图所示...

2018-11-25 11:20:14 1395

翻译 插入排序java实现

package algorithm;public class InsertSort {public static void main(String[] args) { int[] a = {6,2,5,4,7,1,3,9,8}; insertSort(a, a.length); for (int i = 0; i < a.length; i++) { System.out...

2018-10-06 18:27:11 123

翻译 归并排序java实现

package algorithm;public class MergeSort { public static void main(String[] args) { int[] a = {2,4,7,9,6,1,3,8}; int L = 0; int R = 7; mergeSort(a, L, R); for (int i = 0; i < a.length...

2018-10-06 18:26:23 106

翻译 选择排序java实现

package algorithm;public class SelectSort { public static void main(String[] args) { int[] a = {6,2,5,4,7,1,3,9,8}; selectSort(a, a.length); // selectSort2(a); for (int i = 0; i < a.len...

2018-10-06 18:25:30 105

翻译 冒泡排序算法java实现

package algorithm;/** * 冒泡排序算法 * @author su * */public class BubbleSort { public static void main(String[] args) { int[] a = {6,2,5,4,7,1,3,9,8}; //bubbleSort(a, a.length); bubbleSort2...

2018-10-06 18:24:29 150

翻译 KMP算法java实现

package algorithm;public class KmpSearch { public static void main(String[] args) { String s1 = "ABABCABAA"; char[] pattern = s1.toCharArray(); String s2 = "ABABABCABAACDEFSA"; char[] t...

2018-10-06 18:22:42 451

原创 汉诺塔问题的解

package algorithm;/** * 汉诺塔问题的求解 * @author su * */public class Hamoi { public static void main(String[] args) { //两层汉诺塔调用 //hamoi(2, 'A', 'B', 'C'); //三层汉诺塔调用 hamoi(3, 'A', 'B', 'C');...

2018-10-06 11:19:00 428

原创 全排列的解

package algorithm;/** * 全排列问题解的思路: 将数组中的每一个数放到第一个位置上,其他的数进行全排列 * @author su * */public class FullPermutation { public static void main(String[] args) { /*int[] a = {1,2,3,4,5}; fullPermuta...

2018-10-06 11:09:20 153

翻译 多线程下的设计模式之Master-Worker模式

该模式可以简单理解为:首先client将任务交给Master,Master中使用一个并发集合类来承载所有任务,使用一个集合去承载所有的Worker对象,并且有一个并发集合类来承载每一个Worker并发处理任务的结果集;每一个Worker是一个工作线程,所以首先要实现Runnable接口,每一个Worker对象还有Master中承载任务集合的引用来获取任务,每一个Worker对象有一个Master中...

2018-10-01 19:30:44 166

原创 集合使用迭代器遍历删除元素的问题

记一次面试问题:在集合中删除元素再普通不过,一般想到的就是for循环遍历,在里面删除指定的元素,如下所示:public class Main { public static void main(String[] args) { ArrayList<Integer> lists = new ArrayList<>(); for...

2018-10-01 10:49:11 6790

原创 生产者消费者模式代码实现

生产者消费者模式:不同种类的线程间针对同一个资源的操作问题: A:如果消费者先抢到cpu的执行权,就会去消费数据,但是现在的数据是默认值,没有意义,应该等着数据有意义,再消费B:如果生产者先抢到cpu的执行权,就会去产生数据,但是,他产生完数据后,还继续拥有执行权,他继续产生数据。应该等着消费者把数据消费掉,然后再生产。正常思路:  A: 生产者         先看是否有...

2018-09-29 16:38:36 1131

原创 手写死锁代码

public class MyLock { public static Object objA = new Object(); public static Object objB = new Object();}public class DieLock extends Thread{ private boolean flag; public DieLock...

2018-09-29 16:27:58 389

原创 线程基础小记

一、进程与线程的定义与意义进程:就是正在运行的程序。进程是系统进行资源分配和调用的独立单元,每一个进程都有它自己的内存空间和系统资源。线程:在同一个进程内又可以执行多个任务,而每一个任务就可以看成是一个线程。        线程是程序的执行单元,执行路径,是程序使用cpu的基本单位。多进程的意义:提高cpu的使用率多线程的意义:提高应用程序的使用率二、并发与并行概念的区别...

2018-09-29 10:18:27 163

原创 静态内部类实现的单例模式是如何保证线程安全的

静态内部类实现的单例模式如下:public class Singleton {    private Singleton(){            }        public static Singleton getInstance(){        return SingletonHolder.sInstance;    }        private stati...

2018-09-18 21:46:52 6662 9

原创 Android笔试题(金山WPS)

一、简答题1、char型变量中能不能存储一个中文汉字,为什么?C语言中char是一个字节的大小,而汉字占2个字节,所以不能存储。Java中char类型占2个字节,而且java默认采用Unicode编码,一个Unicode吗是16位,所以一个Unicode码占两个字节,Java中无论汉字还是英文字母都是用unicode编码来表示的。所以,在Java中char类型变量可以存储一个中文汉字。...

2018-09-12 22:21:56 3059 1

原创 gradle任务之间的三种关系和类型化任务

gradle 中tasks中的三种关系第一种关系:dependsOn  表示一种tasks依赖于另一种tasks,要想执行另一种tasks,被依赖的要先执行。例如task putOnSocks{        doLast{             println  "putting on socks."        }}task putOnShoes{     ...

2018-09-11 16:44:49 3212

原创 Android面试题

1、除类型外,请列举至少5个Java语言的关键字2、简述Exception、Error的区别3、简述序列化与反序列化的区别4、在进行大量字符串拼接,不考虑线程安全问题,String、StringBuilder、StringBuffer性能哪个更高5、在需要频繁使用List的新增功能时,ArrayList、LinkedList的性能谁更高6、下列程序的运行结果为public ...

2018-09-08 22:37:36 205

原创 String、StringBuffer和StringBuilder的区别

StringString的创建机理由于String在java中使用过于频繁,Java为了避免在一个系统中产生大量的String对象,引入了字符串常量池。其运行机制是:创建一个字符串时,首先检查常量池中是否有值相同的字符串对象,如果有则不需要创建直接从常量池中查找到的对象引用,如果没有则新建字符串对象,返回对象引用,并且将新创建的对象放入常量池中。但是,通过new方法创建的String对象是...

2018-08-29 15:18:25 127

翻译 将数据库的查询结果绑定到recyclerview进行展示及删除

代码内容来自于udicity一般比较普遍的做法是,在帮助类中实现数据的查询,将查询的数据以集合的方式传入recyclerview的构造器中进行显示,此外还有一种方式就是,将查询到的cursor传递到recyclerview的构造器中,在recyclerview的onBindView方法中利用position进行查询后再进行展示,如下:将查询到的cursor传递到recyclerview的构...

2018-07-29 11:13:22 3964

原创 Intent补充

当从mainactivity传递数据到childactivity时,在childactivity中获得intent后不要立即获取数据,而应该检测获取到的Intent中是否还有数据,如下:public class ChildActivity extends AppCompatActivity { /* Field to store our TextView */ private...

2018-07-27 17:02:25 121

原创 gradle下载与安装

第一步:安装gradle首先,要确保已经安装了JDK1.5或以上版本,检查JDK版本,运行java  -version命令。在确保JDK版本合适的情况下,下载安装gradle第二步:gradle下载直接从gradle主页http://gradle.org/downloads下载发布版,如下图所示,此处选择手动安装并下载包含文档和样例源码的压缩文件。 下载完成之后将压缩包解压...

2018-07-25 23:05:02 19412 2

原创 Android中Dialog使用小记

使用dialog除了可以用AlertDialog.Builder方法直接生成,也可以使用DialogFragment的形式来创建。第一种方式:    第一种方式有两种写法,当dialog对话框中含有edittext等可输入控件时,需要把builder.create().show()方法写在setView()方法之后,要不然会出现手机上键盘显示不出来的问题。例如下面这种代码实现的对话框,当点击输入的...

2018-06-27 18:50:17 555

原创 Android视频播放

Android视频播放的方式有三种:一、使用Intent代开系统已安装的视频播放器进行播放;二、使用videoview配合mediacontroller实现视频播放;三、使用surfaceview配合mediaplayer实现视频播放。首先第一种方式,因为视频资源放在手机的SD卡下,所以需要在manifest文件中进行权限声明,在Android6.0及其以上系统在使用危险权限时需要进行运行时处理,...

2018-03-19 15:20:23 537

多种不同格式的音视频资源.zip

包含的图片格式资源:svg,wdp, webp 包含的音频格式资源:aac,m4a, mp3, wav, wma, wav 包含的视频格式资源:MP4,wmv, swf, asf, mpg, flv, mkv

2021-08-13

poi_jar包.zip

zip包中包含的jar包有dom4j-2.1.0.jar poi-3.10.1.jar poi-examples-3.10.1.jar poi-excelant-3.10.1.jar poi-ooxml-3.10.1.jar poi-ooxml-schemas-3.10.1.jar poi-scratchpad-3.10.1.jar和xmlbeans-3.10.0.jar

2020-02-04

fastjson-1.2.5.jar

JSON的jar包 fastjson-1.2.5.jar

2018-11-24

json相关的jar包

在myeclipse中使用servlet封装json格式的数据,所用到的所有jar包

2017-11-29

空空如也

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

TA关注的人

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