
Java
文章平均质量分 68
静远小和尚
这个作者很懒,什么都没留下…
展开
-
Java线程池详细介绍——原理及详细使用
原文链接:https://www.toutiao.com/i6846340200134607374/关于线程和线程池的学习,我们可以从以下几个方面入手:第一,什么是线程,线程和进程的区别是什么第二,线程中的生命周期第三,单线程和多线程第四,线程安全第五,为什么使用线程池第六,线程池原理第七,线程池的使用第一,什么是线程,线程和进程的区别是什么?线程,程序执行流的最小执行单位,是行程中的实际运作单位,经常容易和进程这个概念混淆。那么,线程和进程究竟有什么区别呢?首先,进原创 2020-07-06 20:34:07 · 404 阅读 · 0 评论 -
OpenCV+OCR 图像处理字符识别原理及代码
需配置好OpenCV和OCR环境下运行1、OpenCV简介OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。该库也有大量的Python, Java and MATLAB/OCTAVE (版本2.5)的接口。这原创 2016-12-14 22:41:19 · 112585 阅读 · 40 评论 -
借助C语言中的指针解读Java按值调用
我们都知道,在程序设计语言中有关将参数传递给方法(函数)的形式主要有两种,按值调用(call by value)表示方法接受的是调用者提供的值,按引用调用(call by reference)表示方法接受的是调用者提供的变量地址。一个方法可以修改传递引用所对应的变量值,而不能修改传递值所对应的变量值。这个可以借用C语言中的传递的普通参数还是指针参数来理解。原创 2016-10-17 19:47:28 · 742 阅读 · 0 评论 -
复写Object超类的equals,hashCode,toString方法
我们知Object类是Java中所有类的始祖,在Java中每个类都是由他发展而来的,但是却不需这样写:class Employee extends Object 因为如果没有确切的指出类的超类,Object就会被认为是这个类的超类。根据继承的规则,可以使用Object类型的变量引用任何类的对象:Object obj = new Student (“lily”,17);当然,Object类型的变量只能用于作为各种值的通用执行者。要想对其中的内容进行具体操作,还需要清楚对象的原始类型,并进原创 2016-10-17 14:44:19 · 1103 阅读 · 4 评论 -
Java中的String与常量池
string是java中的字符串。String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。下面介绍java中的String与常量池。转载 2016-10-17 10:13:53 · 382 阅读 · 1 评论 -
java语言基础入门——JDBC(使用Java连接数据库)
JDBC的全称为JAva Database Connectivity ,即Java数据库连接之意。JDBC是Java用来连接和访问数据的应用编程接口(API),可以通过他完成 一系列的数据库操作。使用JDBC的好处是可以“一次编写,处处运行”,即开发人员不必为了访问不同的数据库编写不同的程序。开发人员只要使用规范的API接口以及标准的sql语句就可以避免直接处理底层数据库驱动程序与相关操作接口的差原创 2016-09-06 20:05:19 · 3452 阅读 · 2 评论 -
java语言基础入门——用反射实现动态代理
代理模式是java中一种很常见的设计模式,在企业应用高级框架中经常会用到,它的原理就是使用反射来完成。为什么要使用代理?在某些情况在,一个客户不想或不能直接引用另一个对象,需要通过代理对象来间接操作目标对象,代理就是在客户端和目标对象之间起到中介作用。举个例子来说明,一个客户想找厂家生产一批衣服,但客户找不到合适的厂家,只能找中介来帮它找厂家生产。首先说明的是代理有两种形式,一是静态代原创 2016-08-07 16:48:12 · 436 阅读 · 0 评论 -
Coursera普林斯顿大学算法Week1: Percolation 渗透
首先说一下做这个作业大概的几个要点:1、可以不使用官网提供的编译环境进行编程,在eclipse里引入algs4.jar包就可以了,另外使用缺省包。2、不要使用for语句,不然时间会超出。3、可以加入虚头节点和虚尾节点减少问题复杂度。4、在加入虚节点后会出现backwash问题,使用两个QUF。一个QUF包含虚头和虚尾节点,用于判断是否渗透。一个QUF只包含虚头节点,用于对full节点计数。5、比较...原创 2018-07-11 17:03:30 · 1749 阅读 · 1 评论 -
Coursera普林斯顿大学算法Week2: Deques and Randomized Queues 队列
任务链接:http://coursera.cs.princeton.edu/algs4/assignments/queues.html本周任务主要以下难点:1、根据各自特点选取实现Deques和Randomized Queues的物理存储方式。在本文中,选取双链表形式实现双端队列(Deques),选取数组形式实现随机化队列(Randomized Queues)2、在实现Deques的过...原创 2018-07-17 20:29:55 · 1222 阅读 · 2 评论 -
Coursera普林斯顿大学算法Week3: Pattern Recognition 模式识别
任务链接:http://coursera.cs.princeton.edu/algs4/assignments/collinear.html本次任务主要是比较器Comparator的使用。在暴力求解时,可以不必在最后再对三个斜率进行比较,先比较两个可以有效减少算法时间。在快速求解时,借助了一个内部类构成的数组存储点和斜率,并将这个数组按斜率进行排序,相同斜率的即为同一直线。在暴力和...原创 2018-07-22 21:46:17 · 844 阅读 · 0 评论 -
java连接mysql数据库实现单条插入和批量插入
本文插入数据库的数据来源:https://blog.youkuaiyun.com/qq_29672495/article/details/828602261、连接数据库package com.njupt.ymh;import java.sql.DriverManager;import java.sql.SQLException;import com.mysql.jdbc.Connection...原创 2018-09-26 22:25:22 · 7438 阅读 · 0 评论 -
java + dom4j.jar 提取xml文档内容
资源下载页:https://download.youkuaiyun.com/download/qq_29672495/10689575本例程主要借助几个遍历的操作对xml格式下的内容进行提取,操作不是最优的方法,主要是练习使用几个遍历操作。xml格式文档内容:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE nitf SYSTE...原创 2018-09-26 22:12:15 · 639 阅读 · 0 评论 -
Coursera普林斯顿大学算法下Week4:Boggle 拼字游戏
任务链接:http://coursera.cs.princeton.edu/algs4/assignments/boggle.html这次任务给的需要实现的方法很少,完成本次任务关键在于理清思路,需要实现较多的私有方法。需要自己设计单词树,将单词树中每个字符节点定义为一个类。private static class Node // 字典中节点类 { private boole...原创 2018-09-02 11:36:28 · 1573 阅读 · 0 评论 -
Coursera普林斯顿大学算法下Week3:Baseball Elimination 棒球淘汰赛
任务链接:http://coursera.cs.princeton.edu/algs4/assignments/baseball.html本任务的重点在于理解题目的意思,理解了意思很好编码。这篇文章对题目意思讲解的非常好,我也是看的他的才明白的:https://blog.youkuaiyun.com/lxinyuelxy/article/details/78605333import java.u...原创 2018-08-28 18:59:04 · 1315 阅读 · 0 评论 -
Coursera普林斯顿大学算法下Week2:Seam Carving
任务链接:http://coursera.cs.princeton.edu/algs4/assignments/seam.html本周任务没做出来,只求出了能量。本周任务难度的话,主要是数组、像素下标问题,感觉用起来不是很舒服。再一个就是求最小能量路径问题。本文在求最小能量路径的时候对于有些图可以准确的求出,有些就出错,找了半天也没找到原因,把有问题的代码贴出来,后续有时间再接着做。也找了...原创 2018-08-22 23:07:27 · 1132 阅读 · 0 评论 -
Coursera普林斯顿大学算法下Week1: WordNet 字网
任务链接:http://coursera.cs.princeton.edu/algs4/assignments/wordnet.html本次任务主要有三个类需要实现,WordNet、SAP、Outcast。其中,WordNet主要对单词文件进行处理,需要读取文件内容,该部分是参考别人的:https://www.cnblogs.com/lxc1910/p/8051822.htmlSAP是用来...原创 2018-08-15 20:59:36 · 1401 阅读 · 1 评论 -
Coursera普林斯顿大学算法Week5: Kd-Trees 线段树
任务链接:http://coursera.cs.princeton.edu/algs4/assignments/kdtree.html本任务的PointSET比较好实现,借用给的Point2D API比较容易而Kdtree任务比较复杂。主要是针对边界问题比较复杂,需要分清待插入节点的父节点是位于偶数层还是位于奇数层,根据不同的层数具有不同的点比较方案。private int comp...原创 2018-08-07 18:27:24 · 1244 阅读 · 2 评论 -
Coursera普林斯顿大学算法Week4:8 Puzzle 解迷
任务链接:http://coursera.cs.princeton.edu/algs4/assignments/8puzzle.html本次任务难点在于构建合理的内部变量,尤其是Solver类中的变量,然后根据提示一步步解出来就行了。Solver类中的变量如下: private SearchNode currentNode; private SearchNode cu...原创 2018-07-31 10:46:14 · 2409 阅读 · 0 评论 -
java语言基础入门——反射机制实例
1、什么是反射呢?反射可以理解为在程序运行时获取对象类型信息的操作。它允许动态的发现和绑定类、方法、字段,甚至由其他语言产生的元素。运用反射可以做到列举对象所对应的类的详细信息,如访问修饰符,包名,类名,继承的父类和接口信息,以及类内部的所有成员变量,构造函数,成员函数,函数的修饰符,返回值,参数等信息,甚至还可以利用反射来创建对象,访问成员变量和函数。可以这么说,反射窥探到类的所有信息。2、原创 2016-08-07 15:18:12 · 379 阅读 · 0 评论 -
java语言基础入门——集合框架
1、集合可以理解为一个动态的数组,这个数组长度可以任意扩充,存放内容为类的对象,而不是基本类型。2、其结构关系为:Clloection------>List和Set ,List------------>Vector、ArrayList、LinkedList; Set----------->HashSet、TreeSet; HashSet------->LinkedHashSe原创 2016-08-02 14:45:06 · 688 阅读 · 0 评论 -
java语言基础入门——运算符的介绍
java中运算符七类:1、算术运算符,包括+(加)、-(减)、*(乘)、/(除)、%(取余)、++(自加)、---(自减);2、赋值运算符,包括=(赋值)、+=(加法赋值)、-=(减法赋值)、*=(乘法赋值)、/=(除法赋值)、%=(取模赋值); 例:a+=b;相当a=(a的类型)(a+b);b+=c;3、关系运算符,包括>(大于)、原创 2016-07-04 17:17:17 · 467 阅读 · 0 评论 -
java语言基础入门——常用数组函数的使用
java语言类库中集成了大量的函数方法,需要使用时直接调用即可,以数组的常用用法为例,常会对数组进行排序,赋值等操作,如果每个人需要用到这些方法时都自己对函数实现一遍将非常的费时费力,因此java类库中集合了对处理对象的一些常用方法,需要使用时直接调用即可,非常的省时省力。如果java类库中没有对应的方法,而在项目中需要频繁多次的使用同一方法或类似操作,可自行建立函数,然后当再次需要使用时直接调用原创 2016-07-15 10:27:53 · 562 阅读 · 0 评论 -
java语言基础入门——使用键盘输入字符功能
第一步:在程序开头输入“import java.util.Scanner;”表示导入Scanner类;第二步:在程序执行体内输入”Scanner input=new Scanner(System.in);"第三步:定义要输入类型的变量来接收数据,例: int b=input.nextInt(); float c=input.nextFloat(原创 2016-07-04 17:56:15 · 821 阅读 · 0 评论 -
java语言基础入门——包装器
Java是一种面向对象编程语言,java中将类的方法和数据连接一起,构成自己的处理单元。但java中不能定义基本类型,为了能将基本数据类型当做对象处理,并能够连接相关的方法。java为每一个基本数据类型定义相关的包装器,通过包装器可以将基本数据类型转化为对象来处理了。java的几种基本数据类型与包装器的转化表如下:byte——Byte(字节)char——Charcter(字符)sh原创 2016-07-28 10:16:17 · 333 阅读 · 0 评论 -
java语言基础入门——内部类的介绍
什么是内部类?内部类就是一个类的内部再去定义一个类,这个类作为外部的一个属性存在。其中,内部类作为外部类的一个成员可以自由的访问外部类中的属性。而外部类不可以直接访问内部类的属性内部类有四种存在方式:成员内部类、静态内部类、局部内部类、匿名内部类。成员内部类:成员内部类是类作为外部类的成员而存在,不能带有关键static,内部类在外部类看来相当于一个属性或方法。同样内部类可以用public原创 2016-07-27 18:10:12 · 302 阅读 · 0 评论 -
java语言基础入门——面向对象编程
java为一种面向对象的编程语言,面向对象就要有类以及类的对象。在进行类的设计应注意以下几点:1、一个.java文件尽量只写一个类,如果非要存放多个类,也只能有一个类是用public来修饰。2、在创建好的新类中尽量用组合,少用继承,除非继承来的方法都有用。3、对类中的属性一般定义为私有,提供公有的设置和提取方法,做好封装工作。4、对局部变量进行初始化,在java中,系统只会对成员变原创 2016-07-26 21:08:19 · 630 阅读 · 0 评论 -
java语言基础入门——break,continue介绍
java中三种跳转语句,分别为break,continue,return;其中除continue不适用于switch语句外,其他都适应于for、do、while、switch。import java.util.Scanner;public class SwithcaseIntroduction { public static void main(String[] args) { //原创 2016-07-05 10:26:08 · 457 阅读 · 0 评论 -
java语言基础入门——变量、数据及常量的介绍
什么是变量?变量用于存储数据的编号,使用变量可以更好地对计算机中存储的数据进行变换和操作。变量声明规范?1、变量先声明,在赋初始值,然后才能被使用。 2、java中,不支持类外定义全局变量。 3、变量命名规则:可有多个字母、数字、下划线或$符号组成,并只能以字母、下划线和$开头,原创 2016-07-04 16:18:32 · 484 阅读 · 0 评论 -
java语言基础入门——字符串两种建立方式的比较
package commonly_class;import javax.sql.rowset.spi.SyncFactoryException;public class string { public static void main(String[] args) { //string对象的两种建立方式 String string="string"; String st原创 2016-07-28 16:28:38 · 382 阅读 · 0 评论 -
java语言基础入门——String、StringBuffer、StringBuilder的比较
在java中,一个string类的对象是常量,无法改变,无论是使用新的赋值还是“+”来对Sting对象进行操作,改变的都不是Sting对象的值,只是将变量的指针指向了新的对象。如果程序中对字符串的操作很频繁,就不建议使用“+”来进行操作,就要使用StringBuffer和StringBuilder类进行操作。StringBuffer和StringBuilder类就相当于是String类的包装器原创 2016-07-28 18:18:32 · 438 阅读 · 0 评论 -
java语言基础入门——各类流的介绍
1、什么是流?流是一个抽象的概念,代表一串数据集合,当java程序需要从数据源读取数据时,就开启了一个到数据源的流,同样,当数据需要输出数据到达目的地时,也需要开启一个流。流是用来处理数据的通道。流有字节流,字符流;输入流,输出流。2、InputStream和OutputStream是以字节为单位的输入输出抽象流类(输入是指从字节到流(可读),输出是指从流到字节(可写))。3、Reader原创 2016-08-05 17:56:00 · 2485 阅读 · 0 评论 -
java语言基础入门——继承及多态
一、继承何为继承?java中定义的类如同现实中的人类一样,人有父亲有儿子,类也一样可以有父类和子类。子类通过关键字extends来继承父类的属性及方法。其中父类的私有属性和方法可以被继承,但不能被访问;父类的构造方法不能被继承(可以使用关键字super来调用父类的构造方法,例super(参数));父类的final方法在子类中不能被覆盖;而子类可以拥有属于自己的属性及方法,且子类外加的属性和原创 2016-07-21 16:25:44 · 373 阅读 · 0 评论 -
用java语言写一封面向对象的代码情书
话不多说,附上代码先:class Me{ private final String OBJECT="葫芦娃";//final属性代表OBJET不可变 public boolean find(){ return true; } public String met() { return OBJECT; } public class You{原创 2016-08-01 17:33:11 · 7864 阅读 · 4 评论 -
java语言基础入门——泛型
什么是泛型呢?泛型就是定义时(类的定义、方法的定义、形式参数的定义、成员变量的定义)不确切的指出他的类型,而是通过一个标识符表示他的类型。并且在创建的才给出它的确切类型。打个比喻,泛型就好像大学课堂用于占座的书一样,桌子上有书代表这个座位被人占用了,而具体是哪位同学占用的并不能知道,必须到上课的时候同学来了才能知道具体是哪位同学在占用。1、泛型的声明定义一个泛型的时候,在; 其中K、V原创 2016-07-31 21:35:52 · 336 阅读 · 0 评论 -
java语言基础入门——本地文件操作
在java中,对物理存储介质的文件和目录进行了抽象,使用java.io.file类来代表存储介质的文件和目录。也就是说,在java中文件被File类的对象所表示,操作file对象即为操作计算机本地的文件或目录。该类的基本用法可以通过API文档查找,需要注意的是,在File file=new File(“a.txt”)后,a.txt文件并没有被创建在计算机中,只是创建了一个File类的对象而已,原创 2016-08-03 23:14:34 · 394 阅读 · 0 评论 -
java语言基础入门——多线程
在说多线程之前,先说说什么是单线程吧。单线程就是程序按照代码书写顺序,函数调用顺序,一步一步而往下执行,直到程序结束,例如下面这样package multi_thread;public class SingleThreaded { public void method1(String string) { System.out.println("metho1开始"); Syste原创 2016-07-30 20:39:47 · 395 阅读 · 0 评论 -
java语言基础入门——异常处理
为什么要进行异常处理?在程序设计中,错误通常分为两类,一类编译错误,一类运行错误。编译错误很容易被发现,而运行错误比较难发现,而异常就是一种运行错误。如果不处理好异常很可能会使程序运行时出错崩溃。而异常也分为两种,受检异常和非受检异常。非受检异常是指像错误类型转换,数组越界等程序员的问题造成的,受检异常是指程序运行的外部原因造成的,比如,操作文件、和数据库连接时的异常,其中,受检异常要求必须处理,原创 2016-07-29 19:15:19 · 304 阅读 · 0 评论 -
java语言基础入门——类的介绍
java是一种面向对象的编程语言,提到面向对象就必须说起类。什么是对象?万物皆为对象。面向对象编程思想就是把万物看做成一个个对象,再通过方法的实现从而操作每一个事物。将具有相似点的对象抽象起来就成了一个类,就像人类、鸟类,而每一个不同的人就是一个对象。换句话说就是类是对象的抽象化,对象是类的实例化。在java语言中是先进行类的定义,然后通过new初始化出来一个对象。如类名 变量名=new 类名()原创 2016-07-18 17:31:21 · 512 阅读 · 0 评论 -
java语言基础入门——数组的介绍
为什么用数组?当处理类型相同的一组数据时,对每一个变量进行命名很是不方便,需要一个统一的代号来对这部分数据进行操作。数组是什么?数组是用来存储一系列变量值的命名区域。如何使用数组?遵循先声明后使用的原则。第一步,声明数组。例如:int a[];或int []a;第二步,对数组分配内存空间,例如:a=new int[5];第三步,对数组成员进行赋值,例如:a[0]=0;也可通过引用传原创 2016-07-05 15:01:12 · 377 阅读 · 0 评论