Java
文章平均质量分 55
卡尔曼和玻尔兹曼谁曼
面朝大海,春暖花开
展开
-
使用JDB调试Java程序
可以使用Java JDK自带的JDB工具在命令行中直接对Java程序进行调试,JDB的使用和C++ GDB以及Python 的PDG调试类似。由于GPT实质是一个BASH脚本,我们可以通过调试BASH的技巧,找到GPT这个脚本到底干了什么,如何调用Java。在使用EAS SANP软件进行影像数据裁剪的时候,遇到了程序报错,通过观察报错信息无法定位错误原因,如下图。参数可以实现将BASH脚本的运行过程进行输出,在输出的信息中,我们可以定位到Java的调用代码,如下图。等命令进行程序调试,可以使用。原创 2023-08-23 17:35:16 · 485 阅读 · 0 评论 -
Scala和Kotlin脚本编程
文章目录Scala和Kotlin脚本编程Kotlin脚本编程HelloWorld示例调用外部命令Scala脚本编程HelloWorld示例调用外部命令Scala和Kotlin脚本编程的异同版权声明:本文为博主原创文章,转载请注明原文出处!作者:阿振写作时间:2020-05-05 五一假期末Scala和Kotlin脚本编程Scala和Kotlin作为运行在JVM上的编程语言,解决了Ja...原创 2020-05-05 20:23:02 · 845 阅读 · 0 评论 -
macOS下GDAL Java开发环境搭建
文章目录macOS下GDAL Java开发环境搭建GDAL源码编译安装Maven安装本地JAR使用Java版GDAL示例版权声明:本文为博主原创文章,转载请注明原文出处!写作时间:2020年4月9日下午macOS下GDAL Java开发环境搭建今天在笔记本(macOS平台)上折腾了一下如何搭建GDAL的Java开发环境。虽然GDAL的Python接口更好用,但是有时候需要协同使用一些J...原创 2020-04-09 17:50:57 · 2204 阅读 · 5 评论 -
冒泡排序
冒泡排序应该算是最简单的排序算法了,其过程如下: 1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3. 针对所有的元素重复以上的步骤,除了最后一个。 4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。Java版本实现:public class So原创 2017-05-10 21:50:34 · 681 阅读 · 0 评论 -
Java GDAL开发环境搭建
首先从官网下载编译好的二进制包 GISInternals Support Site。 解压以后的文件如下: 将该目录添加到自己的环境变量Path中,比如我的路径是:E:\C++\Library\gdal\release-1800-gdal-2-1-0-mapserver-7-0-1\bin在Eclipse中新建一个Java工程。将下载好的GDAL中bin\gdal\java下面的文件拷贝到工原创 2016-09-19 14:35:47 · 9378 阅读 · 9 评论 -
ShapeFile数据到mongodb的导入
开发环境为: 系统环境 Linux gisweb2 4.4.0-36-generic #55~14.04.1-Ubuntu SMP Fri Aug 12 11:49:30 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux mongodb版本 当前最新版本3.2.9具体mongodb的安装参照官方文档,强烈建议参照官方安装文档。网上博客这种资料良莠不齐,而且新版本可能原创 2016-09-17 21:38:01 · 2770 阅读 · 3 评论 -
Geohash第三方库示例
关于什么是Geohash可以参考这篇文章Java实现空间索引编码(GeoHash),个人觉得写得不错。Github上有一个Geohash的开源库geohash-java,这篇文章主要通过一个示例说说geohash-java这个库怎么用。 好了,开门,放代码!package cn.tzy.geohash;import java.util.ArrayList;import java.util.Lis原创 2016-09-16 23:12:51 · 11232 阅读 · 0 评论 -
GeoTools读取ESRI ShapeFile中文乱码解决方法
今天在使用Java版GIS开源工具GeoTools读取ShapeFile文件,其中ShapeFile的dbf文件(属性表)中的属性为中文字符,按照官方的案例读取结果显示为乱码。 原始的代码为:/** * @description: 使用GeoTools库读取ShapeFile文件 * @author Zhenyu Tan * @date 2016年8月9日 下午10:15:09 * @原创 2016-08-10 10:00:41 · 6441 阅读 · 0 评论 -
JavaFX入门(三):使用Eclipse开发JavaFX程序
JavaFX有着WPF类似的炫酷,但是由于WPF不是跨平台的,所以最近看了看JavaFX。下面是使用Eclipse进行开发的环境配置。1. 首先确保你的Windows上安装了Eclipse并能正确运行。2. 下载Eclipse的JavaFX插件e(fx)clipse进行安装。按照方法见官网:http://www.eclipse.org/efxclipse/install.html。3.原创 2015-11-24 23:18:26 · 30816 阅读 · 4 评论 -
JavaFX入门(一):我的第一个JavaFX程序
JavaFX简介JavaFX是一个强大的图形和多媒体处理工具包集合,它允许开发者来设计、创建、测试、调试和部署富客户端程序,并且和Java一样跨平台。JavaFX发展历史2008年12月05日 Sun微系统公司今天正式发布了基于Java语言的平台JavaFX 1.0。因为当时富互联网应用(RIA,Rich Internet Application)正火,具有代表性的有:Adobe公司的Flex,微软原创 2015-11-28 19:44:37 · 46148 阅读 · 13 评论 -
使用Apache Common CSV读写CSV文件
jar包下载地址:http://commons.apache.org/proper/commons-csv/,点击Download进行下载!示例直接看代码吧:我们首先定义一个Student的Bean:class Student { public Student() { } public Student(String id, String name, String gender,原创 2015-11-18 20:30:10 · 22767 阅读 · 1 评论 -
Linux下Tomcat端口号以及进程相关命令
1. 查看tomcat进程ps -aux | grep tomcat(或者ps -ef | grep tomcat都行)root 1537 0.1 3.7 12829256 1248140 ? Sl Oct13 ...(这里其它内容省略)tomcat7 14177 1.3 0.3 3202376 124332 ? Sl 10:原创 2015-10-14 10:38:53 · 32049 阅读 · 0 评论 -
JDBC读取SciDB数据
SciDB一个典型的Array Database,官网地址:http://www.paradigm4.com/,提供了C++,Java,Python和R的接口。下面说说如何使用Java的接口(JDBC)读取SciDB数据: 我使用的SciDB版本是14.12,JDK版本为1.7。 依赖的JDBC的jar包可从https://downloads.paradigm4.com/client/14.12原创 2016-10-03 17:34:43 · 1015 阅读 · 0 评论 -
Scala中调用Java类
一个利用Java的IO类进行文件读取的例子:package cn.tzyimport java.io.{BufferedReader, FileReader, IOException}object HelloJava { def main(args: Array[String]): Unit = { val FILE_PATH = "/Users/theone/Desktop/readm原创 2016-10-03 12:52:17 · 7975 阅读 · 0 评论 -
macOS下Java多版本管理
本文介绍macOS下使用HomeBrew和jEnv进行Java多版本管理升级HomeBrew (首先你得安装HomeBrew)brew update允许brew命令查找版本信息brew tap caskroom/versions查看Java版本brew cask search java安装Java8brew cask install java8安装jEnV版本管理工具...原创 2018-04-09 23:32:42 · 2825 阅读 · 0 评论 -
SLF4J: Failed to load class的问题及解决
今天在用Maven搞一个工程,安装要求我添加了所有需要的依赖,可是一运行测试程序,就跳出这样一个大大的错误:SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”. SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details原创 2015-05-20 17:23:31 · 96263 阅读 · 10 评论 -
归并排序
归并排序采用分而治之(divide and conquer)的思想,通过将已经排好序的子序列合并,得到最终完全有序的序列。所以归并算法包括两大步骤:第一步是“分割”,第二步是“合并”,即先对原始序列进行分割排序,使每个子序列有序,然后再通过合并使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。二路归并的过程大致如下:归并过程为:比较a[i]和b[j]的大小,若a[i]≤b[j],则将第原创 2017-05-25 14:24:39 · 711 阅读 · 0 评论 -
堆排序
堆排序采用的数据结构是完全二叉树,所以在介绍堆排序之前,我们先看看完全二叉树的定义及性质。定义一:只有最下面的两层结点度能够小于 22,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树。定义二:若设二叉树的深度为 hh,除第 hh 层外,其它各层 (1~h−1)(1~h-1) 的结点数都达到最大个数,hh 层所有的结点都连续集中在最左边,这就是完全二叉树。 完全二叉树是由满二叉树而引出来的原创 2017-05-11 21:34:18 · 704 阅读 · 0 评论 -
直接选择排序
选择排序是一种简单直观的排序算法。其基本思想是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。经典的选择排序算法有:直接选择排序和堆排序。下面是直接选择排序的Java实现:// 交换数组中的两个元素public static void swap(int[] numbers, int i, int j) {原创 2017-05-11 17:57:36 · 627 阅读 · 0 评论 -
希尔排序
希尔排序是对直接插入排序的改进,其实质就是分组插入排序,该方法又称缩小增量排序。 该算法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的一系列元素组成)分别进行直接插入排序,然后依次缩减增量再进行排序,直到增量为1(即对全体数据元素进行一次直接插入排序)。 希尔排序是按照不同步长对元素进行插入排序,当刚开始元素很无序的时候,步长最大,所以插入排序的元素个数很少,速度很快原创 2017-05-11 17:12:13 · 557 阅读 · 0 评论 -
直接插入排序
插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。经典的插入排序算法有直接插入排序和希尔排序。 直接插入排序的基本思想是:将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。 图示如下(自百度图片,若有侵权,请告知): Java代码原创 2017-05-11 15:34:42 · 580 阅读 · 0 评论 -
快速排序算法
快速排序算法的基本思想是通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。我们来看看一趟排序中如何将数据划分为两部分,使得左边部分比给定元素小,而右边部分比给定元素大。 首先,我们选定一个数字作为中轴元素用于划分数据,我们选择数据的第一个元素。 然原创 2017-05-10 17:56:50 · 999 阅读 · 0 评论 -
Maven常用命令
Maven库:http://repo2.maven.org/maven2/Maven依赖查询:http://mvnrepository.com/Maven常用命令: 1. 创建Maven的普通java项目: mvn archetype:create -DgroupId=packageName -DartifactId=projectName 2. 创建Maven的转载 2015-05-20 16:41:11 · 757 阅读 · 0 评论 -
Java内存溢出详解
Java内存溢出详解 一、常见的Java内存溢出有以下三种: 1 java.lang.OutOfMemoryError: Java heap space —-JVM Heap(堆)溢出 JVM在启动的时候会自动设置JVM Heap的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)不可超过物理内存。 可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。Hea转载 2015-05-20 10:04:06 · 969 阅读 · 0 评论 -
Java Swing程序开发—右下角显示进度条
虽然自己不喜欢Java的GUI程序,但是工作原因,听从上级安排。转入正题:这篇文章实现在桌面右下角显示一个进度条,显示当前程序运行的进度。而且鼠标能够拖动进度条。有需要的童鞋,可以直接拷贝代码过去使用!Java参考代码:import java.awt.Dimension;import java.awt.Insets;import java.awt.Toolkit;import j原创 2015-04-15 19:56:30 · 4212 阅读 · 1 评论 -
Java中控制小数位数
方法一:使用BigDecimalpublic class BigDecimalDemo { public static void main(String[] args) { BigDecimal decimal = new BigDecimal(Math.PI); decimal = decimal.setScale(10, BigDecimal.ROUND_HALF_EVEN);原创 2014-03-12 16:41:40 · 2007 阅读 · 0 评论 -
Java中String类应该注意的一些地方
(1)我们在使用诸如String str = "abc";的格式定义类时,总是想当然地认为,我们创建了String类的对象str。担心陷阱!对象可能并没有被创建!唯一可以肯定的是,指向String类的引用被创建了。至于这个引用到底是否指向了一个新的对象,必须根据上下文来考虑,除非你通过new()方法来显要地创建一个新的对象。因此,更为准确的说法是,我们创建了一个指向String类的对象的引用变量s原创 2013-12-28 19:47:08 · 1325 阅读 · 0 评论 -
Java中的枚举Enum
在Java没有提供枚举的时候,比如我们要使用一个表示周几的枚举值怎么办?Java中是这样解决的:定义一个私有的构造函数,然后在类中new出对象来。public class Date { private Date() { } private static final Date Sunday = new Date(); private static final Date Mo原创 2014-03-11 00:32:44 · 1429 阅读 · 0 评论 -
Java中数组的复制
首先需要明确的是Java中数组的复制是引用传递,而不是值传递。两者有什么不同呢,首先来看一个实例。public class ArrayDemo { public static void main(String[] args) { int[] array1 = {1,2,3,4,5}; int[] array2 = array1; for (int i = 0; i < a原创 2014-03-05 17:22:09 · 1215 阅读 · 2 评论 -
Java中的注解
注解(Annotation)简介Annotation(注解)是Java JDK5及其以后版本中引入的一个特性。注解是Java的一个新的类型(与接口类似),它与类、接口、枚举是在同一个层次,它们都称为Java的一个类型(TYPE)。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。它的作用非常多,进行编译检查、生成说明文档、代码分析等。Java原创 2014-01-06 17:02:25 · 1353 阅读 · 0 评论 -
Java对象序列化
为什么需要序列化?对于一个存在Java虚拟机中的对象来说,其内部的状态只是保存在内存中。JVM退出之后,内存资源也就被释放,Java对象的内部状态也就丢失了。而在很多情况下,对象内部状态是需要被持久化的,将运行中的对象状态保存下来(最直接的方式就是保存到文件系统中),在需要的时候可以还原,即使是在Java虚拟机退出的情况下。对象序列化机制是Java内建的一种对象持久化方式,可以很容易实原创 2014-01-06 15:00:38 · 1068 阅读 · 0 评论 -
Java IO的一般使用模式
以前对Java IO中的装饰模式搞得稀里糊涂的,现在整理下它的使用方法如下:文本文件的读写:写文件输出的一般模式:PrintWriter →BufferedWriter(可选项) →FileWriterPrintWriter out = new PrintWriter(file);或者PrintWriter out = new Print原创 2013-12-30 11:03:34 · 1297 阅读 · 0 评论 -
正则表达式规则
正则表达式中的规则定义可分为如下几个方面:字符结构定义编辑匹配定义逻辑运算定义量词定义字符结构定义规则字符结构解释.任何字符X单个字符,包括控制符(\t,\n,\r,\\,\f)Xxx字符串[abc]包含a或b或c的任何单个字符[^abc]不包含a或b或c的任何单个字原创 2013-12-28 19:41:31 · 1122 阅读 · 0 评论 -
Java中跟字符串相关的几个常用类
1. StringBuilder类StringBuilder类在JDK1.5中首次引入,用来改善StringBuffer的操作。StringBuilder类和String类的主要区别在于:①利用StringBuilder类创建的对象,可以改变自身字符串的内容。所以被称为“可改性”对象,或“mutable”。②利用String创建的对象,或者引用的对象,其自身内容不可改变。所以被称为原创 2013-12-28 16:10:56 · 1699 阅读 · 0 评论 -
Java中文件路径及其访问
首先来看Java中的4种相对路径:原创 2014-04-14 20:11:50 · 10474 阅读 · 1 评论 -
Java Swing中的透明窗体(Windows中消息提示框的制作)
首先需要在工程中导包,需要用到JRE中的rt.jar包,我的JDK安装在C盘,目录如下:C:\Program Files\Java\jre7\lib\rt.jar。我们用到的类是rt包中的com.sun.awt.AWTUtilities。(遗憾的是导入该包后,程序就不具有跨平台性了)程序代码如下:import java.awt.MouseInfo;import java.awt.Po原创 2014-04-02 15:08:17 · 2955 阅读 · 0 评论 -
Dom4j解析带有命名空间的XML文件
今天我在解析KML文件的过程中,使用XPath表达式,可是返回的结果总是null,原创 2014-04-06 16:11:25 · 6495 阅读 · 2 评论 -
Java8 Lambda表达式入门
Lambda表达式的实质就是一个匿名函数。C#3.0引入了Lambda表达式,Java8也不甘示弱。Java8发布很久了,今天安装了JDK体验了Java8中的Lambda表达式。首先看一个不适用Lambda表达式的例子。 比如我们要对一组字符串进行排序。public class Hello { public static void main(String[] args) {原创 2015-04-23 22:52:08 · 1510 阅读 · 0 评论 -
Java发送邮件的简单实现
使用Oracle官方的JavaMail进行实现,JavaMail下载地址:https://java.net/projects/javamail/pages/Home 将下载好的jar包添加到工程路径中就OK了,我使用的是最新的1.5.2版本的javax.mail.jar。关于邮件协议可参考:什么是POP3、SMTP和IMAP? 下面的示例中是通过我的新浪邮箱(theonegis@sina.cn原创 2015-04-01 16:18:46 · 4462 阅读 · 0 评论 -
Java中日期API常见问题整理
今天在使用Java日期API的时候遇到的一些问题,自己整理了下。貌似JDK8中有关于时间行的API,可是JDK8用的还不是很多,先弄明白7的相关知识。 问题1:如何以制定格式显示时间? 问题2:如何计算时间间隔? 问题3:如何计算指定时间间隔以后的时间?下面直接上代码(使用JUnit4进行测试):import java.text.DateFormat;import java.text.Sim原创 2015-04-02 14:53:40 · 1127 阅读 · 0 评论