
Java
Risesun*
软件工程
展开
-
String常用方法
int length():返回字符串的长度: return value.lengthchar charAt(int index): 返回某索引处的字符return value[index]boolean isEmpty():判断是否是空字符串:return value.length == 0String toLowerCase():使用默认语言环境,将 String 中的所有字符转换为小写String toUpperCase():使用默认语言环境,将 String 中的所有字符转换为大写Stri.原创 2021-06-02 11:24:50 · 198 阅读 · 0 评论 -
线程的生命周期
JDK中Thread.State类定义线程的几种状态新建:当一个Thread类或其子类的对象被声明并创建时,新生的线程对象处于新建 状态就绪:处于新建状态的线程被start()后,将进入线程队列等待CPU时间片,此时它已 具备了运行的条件,只是没分配到CPU资源运行:当就绪的线程被调度并获得CPU资源时,便进入运行状态, run()方法定义了线 程的操作和功能阻塞:在某种特殊情况下,被人为挂起或执行输入输出操作时,让出 CPU 并临时中 止自己的执行,进入阻塞状态死亡:线程完成了它的全部工作或原创 2021-06-01 14:33:23 · 167 阅读 · 0 评论 -
Thread类的常用方法
Thread类的常用方法void start(): 启动线程,并执行对象的run()方法run(): 线程在被调度时执行的操作static Thread currentThread(): 返回当前线程。在Thread子类中就 是this,通常用于主线程和Runnable实现类String getName(): 返回线程的名称void setName(String name):设置该线程名称static void yield():线程让步join() :在线程a中调用线程b的joi原创 2021-06-01 13:57:20 · 381 阅读 · 0 评论 -
程序、进程和线程
程序是为完成特定任务、用某种语言编写的一组指令的集合。即指一 段静态的代码,静态对象。进程是程序的一次执行过程,或是正在运行的一个程序。是一个动态 的过程:有它自身的产生、存在和消亡的过程。——生命周期程序是静态的,进程是动态的 。进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域 。线程进程可进一步细化为线程,是一个程序内部的一条执行路径。若一个进程同一时间并行执行多个线程,就是支持多线程的线程作为调度和执行的单位,每个线程拥有独立的运行栈和程序计数器(pc原创 2021-06-01 13:12:38 · 252 阅读 · 0 评论 -
异常处理机制及常见问题
异常处理机制在编写程序时,经常要在可能出现错误的地方加上检测的代码, 如进行x/y运算时,要检测分母为0,数据为空,输入的不是数据 而是字符等。过多的if-else分支会导致程序的代码加长、臃肿, 可读性差。因此采用异常处理机制。Java程序的执行过程中如出现异常,会生成一个异常类对象, 该异常对象将被提交给Java运行时系统,这个过程称为抛出 (throw)异常。异常对象的生成由虚拟机自动生成:程序运行过程中,虚拟机检测到程序发生了问题,如果在当 前代码中没有找到相应的处理程序,就会在后台原创 2021-05-20 20:55:06 · 448 阅读 · 0 评论 -
异常体系
异常概述在Java语言中,将程序执行中发生的不正常情况称为“异常”。(开发过程中的语法错误和逻辑错误不是异常)异常体系Erro(unchecked)Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。比如:StackOverflowError和OOM。一般不编写针对性 的代码进行处理。Exception编译时异常(受检异常)编译器要求必须处理的异常。(声明或者捕获)程序在运行时由于外界因素造成的一般性异常。举例:NullPointerExceptio原创 2021-05-20 18:39:45 · 116 阅读 · 0 评论 -
内部类(成员内部类、局部内部类、匿名内部类)
内部类当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内 部的完整的结构又只为外部事物提供服务,那么整个内部的完整结构最好使 用内部类。分类成员内部类(static成员内部类和非static成员内部类)局部内部类(不谈修饰符)、匿名内部类成员内部类特点:作为外部类成员:1.和外部类不同,Inner class还可以声明为private或protected;2.可以调用外部类的结构3.Inner class 可以声明为static的,但此时就不能再使用外层类的原创 2021-05-16 20:55:34 · 737 阅读 · 0 评论 -
RabbitMQ单机集群搭建及WEB监控
在搭建之前请确保已安装RabbitMQ及其Erlang语言环境,本文对此不做介绍。我也是在搭建过程中很出了错,在网上看了很多资料,做此记录。场景:两个rabbitmq节点,分别为rabbitmq-1,rabbitmq-2,rabbitmq-1为主节点,rabbitmq2为从节点。在正式搭建之前,需要停掉,原本的rabbitmq服务。查看进程状态: ps -ef|grep rabbitmq停止rabbitmq服务:systemctl stop rabbitmq-server正式搭原创 2021-05-14 21:36:58 · 946 阅读 · 13 评论 -
代码块
代码块原创 2021-05-13 19:05:02 · 96 阅读 · 0 评论 -
final关键字
final关键字原创 2021-05-13 19:04:21 · 104 阅读 · 0 评论 -
重写和重载及其区别
重写重载原创 2021-05-13 19:02:41 · 268 阅读 · 0 评论 -
对面向对象的理解
面向对象–面向对象是一种编程思想,我们常说万事万物皆为对象,只要是现实中存在的事物都可以被抽象成对象。对象有以下特点:对象具有属性和行为对象具有变化的状态对象具有唯一性对象都是某个类别的实例一切皆为对象,真实世界中的所有事物都可以视为对象面向对象的特性:抽象性:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。继承性:指子类拥有父类的全部特征和行为,这是类之间的一种关系。Java 只支持单继承。封装性:封装是将代码及其处理的数据绑定在一起的一种编程原创 2021-05-13 18:59:44 · 99 阅读 · 0 评论 -
Java 四种访问权限修饰符
访问修饰符 Java权限修饰符public、protected、 (缺省)、 private置于类的成员定义 前,用来限定对象对该类成员的访问权限。修饰符类内部同一个包不同包的子类同一个工程privateYes(缺省)YesYesprotectedYesYesYespublicYesYesYesYes对于class的权限修饰只可以用public和default(缺省)。public类可以在任意地方被访问。def原创 2021-05-13 18:32:52 · 183 阅读 · 0 评论 -
封装、继承、多态
封装 封装把一个对象的属性私有化,同时有选择的提供一些可以被外界访问的属性的方法,如果属性不想被外界访问,我们大可不必提供方法给外界访问。但是如果一个 类没有提供给外界访问的方法,那么这个类也没有什么意义了。继承 继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能(扩展性),也可以用父类的功能,但不能选择性地继承父类。通过使用继承我们能够非常方便地复用以前的代码。 关于继承如下 3 点请记住:子类拥有父类非 private 的属性和方法。子类可以拥原创 2021-05-13 18:17:17 · 82 阅读 · 0 评论 -
面向过程和面向对象的区别是什么?
面向过程(POP)和面向对象(OOP)的区别二者都是一种思想,面向对象是相对于面向过程而言的。面向过程,强调的是功能行为,以函数为最小单位,考虑怎么做。面向对象,将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。面向对象更加强调运用人类在日常的思维逻辑中采用的思想方法与原则,如 抽象、分类、继承、聚合、多态等。...原创 2021-05-13 17:29:40 · 1098 阅读 · 0 评论 -
Arrays工具类常用方法
Arrays工具类常用方法boolean equals(int[] a,int[] b) 判断两个数组是否相等。String toString(int[] a) 输出数组信息。void fill(int[] a,int val) 将指定值填充到整个数组之中。void sort(int[] a) 对数组进行排序。int binarySearch(int[] a,int key) 对排序后的数组进行二分法检索指定的值。-- int binarySearch(int[] a,int key)原创 2021-05-13 17:16:30 · 93 阅读 · 0 评论 -
Java数组的声明或初始化
数组的初始化Java中的数组必先初始化才可以使用,所谓初始化就是为数组的数组元素分配内存,并为每个数组元素赋值;一维数组的初始化静态初始化int[] arr = new int[]{1,2,3};int[] arr = {1,2,3};//简化写法//tip:前面的[]位置随意,后面的不能动。[]前后可随意加空格!int arr[] = new int[]{1,2,3};//int arr[] = new []int{1,2,3};//错误写法动态初始化int[] arr =原创 2021-05-13 16:54:00 · 284 阅读 · 0 评论 -
一题详解i++,++i原理
题目内容请写出如下代码的运算结果:public class Test { public static void main(String[] args) { int i = 1; i = i++; //i = 1 int j = i++;// i++ = 1 , j = 1 , i = 2 int k = i + ++i * i++;//i = 2 , ++ i = 3 , i++ = 3, k = 11原创 2021-04-22 17:08:40 · 265 阅读 · 0 评论 -
Java语言特点及其核心机制
Java语言特点及其核心机制语言特点面向对象三大特性:封装、继承、多态什么是面向对象?健壮性 吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与 释放等),提供了一个相对安全的内存管理和访问机制 。跨平台性 通过Java语言编写的应用程序在不同的系统平台上都可以运行。“Write once , Run Anywhere” 。 原理:只要在需要运行 java 应用程序的操作系统上,先安装一个Java虚拟机 (JVM Java Virtu原创 2021-05-13 16:09:09 · 276 阅读 · 0 评论 -
集合Collection——List
本文介绍集合中的List其实现方式及相关操作,List是一种支持角标操作的集合,我们可以在任意位置去访问元素。其常用的实现子类有ArrayList、LinkedList、Vector及其子类Stack。ArrayList...原创 2020-05-07 14:22:45 · 375 阅读 · 0 评论 -
Integer类——常用方法及应用举例
xxx原创 2020-04-17 10:04:48 · 10648 阅读 · 0 评论 -
StringBuilder类—常用方法及应用举例
StringBuilder类当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuil...原创 2020-04-09 13:40:24 · 1603 阅读 · 0 评论 -
接口
在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。在JDK7之前 接口中是不可以定义具体函数的在JDK8以后 接口中是可以定义具体函数的(必须是静态的函数 成员函数还是依旧默认抽象的)特点:接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要...原创 2020-03-25 19:38:20 · 159 阅读 · 0 评论 -
抽象类与接口及其区别(1.8)
抽象类顾名思义,抽象是指从具体事物抽出、概括出它们共同的方面、本质属性与关系等,而将个别的、非本质的方面、属性与关系舍弃的思维过程,在我们生活中很常见,比如,鸡鸭鱼狗,我们可以将其抽象成动物...原创 2020-03-23 10:37:13 · 524 阅读 · 1 评论 -
LeetCode数组(三)
面试题03.数组中重复的数字在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。思路:先将数组排序,遍历数组比较当前元素和后一个元素是否相等,相等则说明重复跳出循环直接返回当前元素值。class Solution { public in...原创 2020-03-21 17:04:10 · 250 阅读 · 0 评论 -
JavaSE继承
当我们在定义若干个类的时候,发现某一些类中具有相同的属性和行为,那么我们就可以将这些相同的部分进行抽取,独立生成另外一个类,那么这个生成出来的类我们称之为是父类,其他的被抽取内容的类称之为子类...原创 2020-03-20 13:51:01 · 158 阅读 · 0 评论 -
设计模式——单例模式
单例模式单例模式是Java中的一种最简单的设计模式,也就是一种编码技巧,是由广大Java的使用者总结出来的经验之谈!单例模式的使用场景是某一个类只能创建一个对象。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。1.因为只能创建...原创 2020-03-19 21:07:00 · 142 阅读 · 0 评论 -
static关键字
Static关键字:从刚接触Java开始我们的第一个程序用到主函数,里面有一个Static关键字,那么他究竟有什么作用用的通过这篇文章陈述一下。被static关键字修饰的方法一般被称为静态方法 没有被static关键字修饰的方法 一般称为非静态方法。同理 被static关键字修饰的成员变量 叫静态的成员变量 ,没有被static修饰的叫非静态成员变量。静态成员变量:如果我们需要...原创 2020-03-18 18:23:57 · 425 阅读 · 0 评论 -
成员变量与局部变量的区别
什么是成员变量?成员变量就是出现在类的成员位置的“变量”,也就是我们所说的类的属性。它在类的里面,而不在任何方法中。通常我们将其称为属性。什么是局部变量?局部变量也就是出现在类中的 成员方法内 局部位置或者是形参位置的变量,就叫做局部变量。通常我们将其直接称为变量。成员变量与局部变量的区别:1.在内存中的位置(存储位置)不同 局部变量的位置:在栈内存中函...原创 2020-03-13 15:29:48 · 209 阅读 · 0 评论 -
LeetCode数组(二)
1.给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/two-sum思路:暴力法:遍历数组用每个数逐个和target做减法,用得...原创 2020-03-13 15:28:44 · 176 阅读 · 0 评论 -
Java面向过程和面向对象的区别
面向过程与面向对象的区别从一个最通俗的角度出发来说,面向过程我们担任的是执行者的角色,而面向对象中我们是一个指挥者的角色。 面向过程 面向对象 区别 解决问题所需的所有方法都需要自己写, 并按照一定的步骤和顺序执行方法。 解决问题可以将其划分成多个类,各个类 都有自己的方法,即各司其职。我们只需 要创建对象,...原创 2020-03-13 15:29:17 · 400 阅读 · 0 评论 -
LeetCode数组(一)
1.设计一个算法,找出数组中最小的k个数,并从小到大排序后输出。思路:插入排序后新建数组存入前k个元素后返回。class Solution { public int[] smallestK(int[] arr, int k) { int j; for(int i=1;i<arr.length;i++){ int e...原创 2020-02-23 17:10:00 · 124 阅读 · 0 评论 -
Java数组习题
5.1(计算数字的出现次数)编写程序,读取在1到100之间的整数,然后计算每个数出现的次数。假定输人是以0结束的。下面是这个程序的一个运行示例:注意:如果一个数出现的次数大于一次,就在输出时使用复数“times“。本题有两种思路:1.使用动态数组扩容技术,边输入边存值import java.util.*;class Demo05_01{ public static ...原创 2020-02-18 18:27:03 · 1244 阅读 · 0 评论 -
选择排序、冒泡排序、插入排序、计数排序(Java实现)
Java中排序的应用很广泛,例如上条博客的二分查找,要求必须是一个有序序列才可以进行查找。所以排序很大程度上方便了我们进行查找操作,接下来一起来认识以下几种排序方式。 选择排序 选择排序是一种简单直观的排序。它的原理是:假设有一个数组arr[n],第一轮比较从arr[0]开始,当前元素arr[0]和后面的所有元素依次比较,如果当前元素arr[0]大于(小于)后面的元素则交换位...原创 2020-02-18 16:51:28 · 217 阅读 · 0 评论 -
Java数组(含查找)
数组的定义 通俗的说就是存储多个原创 2020-02-15 15:31:52 · 309 阅读 · 0 评论 -
Java函数习题总结
4.1(求一个整数各位数字之和)编写一个方法,计算一个整数各位数字之和。使用下面的方法头:pub1ic static int SumDigits (long n)例如:sumD1gits(234)返回9(2+3+4)。提示:使用求余操作符%提取数字,用除号/去掉提取出来的数字。例如:使用234%10(=4)抽取4。然后使用234/10(=23)从234中去掉4。使用一个循环来反复提取和去...原创 2020-02-15 14:10:09 · 1098 阅读 · 0 评论 -
Java函数
函数函数指的是定义在类中的具有特定功能的一段独立代码块。特点:定义函数可以将功能代码进行封装便于对该功能进行复用 函数只有被调用才会被执行 函数的出现提高了代码的复用性 对于函数没有具体返回值的情况,返回值类型用关键字void表示, 那么该函数中的return语句如果在最...原创 2020-02-15 13:38:14 · 314 阅读 · 0 评论 -
流程控制习题总结
3.1(代数:解一元二次方程)可以使用下面的公式求一元二次方程ax2+bx+c=0的两个根:import java.util.Scanner ;class Demo03_01{ public static void main (String[] args){ System.out.print("Enter a,b,c : ");//提示输入二元一次方程的两个系数和...原创 2020-02-11 17:06:01 · 639 阅读 · 0 评论 -
Java流程控制语句总结
我们知道任何语言程序执行是有一定顺序性的,所以我们使用控制语句来实现对程序流程的选择、循环、转向和返回等进行控制,特别是在循环语句中,它解决了重复算法浪费代码空间和代码整洁度的问题。同时语言是有结构层次之分的,所以我们来顺序结构顺序结构的程序设计是最简单的,只需按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。也是一种宏观条件下的代码结构。 ...原创 2020-02-11 14:57:03 · 786 阅读 · 0 评论 -
Java运算符总结
运算符在java中我们将运算符分为六个大类:算数运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、三目运算符算数运算符:加法运算(+):需要区分两个方面:1.如果+号的两边都是数字的话,那么这个+表示的数学上的加法 2.如果+号的两边,只有有一个字符串,那么这个+表示的是字符串连接符通过下面这段代码加以区分:class Test{ public static ...原创 2020-02-08 21:25:33 · 474 阅读 · 1 评论