java
文章平均质量分 65
小萝卜头____
这个作者很懒,什么都没留下…
展开
-
排序算法总结之交换类排序
快速排序(不稳定的排序):从待排序记录序列中选取一个记录(通常选取第一个记录)为枢轴,其关键字设为K1,然后将其余关键字小于K1的记录移到前面,而将关键字大于K1的记录移到后面,结果将待排序记录序列分成两个子表,最后将关键字为K1的记录插入到其分界线的位置。一趟快速排序后,原序列一分为二,关键字K1前面的序列均小于K1,后面的序列均大于K1。之后对两个子表继续执行上述分割,直至子表表长不超过1为......原创 2019-06-04 16:55:15 · 408 阅读 · 0 评论 -
sleep方法和wait方法的异同点
相同点:使线程暂停执行一段时间的方法不同点:原理不同:sleep():Thread类的静态方法,是线程用来控制自身流程的,使线程暂停执行一段时间,而把执行机会让给其他线程,等到计时时间一到,此线程会自动“苏醒”。线程执行sleep()方法后会转入阻塞状态,sleep()方法指定的时间为线程不会执行的最短时间,当睡眠时间结束后,线程会返回到可运行状态,不是运行状态,还需要CPU调度执行。...原创 2019-10-11 21:22:00 · 214 阅读 · 0 评论 -
java集合框架
参考链接:https://blog.csdn.net/feiyanaffection/article/details/81394745list、set、map是接口,不能直接被实例化,必须要用其实现类(如arrayList、hashMap、hashSet等)进行实例化。集合和数组的区别: 集合 数组 长度 ...原创 2019-06-05 16:17:00 · 127 阅读 · 0 评论 -
多维数组
1、声明二维数组变量数据类型[][] 数组名;//int[][] matrix;2、创建二维数组并赋值给变量matrix = new int[5][5];3、二维数组中元素赋值将7赋值给第2行第1列的特定元素:matrix[1][0] = 7;4、获取二维数组长度二维数组实际上是一个数组,它的每个元素都是一个一维数组。二维数组长度就是行的个数,如x = ...原创 2019-05-28 18:10:39 · 160 阅读 · 0 评论 -
匿名对象
大多数情况下,我们创建一个对象,然后会将它赋值给一个变量,这样就可以使用这个变量来引用对象。有时候,一个随想创建之后并不需要引用,这种情况下,可以创建一个对象,而并不将它明确地赋值给一个变量,例如:new Circle();//创建一个Circle对象 或System.out.println("Area is " + new Circle(5).getArea());...原创 2019-05-29 11:22:50 · 1105 阅读 · 0 评论 -
引用数据域和null值
数据域也可以是引用型的,例如Student类中包含一个String类型的name数据域,String是一个预定义的java类。Class Student{ String name;//默认为null int age;//默认为0 boolean isScienceMajor;//默认为false}如果一个引用类型的数据域没有引用任何对象,那么这个数据域的默认值为nul...原创 2019-05-29 11:34:57 · 488 阅读 · 0 评论 -
基本类型变量和引用类型变量的区别
每个变量都代表一个存储的内存位置。声明一个变量时,就是告诉编译器这个变量可以存放什么类型的值。对于基本类型,对应内存所存储的值是基本类型值;对引用类型变量,对应内存所存储的值是一个引用,是对象的存储地址。将一个变量赋值给另一个变量时,另一个变量就被赋予同样的值;对引用类型变量而言,就是将一个变量的引用赋值给另一个变量。如果不再需要某个对象,可以显示地给该对象的引用变量赋null值,如果该对象没...原创 2019-05-29 11:46:03 · 4890 阅读 · 0 评论 -
实例变量、静态变量、常量和方法
实例变量绑定到类的某个特定实例的,它是不能被同一个类的不同对象所共享的,实例变量存储在不同的内存位置,互相不影响。静态变量也称类变量,变量值存储在一个公共的内存地址,可以被一个类的所有实例共享,若有一个对象修改了静态变量的值,那么同一个类的所有对象都会受到影响。Java支持静态方法和静态变量,无须创建类的实例就可以调用静态方法。final声明为final的变量是类中的常量,...原创 2019-05-29 20:09:42 · 526 阅读 · 0 评论 -
string、stringBuffer、stringBuilder的区别
初始化:string可以通过构造函数(String s = new String("hello"))的方式进行初始化,也可以采用赋值(String s = "hello")的方式初始化;而StringBuffer和StringBuilder只能使用构造函数的方式初始化String是不可变类,一旦创建就不能修改,通过不断创建新的对象并且将旧的对象回收的一个过程,完成假象更改,所以执行速...原创 2019-07-03 14:33:39 · 105 阅读 · 0 评论 -
最大连续子序列的和
问题描述:给定一个数列,其中可能有正数也可能有负数,找出其中连续的一个子数列(不允许空序列),使它们的和尽可能大。例如:给定数组int[] arr = {-2, 6, -1, 5, 4, -7, 2, 3}; 和最大为14,其对应的子序列为{6, -1, 5, 4}。一、暴力穷举法枚举出所有可能的序列(即所有zi'xu'lie的起始和结束坐标)public static void ...原创 2019-06-03 16:31:04 · 207 阅读 · 0 评论 -
Java代码中通过matlabcontrol调用matlab函数,实现混合编程
参考链接:https://wenku.baidu.com/view/defcdc33eff9aef8951e0605.html方法一:Java调用matlab代码实现混合编程,目前网上大多数博客都是将matlab中的函数打包成一个jar包,之后将生成的jar包添加到项目中并在Java中导入,但如果想对matlab中的函数进行修改,就需要重新打包jar包,这种方式无疑是比较麻烦的。一种好的解决方...原创 2019-06-27 17:00:41 · 3022 阅读 · 0 评论 -
构造方法私有化与单例模式
单例模式:一个类只有一个实例化的对象,单例模式实现的核心是构造方法私有化,这样就不能在类的外部创建该类的实例化对象,要想在类的外部使用构造方法私有化的类对象,只能在类的内部实例化一个类对象,然后通过静态方法返回该实例对象的引用,在外部进行调用。例如:创建一个构造方法私有化的person类public class Person{ private String name; P...原创 2019-07-31 20:53:10 · 423 阅读 · 0 评论 -
Java中的正则表达式
下面是java中正则表达式常用的语法:字符的取值范围1.[abc] : 表示可能是a,可能是b,也可能是c。2.[^abc]: 表示不是a,b,c中的任意一个3.[a-zA-Z]: 表示是英文字母4.[0-9]:表示是数字简洁的字符表示.:匹配任意的字符\d:表示数字\D:表示非数字\s:表示由空字符组成,[ \t\n\r\x\f]\S:表示由非空字符组成,[^\s]...原创 2019-08-05 15:08:48 · 385 阅读 · 0 评论 -
Java从控制台读取输入
Java中system.out表示标准输出设备,用System.in表示标准输入设备。默认情况下,输出设备是显示器,输入设备是键盘。Java不直接支持控制台的输入,但可以使用Scanner类创建它的对象,以读取来自System.in的输入。//读取控制台输入Scanner input = new Scanner(System.in);语法new Scanner(System.in...原创 2019-09-16 10:34:13 · 386 阅读 · 0 评论 -
Java管理文件和目录的类
在Java中提供File类来管理文件和文件夹,通过该类不仅能够查看文件或目录的属性,而且还可以实现对文件或目录的创建、删除与重命名等操作。 File类中常用的方法 方法 作用 ...原创 2019-10-10 16:33:39 · 748 阅读 · 0 评论 -
Java中的多线程
多线程的实现一般由三种方式(前两种方法常用)1、 继承Thread类,重写run()方法(Thread类中的run方法是一个空方法) thread类本质上也是实现了Runnable接口的一个实例,他代表线程的示例,并且,启动线程的唯一方法就是通过Thread类的start方法。 调用start方法后并不是立即就执行多线程代码,而是使该线程变为可...原创 2019-10-11 16:06:08 · 102 阅读 · 0 评论 -
Java模拟栈操作
栈:先进后出的数据结构应用:当一个方法调用另一个方法时,新方法的参数和局部变量被压入栈中,当方法完成它的工作,返回它的调用者时,从栈中释放与它相关的空间。一、用数组来实现思想:模拟一个栈操作,假设栈中存储int数值。栈中的元素都存储在一个名为elements的数组中,创建一个栈的时候,同时创建这个数组,类的无参构造方法创建一个默认容量为16的数组; 变量size记录了栈中元素的个数...原创 2019-05-28 16:41:00 · 602 阅读 · 0 评论 -
ArrayList
数组线性表ArrayList:存储不限定个数的对象,长度不定。数组:一旦被创建,它的大小也就确定了。arrayList提供了更多方法对数组进行操作。 操作 数组 ArrayList 创建数组/ArrayList Object[] a = new Object[10] Arr...原创 2019-05-28 15:39:44 · 102 阅读 · 0 评论 -
==、equals、hashCode方法,hashMap实现原理
在Object中hashCode()返回的是对象的地址值,equals()方法是对两个对象的地址进行的比较;==用来比较两个基本数据类型的值是否相等,或者判断两个对象是否具有相同的引用。 equals方法equals是Object中的一个方法,Object类中的equals方法默认实现方法为:public boolean equals(Object obj){ return...原创 2019-05-28 11:26:20 · 262 阅读 · 0 评论 -
Data truncation: Incorrect datetime value: '' for column 'ordertime'异常解决
实体类中不能引用import java.util.Date;而是用import java.sql.Date;原创 2019-02-21 20:47:37 · 17927 阅读 · 0 评论 -
Multiple Contexts have a path of "A".错误
在eclipse里copy一个项目时,启动服务器会出现以下错误:解决方法:eclipse里面找到server工程,然后找到server.xml文件,在最后有一个<context>的标签里会有两个重复的path,修改其中一个path为当前的项目所在路径就欧克了。...原创 2019-02-19 16:27:52 · 219 阅读 · 0 评论 -
Java关键字
public 、private、protected、default: 作用域对比 可见性修饰符 当前类 同一package 子类 其他package ...原创 2019-05-24 15:22:03 · 99 阅读 · 0 评论 -
Java抽象类与接口
抽象类(将类的实现和使用分离,类的创建者提供类的描述,让描述者明白如何才能使用类,封装细节,对用户隐藏实现细节,用户只需要会使用即可):只要包含一个抽象方法的类就必须被声明为抽象类,那么这个类就是抽象类,抽象类可以声明方法的存在而不去实现它,被声明为抽象的方法不能有方法体。抽象类在使用的过程中不能被实例化,但可以创建其子类的一个对象进行实例化。抽象类的子类为父类的所有抽象方法提供具体的实现,...原创 2019-05-24 17:59:43 · 109 阅读 · 0 评论 -
Java产生随机数和随机字符
Java中有两种方法可以产生随机数:Math.random(); Random r = new Random();int ran1 = r.nextInt(20);其中Math.random()可以产生大于等于0小于1的double类型的随机数,若想要产生[min,max]之间的随机整数,代码如下:int ran = (int)(Math.random()*(max-min)+1)...原创 2019-05-22 16:47:44 · 1800 阅读 · 2 评论 -
java数组知识
数组用来存储一个元素个数固定且元素类型相同的有序集。一维数组声明数组变量: //一、元素类型[] 数组引用变量;(推荐使用)int[] myArray;//二、元素类型 数组引用变量[];int myArray[]; 创建数组:不同于基本数据类型变量的声明,声明一个数组变量时并不在内存中给数组分配任何空间,只是创建了一个对数组的引用的存储位置。声明变量后,可以使用下面语法...原创 2019-05-22 17:59:10 · 448 阅读 · 0 评论 -
java中的for-each循环
Java支持一个简便的for循环,称之为for-each循环,不使用下标变量就可以顺序地遍历整个数组,例如,下面代码就可以显示数组myArray地所有元素: for (int i : myArray) { System.out.println(i);} 但是,当需要以其他顺序遍历数组或改变数组中地元素时,还是必须使用下标变量。 ...原创 2019-05-22 18:07:12 · 21304 阅读 · 0 评论 -
java中的Arrays类
Arrays类属于java.util.Arrays包下sort方法:对整个数组或部分数组进行排序//对字符型或数值型数组进行排序(升序)double[] numbers = {6.2,5.1,4.2,8.6,41.4,8.4};//Arrays.sort(numbers);//System.out.println(Arrays.toString(numbers)); //结果[4....原创 2019-05-27 10:27:11 · 122 阅读 · 0 评论 -
java中变量的作用域
成员变量、静态变量、局部变量成员变量:作用范围与类的实例化对象的作用范围相同,当类被实例化时,成员变量就会在内存中分配空间并初始化,直到这个实例化对象的生命周期结束,成员变量的生命周期才会结束。 static修饰的成员变量为静态变量或全局变量,静态变量不依赖特定实例,而是被所有实例共享。 局部变量:作用域由花括号的位置决定...原创 2019-05-27 10:39:01 · 783 阅读 · 0 评论 -
重写和重载
重载 覆盖(重写) 同一个类中的关系; 多个方法之间的关系; 参数列表不同,返回值类型不同。 子类和父类的关系; 一个或一对方法之间的关系; 参数列表相同,返回值类型相同。 final修饰的类不能作为父类(防止扩展), final修饰的方法不能被覆盖(防止覆盖) ...原创 2019-05-27 13:33:50 · 90 阅读 · 0 评论 -
Java可变长参数列表
可以把类型相同但个数可变的参数传递给方法,方法的参数声明为:(类型名……参数名)在方法声明中,指定类型后紧跟着省略号(...),只能给方法中指定一个可变长参数,同时该参数必须是最后一个参数,任何常规参数必须在它之前。Java将可变长参数当成数组对待,可以将一个数组或可变的参数个数传递给可变长参数,当用可变的参数个数调用方法时,Java会创建一个数组并把参数传给它。printMax...原创 2019-05-23 11:20:28 · 365 阅读 · 1 评论 -
数组的查找和排序
查找线性查找法线性查找法警要查找的关键字key与数组中的元素逐个进行比较,匹配成功,返回关键字在数组中的下标,否则返回-1/*线性查找*/public class LinearSearch(){ public static int linearSearch(int[] list,int key){ for (int i = 0; i < list.length; i...原创 2019-05-23 11:22:59 · 336 阅读 · 0 评论 -
toString()方法
Java中每个类都源于java.lang.Object类,如果定义一个类时没有指定继承性,那么该类的父类默认为Object类。toString()就是Object类中的一个方法。调用一个对象的toString()会返回一个描述该对象的字符串,默认情况下,会返回一个由该对象所属类名、at符号(@)以及该对象十六进制形式的内存地址组成的字符串(也可以直接调用一个对象代替对象.toString()方...原创 2019-05-27 16:39:24 · 3648 阅读 · 0 评论 -
对象数组
数组可以是基本类型组成的的数组,也可以是由对象组成的数组,当使用new操作符创建对象数组后,这个数组中的每个元素都是默认值为null的引用变量。Person[] personArr = new Person[10];//声明并创建10个person对象的数组for (int i = 0; i < personArr.length; i++) {//初始化数组personArr pe...原创 2019-05-30 11:27:52 · 645 阅读 · 0 评论 -
多态
面向对象程序涉及的三个特点:封装、继承、多态。继承:继承关系使一个子类继承父类的特征,并且附加一些新特征。子类是它的父类的特殊化,每个子类的实例都是其父类的实例,但反过来不成立。例如每个圆都是几何对象,但不是每个几何对象都是圆,因此,总可以将子类的实例传给需要父类类型的参数。多态:父类型的变量可以引用子类型的对象,使用父类对象的地方都可以使用子类的对象。子类型:子类定义的类型 ...原创 2019-05-27 18:25:55 · 362 阅读 · 0 评论