JavaSE
文章平均质量分 55
猫小爪喵
可接技术方面订单
展开
-
矩阵中的路径--经典回溯法
题目意思:给定一维字符数组,判断在这个字符数组构成的矩阵中是否可以找到另一个字符串路径算法思想:1、题目说,路径中走过的格子不能重复,因此,需要一个mark数组来标记该格子是否走过 2、排除一些特殊情况,当矩阵数组或字符数组为空或null是,返回false 3、遍历矩阵数组,找到矩阵中字符与字符数组第一个字符相同...原创 2019-08-18 12:12:18 · 248 阅读 · 0 评论 -
Integer和int比较
一、首先值的范围在[-128,127]之间如下:Integer i1=59;int i2=59;Integer i3=Integer.valueOf(59);Integer i4=new Integer(59);System.out.println(i2==i1);System.out.println(i3==i4);System.out.println(i2==i4);S...原创 2019-06-08 19:27:03 · 2064 阅读 · 0 评论 -
爬虫项目
一、目的 虽然说python很好写爬虫,并且Java也有很多爬虫框架,比如,crawler4j,WebMagic,WebCollector,我写的这个爬虫框架呢,只能解决特定的小问题,还没办法达到很好的通用性,但是通过这个项目,我们可以了解熟悉一下爬虫的整体思路,以后用第三方爬虫框架的时候也就很好上手了。二、分析以及实现 我们这里以古诗文网作为数据来源,进行爬虫;...原创 2019-06-07 15:39:23 · 921 阅读 · 0 评论 -
IDEA的md文件中插入图片的方法
1、! [avator]()括号内可写:相对路径:条件:md文件和图片在同一级目录下绝对路径:写完整就好了网络图片链接2、![Alt text](图片链接 "title")Alt text:图片的alt标签,用来描述图片的关键词,可以不写图片链接:可以是本地地址,也可以是网络地址title:鼠标置于图片上可显示标题文字,可以不写3、内嵌式(1)通过http...原创 2019-06-05 10:33:56 · 17844 阅读 · 3 评论 -
求数n最少需要多少步才能变成Fibonacci数列
思路:1、找到第一个大于等于数n的Fibonacci数x 2、进而得到前一个Fibonacci数y 3、比较|x-n|和|y-n|,较小值则是最终要走的步数import java.util.Scanner;import static java.lang.Math.abs;import static java.lang.Math.min;...原创 2019-05-30 16:46:03 · 812 阅读 · 0 评论 -
删除公共字符
输入:两行字符串输出:在第一行字符串中删除第二行字符串中出现的字符,输出第一行字符串删除后的结果for example:思路:接收两个字符串->遍历->替换相同的字符为特殊字符->遍历,将不是特殊字符的字符放到另一个数组中->输出这个新数组=========================================Code=============...原创 2019-05-25 10:06:18 · 150 阅读 · 0 评论 -
买苹果,数学知识的重要性日益凸显
题目如下:解题思路:首先会想到一个二元一次方程,在方程上的一组(x,y)就是满足小易购买标准的两种包装的各自袋数;程序实现: 我这里用的是两层循环,判断是否满足那个等式即可,突然想到,可以用一层循环,在内部进行减法运算,得到另一种包装苹果的袋数,若为整数,则进行计算得到总袋数,若不是整数,则不满足条件,一会儿我再改进一下; 计算完成之后呢,就是判断...原创 2019-05-25 09:45:48 · 300 阅读 · 0 评论 -
输入n个数,输出里面出现大于等于n/2的数
思路:(1)首先是n个数,如何判断准确个数,我这里采用String接收然后变为字符数组的方式,要知道的是变为字符数组时,数组里还存放了n个空格,所以输入的数字个数=字符数组.length/2;(2)知道输入数字的个数之后,new一个新数组去只存放数字(具体存放过程见下方代码),当然,这里数字是按照字符的格式存放的;(3)经过上一步,也就准备好了我们所需要的数组,接下来就是遍历,循环遍历...原创 2019-05-24 22:12:09 · 631 阅读 · 0 评论 -
String,StringBuffer,StringBuilder的区别
三者在执行速度方面的比较:StringBuilder>StringBuufer>String建议使用场合:StringBuilder(单线程,操作大量数据); StringBuffer(多线程,操作大量数据); String(操作少量数据);String是字符串常量,Stri...原创 2019-05-05 22:07:42 · 138 阅读 · 0 评论 -
火车进站,如何思考?
结合上两篇文章,https://blog.csdn.net/sophie1314/article/details/91372295,出栈入栈队列https://blog.csdn.net/sophie1314/article/details/91346647,Java实现全排列我们不难有想法>>可以先给火车编号进行全排列,再对所有的全排列进行分析,是否是合法的出栈队列,...原创 2019-06-10 15:03:16 · 1015 阅读 · 0 评论 -
模拟Java堆溢出过程
我们知道对象以及数组存在Java堆中,实际上数组也是对象,所以我们统称,实例对象存在Java堆上; 但是内存一定是有限的,只要不断的new对象,并且保障GC Roots到对象之间有可达路径来避免来GC清除这些对象,那么一定会发生堆内存溢出; 接下来我们就来模拟一下: 1、我们创建一个内部类,在主方法中循环new这个类的对象...原创 2019-06-22 12:59:46 · 831 阅读 · 0 评论 -
模拟Java栈溢出过程
Java栈,是指Java虚拟机栈,本地方法栈; Java虚拟机栈是Java方法执行的内存模型,每个方法执行的同时都会创建一个栈帧用于存储局部变量,操作数栈,动态链接(在一个方法中调用另一个方法),方法出口等信息。每一个方法从调用直至执行完成的过程,就对应一个栈帧在虚拟机栈中入栈和出栈的过程,生命周期与线程相同。 之前一直说的栈实际就是Java虚拟机栈,更详细...原创 2019-06-22 15:15:01 · 1462 阅读 · 0 评论 -
被二分查找绊倒,亏不亏?!!!
有时候,我们总是会忽略一些很简单的题,直到在笔试中被检验!!!惊喜于题目的简单,惊讶于测试用例一直通不过的悲哀,然而笔试也不会再重来一次,你也不知道到底是错在哪里了。。。。格式吗?who konws。。唯一的方法就是再敲一遍如下:非递归二分查找,递归二分查找//我这里写的是无返回值的,也可以写成有返回值的,都可以public class Test3 { public sta...原创 2019-08-16 20:30:28 · 139 阅读 · 0 评论 -
单例设计模式
单例设计模式是什么?单例设计模式只允许产生一个实例化对象,这种模式简化了在复杂情况下的管理,比如,一个类如果不采用单例模式,那么操作其属性,方法等,就需要实例化对象,这时你可以实例化很多这个类的对象,造成了一定程度的资源消耗,这显然是不太友好的,单例模式正好就可以解决这一问题,如:服务器的配置文件,可以由一个单例对象同一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息...原创 2019-08-11 14:19:13 · 124 阅读 · 0 评论 -
Java实现深拷贝的两种方式:实现Cloneable接口,实现对象的序列化(Serializable接口)
如下图所示: clone是浅拷贝的展示,我们直接调用Object类的clone接口,由于Course是引用类型,浅拷贝实际上前后指向了同一个对象,那么就会出现“牵一发而动全身”的效果; clone1是实现了对象序列化的深拷贝,将对象变为二进制字节流(通过这三步:ByteArrayOutputStream,ObjectOutputStream,wri...原创 2019-08-19 12:44:54 · 1456 阅读 · 0 评论 -
根据提供的马戏团员的体重和身高,得出最终可以叠成汉诺塔的最高个数
有时候在思考的时候,我们大可不用那么复杂,可以按照平常自己处理问题的思路来慢慢推导,无非就是再细致一些,再逻辑化一些; 题目如下: 我们怎么去思考这个问题,首先,明白题意:(1)体重相同的两个人,只有身高也相同才可以叠在他的肩上 ...原创 2019-07-27 15:13:53 · 202 阅读 · 0 评论 -
扑克牌顺子
思路见代码注释:public class Solution { //首先牌数得是5,否则false //顺子的特点,最大值减去最小值为4,并且牌不重复,但是由于有大小为0的存在,最大值减去最小值<=4, //大小王的个数,也就是0的个数<=4,判断其他牌个数不大于2,保证不会出现对子 public boolean isContinuous...原创 2019-08-05 10:51:53 · 166 阅读 · 0 评论 -
处理TopK问题的两种方式
TopK问题:即给定n个数据,从中找出Topk大的数据或者TopK小的数据 在处理海量数据的时候,往往需要找出Top前几的数据,这时候,如果直接对数据进行排序,在处理海量数据的时候往往就是不可行了,而且排序最好的时间复杂度是nlogn,当n远大于需要获取到的数据的时候,时间复杂度就显得过高;一、使用最大堆或者最小堆可以很好的解决Top大问题或者Top小问题解决Top大问题,...原创 2019-07-17 16:10:52 · 558 阅读 · 0 评论 -
JUC并发包下的工具类
一、闭锁CountDownLatch作用:让当前线程等到一组事件发生后再继续执行举例:比如,运动员和裁判员,裁判员线程需要等到所有的运动员线程到达之后才可以宣布比赛结束闭锁中几个重要的方法: (1)构造方法:public CountDownLatch(int count):count【需要等待的线程数】 (2)public void countD...原创 2019-07-17 13:09:34 · 414 阅读 · 0 评论 -
Java如何测试内存泄漏
我们知道JVM有自动回收机制,那么我们该怎么去测试程序中发生的内存泄漏呢,那首先是让程序不要运行完,我们可以让其sleep一会儿; 以一个顺序表为例,代码如下:public class Sequence { private Object[] elem; private int usedSize; private static int FA...原创 2019-07-16 17:12:57 · 1212 阅读 · 0 评论 -
数组中的逆序对
这道题是我想的太简单了吗,我用了类似于冒泡的排序去比较,前者大于后者,逆序对就加一,然后通过了全部的测试用例,后来查了一下其他人的,怎么感觉那么长,先把我的放在这里,如果是我哪里疏忽了,还望大家可以指正我,谢谢^-^import java.util.*;public class AntiOrder { public int count(int[] A, int n) { ...原创 2019-04-16 20:18:44 · 112 阅读 · 0 评论 -
多态的核心体现(方法的多态性,对象的多态性)
多态的概念:同一个方法,在不同的情境下会有不同的表现多态的核心体现主要有以下两点:一、方法的多态性(1)方法的重载定义:同一个方法名可以根据参数列表的不同调用不同的方法体(2)方法的覆写定义:同一个父类的方法,可以根据实例化子类的不同也有不同的表现二、对象的多态性前提:方法覆写(1)对象的向上转型父类 父类对象=new 子类();核心作用:操作参数统一...原创 2019-04-20 21:03:09 · 3402 阅读 · 0 评论 -
如何激活IDEA?
IDEA的安装就很简单了,一路向下,其中选择适合自己的32/64位系统,下面的三个都选就好了,安装就结束了,所以也就不再多说,接下来来看看如何激活!方法一是到2019年过期,方法二是2099年过期,适合长期使用。方法一:(到2019年5月过期)步骤一:访问http://idea.lanyus.com/?tdsourcetag=s_pcqq_aiomsg,可以看到网站提示“使用前请将...原创 2018-11-21 18:40:47 · 4923 阅读 · 1 评论 -
JavaSE之数组的定义与使用
一、一维数组1、数组的概念:数组指的是一组相关类型的变量集合,并且这些变量可以按照统一的方式进行操作;2、数组的类型:数组是引用数据类型(因此数组在使用之前一定要开辟空间(实例化),否则就会产生NullPoninterException)3、数组的初始化:(1)动态初始化概念:数组首先先开辟空间,然后再使用索引(数组的下标)进行内容的设置语法:数据类型[] 数组名...原创 2018-11-22 18:36:44 · 162 阅读 · 1 评论 -
面向对象编程是什么?
面向过程编程缺少了可重用性设计,面向对象编程有很多的优点。一、面向对象三大特征封装性:所谓封装,就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐蔽。简而言之就是,内部操作对外部而言不可见(保护性)继承性:继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。多态性:所为多态就是指...原创 2018-11-22 19:46:47 · 354 阅读 · 0 评论 -
类与对象(封装)
类是生产对象的蓝图,首先生产类,才可以产生对象。对象的所有行为,一定在类中进行了完整的定义。类的语法:class 类名称{ 属性1; 属性2; 属性n...; 方法1(){} 方法2(){} 方法n(){}...}以上就是一个类的完整定义,此时的方法不再由主类直接调用,而是需要有对象调用。类有一定的设计原则,我们通过下面的说明和例子来一一深入。...原创 2018-11-22 21:31:45 · 931 阅读 · 0 评论 -
JavaSE构造方法
构造方法是指使用关键字new实例化新对象时来调用的操作方法。对于构造方法的定义,也要遵循以下原则:1、方法名称必须与类名称相同2、构造方法没有返回值类型声明public void Person(){}//命名不标准的普通方法public Person(){}//无参构造方法编译器是根据程序结构来区分普通方法与构造方法的,所以在构造方法之前没有返回值类型声明3、每一个类中一...原创 2018-11-25 10:24:27 · 266 阅读 · 0 评论 -
Java进程与线程、线程状态及判断
java的第一大特色:多线程的编程支持一、进程:操作系统中一个程序的执行周期称为是一个进程 多进程:操作系统中多个程序同时进行,比如,windows就是一个多进程的操作系统二、线程:一个程序下的每一个任务称之为一个线程 多线程:一个程序同时可以执行多个任务,比如,一个浏览器可以同时下载很多图片,音乐三、对多进程、多线程的形象化描述:比如学校餐厅,有多个窗口...原创 2019-02-19 23:19:49 · 2422 阅读 · 2 评论 -
Java多线程实现的三种方式
一、继承Thread类实现多继承不足:单继承局限java.long.Thread 是一个线程操作的核心类,新建一个线程最简单的方法就是继承Thread,然后腹泻Thread类下的run方法,run方法是线程的主体,它包含了要执行的线程的内容。步骤一:定义线程主体类class MyThread extends Thread{ private String title; ...原创 2019-02-20 19:42:17 · 149 阅读 · 0 评论 -
Java多线程实现之Thread和Runnable的区别
一、Runnable接口实现多线程解决了继承thread的单继承局限二、Thread类是Runnable接口的子类,Thread类覆写了Runnable接口的run()方法三、Runnable实现的多线程的程序类可以更好的描述出程序共享的概念(1)使用Thread实现数据共享class MyThread1 extends Thread { private int ...原创 2019-02-20 20:14:26 · 751 阅读 · 2 评论 -
JavaSE之方法的定义与使用
一、方法的定义方法是一段可以重复被调用的代码块这篇文章里的所有方法都必须在主类中定义,并且在主方法中调用。》》方法的声明public static 方法返回值 方法名称([参数类型 变量]...){ 方法体代码; [return 返回值];}当方法以void关键字声明,那么此方法没有返回值;若有返回值,返回值可以为基本数据类型和引用类型。...原创 2018-11-20 17:35:34 · 250 阅读 · 0 评论 -
Java数据类型(整型,浮点型,字符型,布尔型)
Java数据类型划分简介:Java是一种强类型语言,这意味着必须为每一个变量声明一种类型有8大基本数据类型:byte,short,int,long,double,float,char,boolean,具体类型如下图:对于基本数据类型都有其对应的保存范围:基本类型 默认值 存储 对应的包装类 数据范围 byte 0 1个字节 ...原创 2018-11-19 13:34:06 · 19124 阅读 · 0 评论 -
JavaSE注释,标识符和关键字介绍
Java是统称。 Java SE是里面的某一个方向。Java SE是Java的标准版,主要用于桌面应用开发,同时也是Java的基础,它包含Java语言基础、JDBC(Java数据库连接性)操作、I/O(输出输出)操作、网络通信、多线程等技术。1、Java注释Java的注释主要分为以下三种:--->单行注释://注释内容(用得最多)--->多行注释:/*注释内...原创 2018-11-18 21:58:52 · 361 阅读 · 0 评论 -
牛客网练习题-说反话
题目:就不打字了,上一张截图我的思路:(1)题目是反转单词顺序,而不是反转每个字母;那么观察示例,简单来说就是倒着去输出。(2)倒着去输出,具体是怎么输出的呢,就要找输出的起始点和结束点,从右往左看,起始点是遇到空格符时的右边一位,然后从左向右打印,结束点是上一次的空格处。 总之就是依次从右向左查找空格,找到之后再从左向右打印这个单词,循环这个步骤,直到找不到空...原创 2019-04-10 13:59:23 · 579 阅读 · 0 评论 -
编程模拟老师的询问
import com.sun.deploy.util.UpdateCheck;import java.util.Scanner;/** * Created: 2019/3/30 */public class Main4 { public static void main(String[] args) { Scanner scanner = new Sc...原创 2019-03-30 21:46:42 · 262 阅读 · 0 评论 -
使用git时遇到的小问题
Question1:git提示“不是内部或外部命令,也不是可运行的程序”Answer1:这是因为你安装了git之后,并没有进行配置环境变量;设置系统变量的目的:为了使系统可以找到程序的运行路径! 解决方法:(1) 找到git安装路径下的bin文件和git-core文件 ...原创 2019-03-14 17:49:15 · 769 阅读 · 0 评论 -
Java数组简单练习
对java数组学习的简单练习:1.计算数组中最大值; 2.计算数组中最小值;3.计算数组值之和;4.数组拼接;5.数组截取;6.数组打印;7.数组反转。代码如下://Java数组练习题public class ArrayUtils{ //1.计算数组中最大值 public static int arrayMaxElement(int[] data){ in...原创 2018-11-12 22:40:52 · 685 阅读 · 0 评论 -
Java语言的特点
Java是一种优秀的程序设计语言,它具有令人赏心悦目的语法和易于理解的语义。不仅如此,Java还是一个由一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合。顺便说一下,JavaScript和Java没有任何关系,最开始JavaScript叫liveScript,当时Java太火了...原创 2018-11-18 16:32:49 · 2387 阅读 · 0 评论 -
Java的main方法(String[] args等的详细介绍)
main方法示例:public class Test{ public static void main(String[] args){ System.out.println("Hello Java"); System.out.println("My name is:"+args[0]);}}一、运行java程序...原创 2018-11-18 18:01:44 · 11607 阅读 · 1 评论 -
实现猜数字游戏
java实现猜数字游戏和c语言实现猜数字游戏的思路是一样的,写法不一样下面是java实现猜数字游戏://猜数字import java.util.Random;import java.util.Scanner;public class GuessNumber{ public static void main(String[] args){ System.out.pr...原创 2019-03-01 11:27:49 · 570 阅读 · 0 评论