
java
文章平均质量分 57
青龙悟空
goooooooooooooooooooo
展开
-
HashMap put,get操作
hashmap数据结构。数据结构中有数组和链表来实现对数据的存储,但是这两种方式的优点和缺点都很明显:1,数组存储,它的存储区间是连续的,比较占内存,故空间复杂度高。但是利用二分法进行查找的话,效率高,时间复杂度为O(1)。其特点就是:存储区间连续,查找速度快,但是占内存严重,插入和删除就慢。2,链表查询,它的存储区间离散,占内存比较宽松,故空间复杂度低,但时间复杂度高,为O(n)。其特点就是存储空间离散,空间复杂度低,插入和删除方便,但是时间复杂度高,导致查询比较慢。综合以上两者的特点,就产生原创 2021-02-21 12:00:16 · 420 阅读 · 0 评论 -
java中的indexOf()方法
介绍一下indexOf()的两种用法和实现功能:1、 indexOf(String str): 返回指定字符str在字符串中(方法调用者)第一次出现处的起始索引,如果此字符串中没有这样的字符,则返回 -1。2、indexOf(String str, int index): 返回从 index 位置开始查找指定字符str在字符串中第一次出现处的起始索引,如果此字符串中没有这样的字符,则返回 -1。举例说明:String str = "01234567890123456789";System.原创 2021-02-09 10:32:27 · 32584 阅读 · 1 评论 -
Java String类 常用方法
String类:String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象。String类对象创建后不能修改,StringBuffer & StringBuilder 类。这时我们会问,为什么我们String变量赋值不就是改变了吗?其实不是的,赋值后将会生成新的对像来存放新的内容,原先的对象依旧在内存中,但是s不在指向它,那么这个对象就会成为垃圾内存,在某一个特定的时刻有Java虚拟机回收。详情解释请点击 包含在一对双引号之间。Strin...原创 2021-02-09 10:26:19 · 280 阅读 · 0 评论 -
toString和String.valueOf的比较
这两个方法的源码Object中toString方法:String中valueOf方法:当传入参数为byte,short,int,long,float,double,boolean,char(8种基本数据类型)时可以调用String.valueOf()方法转化为String。传入参数为byte,short时会自动转成int。针对传入参数为Object类型,比较如下:1.相同点Object中有public方法toString,因此任何一个对象都能调用toSring valueOf的参数是O原创 2021-02-09 10:07:04 · 512 阅读 · 0 评论 -
JAVA中对字符串的常见处理函数汇总
字符串看到字符串,想到字符串处理中,有字符串的反转,初级面试中常用到字符串分割成字符串组,初级面试中常用到字符串中的替换,初级面试中常用到字符串中的截取,初级面试中常用到反转reverse,java 中字符串没有reverse这个方法,Python中有,如果未有编程语言限制,可以直接用python语言str.reverse()实现;那用Java呢,也很简单,就是将所有字符倒序;有时候,面试要求将所有的方法都写下来Java中String没有reverse方法,StringB原创 2021-02-09 09:48:06 · 329 阅读 · 1 评论 -
Java传参-基本数据类型和引用数据类型作为参数的区别(值传递)
java中的方法可以传递参数,参数的传递方法就是值传递。参数有形参和实参,定义方法时写的参数叫形参,真正调用方法时,传递的参数叫实参。调用方法时,会把实参传递给形参,方法内部其实是在使用形参。所谓值传递就是当参数是基本类型时,传递参数的值,比如传递i=10,真实传参时,把10赋值给了形参。当参数是对象时,传递的是对象的值,也就是对象的首地址。就是把对象的地址赋值给形参。基本类型当做方法的形参时当引用类型当做参数的形参时基本数据类型和引用数据类型作为参数的区别基本数据类型原创 2021-02-09 00:08:15 · 960 阅读 · 0 评论 -
java final修饰的变量作用
之前一直以为final修饰的变量不能改变,这个理解是有问题的。首先final修饰的基本变量是不可变的,但是final修饰的对象要看以下情况:先定义一个自定义对象 @Data public class FinalUser { private String name; public FinalUser(String name) { this.name = name; } } 然后在别的对象里引用一下,加上fina...原创 2021-02-09 00:06:10 · 446 阅读 · 0 评论 -
java中的匿名内部类总结
java匿名内部类什么是匿名内部类? 匿名内部类的使用场景? 匿名内部类如何创建? 匿名内部类的实现和使用 例1(实现接口) 例2(继承类) 什么是匿名内部类?匿名内部类,顾名思义,就是不知道这个类到底是什么名字,也就是不知道类名。匿名内部类的使用场景?匿名内部类适合创建那种只需要使用一次的类,也就是说创建一个匿名内部类,只需要用一次即可。匿名内部类如何创建?new 类名(参数) | 实现接口(){// 匿名内部类的类体部分}从上面的定义可以看出,.原创 2021-02-07 18:29:17 · 150 阅读 · 0 评论 -
Java函数的参数是新建一个对象,这个怎么理解
packagecom.collection.set;importjava.util.*;classM{intage;publicM(intage){this.age=age;}publicStringtoString(){return"M[age:"+age+"]";}}publicclassTreeSet_order_test{publicst...原创 2021-02-07 18:26:32 · 516 阅读 · 1 评论 -
String类的substring方法 出界异常
String类的substring方法下列程序的输出是什么?class A { public static void main(String[] a) { String v = “base”; v.concat(“ball”); v.substring(1,5); System.out.println(v); }}分析:由于String是不可变的,当执行v.concat("ball")时,v本身还是指向“base”,当再执行v.substring(1,5...原创 2021-02-07 18:11:21 · 471 阅读 · 0 评论 -
java 方法参数
形参和实参我们知道,在Java中定义方法时,是可以定义参数的,比如:public static void main(String[] args){ }这里的args就是一个字符串数组类型的参数。在程序设计语言中,参数有形式参数和实际参数之分,先来看下它们的定义:形式参数:是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数,简称“形参”。实际参数:在主调函数中调用一个函数时,函数名后面括号中的参数称为“实际参数”,简称“实参”。举个栗子:原创 2021-02-07 17:48:40 · 1122 阅读 · 1 评论 -
StringUtils.isEmpty用法
StringUtils 方法的操作对象是Java.lang.String 类型的对象,是 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 null 则不会抛出 NullPointerException ,而是做了相应处理,例如,如果输入为 null 则返回也是 null 等,具体可以查看源代码)。除了构造器,StringUtils 中一共有130多个方法,并且都是 static 的,所以我们可以这样调用 StringUtils.xxx().原创 2021-02-07 17:47:44 · 699 阅读 · 0 评论 -
Java中static关键字的作用与用法
一、static关键字的特点:static是一个修饰符,用于修饰类的成员方法、类的成员变量,另外可以编写static代码块来优化程序性能。1. static修饰成员方法 static修饰的方法一般称作静态方法,由于静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说,是没有this的,因为它不依附于任何对象,既然都没有对象,就谈不上this了。并且由于这个特性,在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都必须依赖具体的对象才能够被调用。...原创 2021-02-07 15:02:12 · 11079 阅读 · 3 评论 -
scala和java的区别
Scala的特性:scala和java的区别1.变量的声明2.函数的声明3.数据类型4.数组5.未完待续Scala的特性:再讲Scala与java的区别之前我们先了解一下Scala有六大特性:java和scala可以无缝混编(都是基于JVM) 类型推测(不必指定类型,自动推测类型) 支持并发和分布式(Actor) 特质:trait(集结了java中抽象类和接口的产物) 模式匹配(match case :类似于java中的switch case) 高阶函数(参数时原创 2021-02-06 23:28:11 · 647 阅读 · 0 评论 -
JAVA_JDK下载与安装教程(小白)
jdk下载与安装教程(小白)第一步:jdk下载(1)oracle官网地址下载:点我进官网下载(2)百度云连接下载(提供8u211版本):链接:https://pan.baidu.com/s/1i74YGO8zXuGxumZYGakKKw提取码:fkep第二步:安装jdk(设置三个变量【JAVA_HOME变量,CLASS_PATH变量,path变量】)1.下载好的jdk如上图所示:打开后安装到自己想要的盘符(分为jdk和jre两次安装,下图为本人安装路径)2.安装好后打需.原创 2021-02-03 23:37:21 · 1267 阅读 · 2 评论 -
Java写一个单例类
- 饿汉式单例类名,方法名可以变public class Singleton { private Singleton(){}上来生成一个对象,必须加static 静态 否则类无法直接调方法,因为他是一个成员代码块 private static Singleton instance = new Singleton(); public static Singleton getInstance(){ return instance; }}懒汉式单例p...原创 2021-02-03 23:12:15 · 275 阅读 · 2 评论 -
java中break和continue的用法
break和continue的用法**break的用法:1.break用于switch语句中,终止switch语句2.break用于循环时,跳出循环3.break用于其他位置,毫无意义1. break用于switch语句中,终止switch语句 int a=4; switch(a){ case 1: System.out.println("星期一"); case 2:原创 2021-02-01 23:33:02 · 783 阅读 · 0 评论 -
Java 复合赋值运算符“+=、-=、*=、/=、%=”
复合赋值是指先执行运算符指定的运算,然后再将运算结果存储到运算符左边操作数指定的变量中。下表列出了“+=、-=、*=、/=、%=”复合赋值运算符的描述及例子。复合赋值运算符同简单赋值运算符一样,也是双目运算符,需要两个操作数。不同的是,复合赋值运算符要先执行运算符自身要求的运算后,再将运算后的结果赋值给左边的操作数指定的变量。复合赋值运算符“+=”,表示的意思是先将运算符左边操作数指向的变量值和右边的操作数执行相加操作,然后再将相加的结果赋值给左边的操作数指向的变量。例如下面语句:int a原创 2021-02-01 23:12:32 · 3132 阅读 · 0 评论 -
两个栈实现队列(经典面试题
问题描述:用两个栈实现队列的基本方法,比如向队尾添加元素(offer)、获取队头元素(peek)、获取并删除队头元素(poll)。解决思路:栈是先进后出的结构。比如1、2、3顺序进栈,出栈顺序是3、2、1。如果3、2、1顺序进栈,然后依次出栈的顺序就是1、2、3。可以发现把一个栈中的元素依次出栈并存放到另一个栈中,那么出栈的顺序就是队列的顺序。这里注意一定要把一个栈中元素全部存放到另一个栈中才可以。只要保证数据存放时存放在一个栈中,每次获取数据都从这个栈中把数据导入另一个栈,就可以保证数据按照先入先出的原创 2020-12-30 14:26:10 · 88 阅读 · 0 评论 -
java基础中Arrays.toString()方法
在学完数组以后,如果想要把数组中的内容打印出来,直接调用toString()方法只会打印出数组的地址,因此需要使用Arrays的toString()方法。//代码截图如下:通过源码我们可以看出Arrays的toString()方法是一个重载的方法。方法里的参数可以是8种基本数据类型及String类型的数组。...原创 2020-12-30 11:23:57 · 14771 阅读 · 1 评论 -
懒汉式和饿汉式
单例设计模式饿汉式:一个类只能创建一个对象私有化构造器 在类的内部创建一个类的实例,且为static 私有化对象,通过公共方法调用 此公共方法只能通过类来调用,因为设置的是static,同时类的实例也是static饿汉先创建好: package bank; public class TestSingleton { public static void main (String[] args){ Singleton s1 = Singleto原创 2020-12-28 11:24:05 · 123 阅读 · 0 评论 -
Scala 单例模式
单例模式单例模式是指:保证在整个的软件系统中,某个类只能存在一个对象实例单例模式的应用案例Scala中没有静态的概念,所以为了实现Java中单例模式的功能,可以直接采用类对象(即伴生对象)方式构建单例对象懒汉式案例:创建一个实例前要先判断是否为空,若为空则创建,不为空则直接返回懒汉式案例:创建一个实例前要先判断是否为空,若为空则创建,不为空则直接返回...原创 2020-12-28 11:07:15 · 267 阅读 · 0 评论 -
Java 变量 形参和实参
举例1. 比如你定义一个函数public static int add(int a,int b),这里的a和b就是形参。2. 当你进行函数调用的时候,add(1,2),这里的1和2就是实参。3. 简单来说就是进行函数调用的时候需要实参从主函数中传给被调用函数中的形参,这样函数才可以执行,实参和形参起到一个桥梁的作用。/*-- 例子 --*/ public class Test { public static void main(String[] args) { Integ.原创 2020-12-28 10:52:56 · 430 阅读 · 0 评论 -
Java增强for循环
for(声明语句 : 表达式){//代码句子}声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。表达式:表达式是要访问的数组名,或者是返回值为数组的方法。1、 for循环的一种,简化了数组和集合的遍历,可以用来替代迭代器2、 格式: a) for(元素数据类型 变量:数组或者Collection集合){使用变量即可} b) 实例在下面3、 弊端 a) 增强for的目标不能是null b) 解决:对增强for原创 2020-12-28 10:39:24 · 179 阅读 · 0 评论 -
Java中的可变参数
可变参数:本质就是动态 创建的数组修饰符 返回值类型 方法名(数据类型…变量名){ // 可变参数,形参列表可以接受0个值, 方法体也可以接//受n个值}ex:public static int getSum(int … arr){}注意:(没有为什么,java语法规范)① 可变参数本质就是一个数组,ar...原创 2020-12-28 10:35:29 · 134 阅读 · 0 评论 -
2020-12-25
1.集合和数组的区别:2.Collection集合的方法:3.常用集合的分类:Collection接口的接口 对象的集合(单列集合)├——-List接口:元素按进入先后有序保存,可重复│—————-├LinkedList接口实现类, 链表, 插入删除, 没有同步, 线程不安全│—————-├ArrayList接口实现类, 数组, 随机访问, 没有同步, 线程不安全│—————-└Vector接口实现类 数组, 同步, 线程安全│ ———————-└Stack...转载 2020-12-25 09:51:51 · 78 阅读 · 0 评论 -
Java 比较器
Java的比较器java.lang.Comparable接口Comparable接口是一个给排序方法使用的接口, 这是一个自比较器接口。用于指定一个对象如何去比较大小。Comparable接口中的方法int compareTo(T obj) 比较当前对象与传入进来对象的大小参数:obj 表示要比较的对象返回值: *如果当前的对象大于obj,返回正整数。 *如果当前的对象等于obj,返回0 *如果当前对象小于obj,返回负整这是Java的一种约定,转载 2020-12-24 17:56:21 · 151 阅读 · 1 评论 -
Java 集合框架
从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射。Collection 接口又有 3 种子类型,List、Set 和 Queue,再下面是一些抽象类,最后是具体实现类,常用的有ArrayList、LinkedList、HashSet、LinkedHashSet、HashMap、LinkedHashMap 等等。集合框架是一个用来代表和操纵集合的统一架构。所有的集合框架都包含如下内容:...原创 2020-12-24 17:46:07 · 71 阅读 · 2 评论 -
如何使用迭代器
通常情况下,你会希望遍历一个集合中的元素。例如,显示集合中的每个元素。一般遍历数组都是采用for循环或者增强for,这两个方法也可以用在集合框架,但是还有一种方法是采用迭代器遍历集合框架,它是一个对象,实现了Iterator接口或 ListIterator接口。迭代器,使你能够通过循环来得到或删除集合的元素。ListIterator 继承了 Iterator,以允许双向遍历列表和修改元素。序号 迭代器方法描述 1 使用 Java Iterator 这里通过实例列出 Ite.原创 2020-12-24 17:45:19 · 325 阅读 · 1 评论 -
JAVA集合Map集合HashMap hashTable HashSet
HashMap和Hashtable的区别1.共同点:都是双列集合,底层都是哈希算法2.区别:* 1.HashMap是线程不安全的,效率高,JDK1.2版本* Hashtable是线程安全的,效率低,JDK1.0版本* 2.HashMap可以存储null键和null值* Hashtable不可以存储null键和null值Map是映射键值的对象。map不能包含重复键:每个键最多只能映射一个值。它模拟了数学函数的抽象。Map接口包括基本操作的方法(如put、get、remove、contai原创 2020-12-24 17:26:47 · 201 阅读 · 1 评论 -
一文学会Java 成员变量,局部变量,静态变量 ,全局变量
成员变量:定义类其实就是在定义类中的成员(成员变量和成员函数)成员变量: ①成员变量定义在类中,在整个类中都可以被访问。 ②成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中。 ③成员变量有默认初始化值。 局部变量: ①局部变量只定义在局部范围内,如:函数内,语句内等,只在所属的区域有效。 ②局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放。...原创 2020-12-23 15:05:04 · 252 阅读 · 0 评论 -
Java 静态变量,静态方法,静态常量(java static 关键字)
Java 静态变量,静态方法,静态常量 就是变量 ,方法,常量前面添加了static 关键字为什么要使用静态的呢有时候在处理问题时会需要两个类在同一个内存区域共享一个数据, 不如现在 Main 类中用到一个 NAME常量而 有一个Book类中也用到了NAME常量,这时就没有必要在2个类中都创建NAME常量了 为了解决这个问题 我们可以把这个NAME常量设置为static一句话来描述就是: 方便在没有创建对象的情况下来进行调用(方法/变量)。很显然,被static关键字修饰...原创 2020-12-22 11:03:43 · 670 阅读 · 0 评论 -
java中Iterator和Iterable的区别
Iterator和Iterable都是接口。好多集合类,比如List一族或者Set一族,都实现了Iterable接口,这样对象就可以调用iterator()方法package hodling;import java.util.Iterator;import static utils.Print.print;public class IterableClass implements Iterable<String> { private String[] strings = ...原创 2020-12-20 23:22:19 · 574 阅读 · 1 评论 -
Scala基本数据类型,对比Java版
Scala基本类型和Java对比,就是开头Scala要大写,Java小写整数类型(Byte、Short、Int、Long)Scala的整数类型就是用于存放整数值的,比如12,30,3456等等。浮点类型(Float、Double)Scala的浮点类型可以表示一个小数,比如123.4f,7.8,0.12等等。字符类型(Char)1)基本说明字符类型可以表示单个字符,字符类型是Char。2)案例实操(1)字符常量是用单引号 ' ' 括起来的单个字符。(2)\t :一个制表位,实现.原创 2020-12-18 10:08:38 · 581 阅读 · 1 评论 -
数据输入Scanner
数据输入Scanner 基本步骤 a.创建对象 Scanner sc=new Scanner(System.in); b.接收数据 int x=sc.nextInt(); c.输出数据 System.out.println(“x:”+x); 代码示列 //创建对象 Scanner sc=new Scanner(System.in); //System.out.print("请输入数据x:"); // //接收数据 //int x=sc.nextInt();原创 2020-12-18 00:19:49 · 211 阅读 · 0 评论 -
一文学会java运算符
目录标识符命名四则运算字符运算字符串的运算赋值运算符自增自减运算符关系运算符逻辑运算符和短路运算符三元运算符标识符命名由数字,字母,下划线,美元符组成 不能以数字开头 不能是关键字 尽量使用有意义的英文单词,区分大小写 小驼峰命名法:(方法,变量)一个单词的时候,首字母小写,多个单词的时候,第一个单词首字母小写,后面的单词首字母大写。 大驼峰命名法:(类)所有单词的首字母大写 a. 包名全部小写 b. 类名和接口名使用大驼峰命名法 c.常量名所以字原创 2020-12-18 00:18:16 · 100 阅读 · 0 评论 -
Java数据类型
基本数据类型基本类型表示简单的数据,基本类型分为4大类,共8种数据类型。整数类型:byte、short、int和long 浮点类型:float和double 字符类型:char 布尔类型:boolean 整型类型 Java中整数类型包括:byte、short、int和long ,它们之间的区别仅仅是宽度和范围的不 同。 Java语言的整型类型默认是int类型,例如16表示为int类型常量,而不是short或byte,更不是long,long 类型需要在数值后面加l(小...原创 2020-12-18 00:00:02 · 272 阅读 · 0 评论