Java
篱落雨沫
这个作者很懒,什么都没留下…
展开
-
Java--Java中数组的基本操作
1.计算数组中最大值2.计算数组中最小值3.计算数组值之和4.数组拼接5.数组截取6.数组打印7.数组反转public class ArrayUtils{ //1.计算数组中最大值 public static int arrayMax(int[] a){ int max = a[0]; int i; for(i = 0...原创 2018-11-14 12:23:46 · 336 阅读 · 0 评论 -
Java--面向对象->多态
概念:多态是指一个类的实例的相同方法在不同情形下有不同的表现形式从而得到良好的设计1.多态的核心表现1.1方法的多态性方法的重载:同一个方法名称可根据参数的类型或个数不同调用不同的方法体 方法的重写:同一个父类的方法,可根据实例化子类的不同有不同的形式1.2对象的多态性(抽象类和接口才能体会到实际用处)对象多态性的前提:方法覆写对象的向上转型:父类 父类对象 = 子...原创 2019-05-15 17:48:38 · 131 阅读 · 0 评论 -
Java--覆写
概念:子类定义与父类相同的方法或属性时,该操作称为覆写1.方法的覆写(研究抽象类和接口的第一步)概念:子类定义了与父类方法名称、参数类型及个数完全相同的方法注意:子类被覆写时不能够拥有比父类更为严格的访问控制权限 你当前使用的对象是通过哪个类new的 当调用某个方法时,如果该方法已经被子类所覆写,那么调用的一定是被覆写过的方法举例:class People...原创 2019-05-15 19:05:50 · 190 阅读 · 0 评论 -
Java--方法重载与方法覆写(方法重写)的区别
方法重载(Overload):https://mp.csdn.net/postedit/88760397方法覆写(Override): https://mp.csdn.net/postedit/902419381.概念不同重载:方法名相同,参数的列表或返回值不同,与返回类型无关 覆写:方法的名称、返回值类型、参数类型及个数完全相同2.关系不同重载:同一个类中方法之间的关系,是水...原创 2019-05-15 19:08:39 · 678 阅读 · 0 评论 -
编程题--左右最值最大差
题目:给定一个长度为N(N>1)的整型数组A,可以将A划分成左右两个部分,左部分A[0..K],右部分A[K+1..N-1],K可以取值的范围是[0,N-2]。求这么多划分方案中,左部分中的最大值减去右部分最大值的绝对值,最大是多少?给定整数数组A和数组的大小n,请返回题目所求的答案。测试样例:[2,7,3,1,1],5返回:6分析:本题的要求是“数组左边部...原创 2019-05-17 17:54:29 · 372 阅读 · 0 评论 -
编程题--求1+2+3+...+n的和,不能用for、while、if等
题目描述: 求1+2+3+...+n的和,要求不能使用乘除法、for、while、if、else、switch、case等关键字 及条件判断语句(A?B:C)。解题思路: 可以使用短路算法&&,当"n = 0"时发生短路。代码实现:public class Solution { public int Sum_Solution(...原创 2019-06-25 22:28:26 · 687 阅读 · 0 评论 -
编程题--链表分割
题目描述:编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割后保持原来的数据顺序不变解题思路:import java.util.*;/*public class ListNode { int val; List...原创 2019-07-24 11:08:20 · 250 阅读 · 0 评论 -
[ 算法 ]-- 直接插入排序,Java实现
直接插入排序:在一个已经有序的序列中插入一个新的数,使得插入之后的序列依然有序。插入排序的基本思想是将一个数插入到已经有序的序列中,得到一个新的、个数加一并且依然有序的序列。基本实现思路:对于给定的元素个数为n的数组,已知只有一个元素的数组一定有序,即将第一个元素自动看成一个有序数组,其余的元素为无序;从第二个元素开始到第n个元素,依次向有序序列中执行直接插入操作,得到有n个元素的...原创 2019-07-24 17:32:33 · 183 阅读 · 0 评论 -
[ 算法 ] -- 希尔排序,Java实现
希尔排序:希尔排序又称为缩小增量法,是对直接插入排序算法的最坏情况的优化。实现过程:先将数据分成不同的组,对每一组进行排序,然后再对所有元素进行一次插入排序,减少数据交换和移动的次数。在进行希尔排序时,要先知道数组的长度,根据长度确定步长大小。当步长为1时,采用直接插入排序。具体实现由下图所示:时间复杂度:希尔排序的时间复杂度与增量(步长len)的选取有关。...原创 2019-07-25 11:21:31 · 151 阅读 · 0 评论 -
[ 算法 ] -- 选择排序,Java实现
选择排序:每次从待排序的数据元素中选出最小(或最大)的元素,存放在起始位置,直到全部待排序的数据全部排完。实现思路1:每一趟排序,j = i + 1;当arr[j]<arr[i],交换,否则不交换实现思路2:先选出待排序数据中的最小元素,再进行交换时间复杂度:O(n^2)空间复杂度:O(1)选择排序是不稳定的排序思路1代码实现:import java...原创 2019-07-25 18:12:10 · 173 阅读 · 0 评论 -
[ 算法 ] -- 快速排序(递归、非递归、优化),Java实现
快速排序思想:快速排序使用“分而治之”的思想,在待排序的元素中选取某一元素作为基准值,通过一趟快速排序将待排序序列分割成两部分,基准值左边部分的所有元素均小于基准值,右边部分的所有元素均大于基准值,之后分别对这两部分重复上述过程,直到所有元素排在相应位置,即完成本次快速排序。时间复杂度:平均:O(n*logn);最坏:O(n^2)空间复杂度:O(log n),最坏:O(n)-->...原创 2019-07-27 11:03:57 · 543 阅读 · 0 评论 -
[ 算法 ] -- 归并排序,Java实现
归并排序基本思想:归并排序是建立在归并操作上的一种有效的排序算法,采用“分治”思想。归并排序将已经有序的子序列合并成一个序列,得到的序列完全有序;二路归并:将两个有序表合成一个有序表归并排序的特点:时间复杂度:O(n*logn)空间复杂度:O(n)稳定性:稳定归并排序的步骤:1. 分解:将待排序的序列平均分解成两个元素个数相同的子序列;2. 合并:合并两个有序...原创 2019-08-05 19:53:00 · 131 阅读 · 0 评论 -
IDEA中安装 Lombok 插件及遇到的问题
Lombok的简介:lombok是一个通过注解以达到减少代码的Java插件,用于帮助开发人员消除Java代码的冗长(尤其对于简单的Java对象),减少get()、set()、构造方法等的编写。Lombok的安装:1. 打开IDEA,选择插件:File --> Setting --> Plugins2. 选择Browse repositories,双击3. 搜...原创 2019-08-08 17:39:35 · 3364 阅读 · 1 评论 -
Java--面向对象->代码块
定义:代码块是用 {} 定义的一段代码分类:(根据代码块定义的位置以及关键字分)普通代码块、构造块、静态块、同步代码块1.普通代码块普通代码块是定义在方法中的代码块举例:package com.wl;public class Test { public static void main(String[] args) { //直接使用{}定义...原创 2019-04-02 22:24:50 · 201 阅读 · 0 评论 -
Java--面向对象-> 封装
封装是面向对象的三大特征之一。封装是指将客观事物封装成抽象的类,类将自己的数据、方法、属性或者实现细节的处理方式让可信的类或者对象操作,对不可信的类或对象进行信息隐藏(即内部操作对外部而言不可见)。 封装也可以理解为选择性的公开或隐藏默写信息,解决了数据额安全性问题。要使对象不能直接操作属性(即实现内部操作对外部不可见),可使用private进行封装。用private进行封装的属性,...原创 2019-04-02 19:37:21 · 237 阅读 · 0 评论 -
Java--面向对象->继承
继承的作用:继承可以使用现有类的全部功能,并在无需重新编写原来类的情况下对功能进行扩展1.继承的实现在Java中,继承用extends关键字实现,定义的语法:class 子类 extends 父类举例:未扩重新属性class People{ private String Name; private int age; public void ...原创 2019-05-15 17:41:19 · 193 阅读 · 0 评论 -
Java--使用Java语言编写程序,打印乘法口诀表
程序代码如下:public class Test2{ public static void main(String[] args){ for(int i=1; i<10; i++){ for(int j=1; j<=i; j++) { System.out.print(j+"*"+i+"="+j*i+"\t"); } System.out...原创 2018-11-20 16:42:46 · 4248 阅读 · 0 评论 -
Java--使用 Java 语言分别计算 1.1+2+...+100 和 2. 10! 的值
使用Java语言计算:1. 1+2+. . .+100 的值;2. 10!的值。程序代码如下:public class Test5{ public static void main(String[] args){ //1~100 int result1=sum(100); System.out.println("1+2+...+100="+result1);//计算...原创 2018-11-20 22:23:20 · 837 阅读 · 0 评论 -
Java--Java注释、标识符与关键字
Java的注释 单行注释:// 注释内容(用的最多) 多行注释:/* 注释内容*/(不推荐) 文档注释: /** 文档注释 */(常见于方法和类之上描述方法和类的作用),可用来自动生成文档Java的标识符 Java语言中,对于变量,常量,函数,语句块也有名字,我们统统称之为Java标识...原创 2018-11-21 15:08:17 · 213 阅读 · 0 评论 -
Java--String、StringBuffer、StringBuilder之间的区别:
在Java语言中,共有byte、short、int、long、float、double、boolean、char 8个基本数据类型,其中char类型表示单个字符。在实际的编程过程中,我们比较常用的是由多个字符组成的“字符串”,由于没有表示“字符串”的基本数据类型,所以Java提供了一个被final修饰、不能被继承的类String,从而为我们能够使用字符串类型提供了方便。随着Java语言的不...原创 2020-03-03 12:14:38 · 233 阅读 · 0 评论 -
Java--String类“==”与equals的区别
String类“==”与equals()的区别:“==”:进行的数值比较,比较的是两个字符串对象的内存地址数值。“equals()”:可以进行字符串内容的比较用"=="比较,“”==比较是针对两个String类型的变量的引用,如果两个String类型的变量,它们所引用同一个String对象(即指向同一块内存堆),则"=="比较的结果是true。用equals()比较,Strin...原创 2018-11-28 23:34:20 · 278 阅读 · 0 评论 -
Java--Java语言编写“猜数字游戏”
题目要求:用Java语言编写猜数字游戏,首先生成[0,100)的随机数,玩家进行猜数字游戏,猜错后继续输入数字,直到猜对,并输出玩家总共猜的次数。本文共写了两段程序,第一段是只能玩一次游戏,猜对后即退出程序;第二段是可以重复玩多次,直到按0或者其他错误命令退出程序。只能玩一次游戏的情况,程序代码如下:import java.util.Random;import java.util...原创 2018-11-20 13:50:53 · 5874 阅读 · 0 评论 -
Java--面向对象的三大特征:继承性、封装性、多态性
一、面向对象的三大特征:继承性:继承是指一种能力,是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法,它可以用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类继承方法...原创 2018-11-29 22:11:26 · 898 阅读 · 0 评论 -
给定一个英文字符串,写一段代码找出字符串中首先出现三次的英文字母
输入描述:输入数据为一个字符串,包括字母,数字输出描述:输出首先出现三次的那个英文字符示例:输入:Hava you ever gone shopping and 输出:e程序代码如下:public class Test2 { public static char FindThreeChar(String str){ if(str=...原创 2018-12-05 21:11:20 · 1207 阅读 · 0 评论 -
Java--Java中抽象类的定义、抽象方法的定义、抽象类的使用
一、抽象类与抽象方法的定义抽象类:只在普通类的基础上扩充了一些抽象方法 抽象方法:只声明而未实现的实体(即抽象方法没有方法体)所有的抽象方法和抽象方法所在的类都要使用abstract关键字定义,用abstract关键字定义的抽象方法所在的类称为抽象类抽象类中包含抽象方法,抽象方法不包含方法体,即抽象类中没有具体实现,所以抽象类中不能直接产生实例化对象举例:创建一个简单的抽象...原创 2019-03-01 12:56:04 · 13973 阅读 · 2 评论 -
Java--方法的定义与使用,方法重载,方法递归
1.方法定义方法是一段可以被重复调用的代码块方法声明:如果方法以 void 关键字声明,那么该方法无返回值;若有返回值,返回值可以为基本类型和引用类型。 方法以 void 声明时,可以用 return 结束调用(与 if 语句配合使用)public class Main { public static void main(Strin...原创 2019-03-23 14:50:05 · 1232 阅读 · 0 评论 -
Java--面向对象->内部类
一、概念内部类是一个类的内部进行其他类结构的嵌套的操作简单定义:package com.wl;//内部类的简单定义class Outer{ private String msg = "Hello World!"; //定义一个内部类 class Inner{ //内部类中的普通方法 public void print(...原创 2019-04-11 16:40:14 · 164 阅读 · 0 评论 -
[ 算法 ] -- 堆排序,Java实现
堆的基本概念:堆是一棵所有元素按完全二叉树的顺序存储方式存储的完全二叉树。堆的性质: --堆中某个节点的值总不大于或不小于其父节点的值; --堆总是一棵完全二叉树。小根堆:每个节点的值小于等于左、右孩子的值(根节点最小的堆)大根堆:每个节点的值大于等于左、右孩子的值(根节点最大的堆)父节点 n ==&g...原创 2019-08-23 23:38:38 · 273 阅读 · 0 评论