- 博客(36)
- 收藏
- 关注
原创 Java - Arrays类
Arrays里面包含了一系列静态方法,用于管理或操作数组(比如排序和搜索)1) toString返回数组的字符串形式 Arrays.toString(arr)public static void main(String[] args) { Integer[] integers = {1,23,45}; System.out.println(Arrays.toString(integers)); }2) sort排序(自然排序和定制排序) ln...
2022-03-28 17:26:59 201
原创 Java - StringBuilder
基本介绍一个可变的字符序列。此类提供一个与 StringBuffer 兼容的API,但不保证同步(StringBuilder 不是线程安全)。该类被设计用作 StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快[后面测]。 在 StringBuilder上的主要操作是append和insert方法,可重载这些方法,以接受任意类型的数据。StringBuilder常用方法StringB
2022-03-28 15:46:51 368
原创 Java - StringBuffer
基本介绍java.lang.StringBuffer代表可变的字符序列,可以对字符串内容进行增删。 很多方法与String相同,但StringBuffer是可变长度的。 StringBuffer是一个容器。
2022-03-28 15:38:47 337
原创 Java - String
StringString对象用于保存字符串,也就是一组字符序列 字符串常量对象是用双引号括起的字符序列。例如:“你好"、“12.97"."boy"等 字符串的字符使用Unicode字符编码,一个字符(不区分字母还是汉字)占两个字节. String类较常用构造器(其它看手册);String s1 = new String0;/ String s2 = new String(String original); String s3 = new String(charla); String s
2022-03-28 14:39:57 95
原创 Java - 包装类
包装类的分类 Wrapper针对八种基本数据类型相应的引用类型——包装类 好处:有了类的特点,就可以调用类中的方法包装类和基本数据类型的转换(以int与Integer为例)jdk5前的手动装箱和拆箱方式,装箱:基本类型=》包装类型;拆箱反之 jdk5后的自动装箱和拆箱方式 自动装箱底层调用的是valueOf方法,比如Integer.valueOf()public class Integer01 { public static void main(Strin...
2022-03-24 16:35:54 665
原创 Java-异常
异常引出处理方法:try - catch基本概念Java语言中,将程序执行中发生的不正常情况成为“异常”。(开发过程中的语法错误和逻辑错误不是异常)执行过程中所发生的的异常事件可以分为两类Error(错误):Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。比如StackOverflowError【栈溢出】和OOM【out of memory】,Error是严重错误,程序会崩溃。 Exception:其他因编程错误或偶然的外在因素导致的一般性问题,可以
2022-03-21 21:41:15 479
原创 Java-注解
注解(annotation)也被称为元数据(Metadata),用于修饰解释包、类、方法、属性、构造器、局部变量等数据信息。 和注释一样。注解不影响程序逻辑,但注解可以被编译或运行,相当于嵌入在代码中的补充信息 在JavaSE中,注解的使用目的比较简单,例如标记过时的功能,忽略警告等。在JavaEE中注解占据了更重要的角色,例如用来配置应用程序的任何切面,代替JavaEE旧版中所遗留的冗余代码和XML配置等基本的Annotation介绍使用Annotation时要在其前面增加@符号,并把该Anno
2022-03-21 20:52:36 267
原创 Java - enum枚举
枚举的引出枚举(enumeration,简写enum) 枚举是一组常量的集合 枚举属于一种特殊的类,里面只包含一组有限的特定的对象 枚举对象一般采用全大写public class Enumeration01 { public static void main(String[] args) { Season spring = new Season("春天","温暖"); Season winter = new Season("冬天","寒冷");
2022-03-21 20:25:33 307
原创 Java-内部类详解
基本介绍一个类的内部又完整的嵌套了另一个类结构。被嵌套的类称为内部类(inner class),嵌套其他类的类称为外部类(outer class)。是我们类的第五大成员(属性,方法,构造器,代码块,内部类),内部类的最大特点就是可以直接访问私有属性,并且可以体现类与类之间的包含关系。基本语法class Outer{ //外部类 class Inner{ //内部类 }}class Other{ //外部其他类}内部类的分类定义在外部类局部位置上
2022-03-20 21:51:02 133
原创 Java - 实现接口VS继承类
接口和继承解决的问题不同继承的价值主要在于:解决代码的复用性和可维护性 接口的价值主要在于:设计,设计好各种规范(方法),让其他类去实现这些方法,即更加的灵活接口比继承更加灵活接口比继承更加灵活,继承是满足is-a的关系,接口只需要满足like-a的关系接口在一定程序上实现代码解耦合【接口规范性+动态绑定】...
2022-03-18 15:31:17 185
原创 Java-接口
基本介绍接口就是给出一些没有实现的方法,封装到一起,到某个类要使用的时候,再根据具体情况把这些方法写出来。语法:interface 接口名{//属性//方法(1.抽象方法 2.默认实现方法 defalut 3.静态方法)}class 类名 implements 接口{ 自己属性; 自己方法; 必须实现的接口的抽象方法;}在jdk7.0以前,接口里所有方法都没有方法体,全都是抽象方法 在jdk8后接口可以有静态方法
2022-03-18 14:54:19 91
原创 JAVA抽象类
抽象类的引出当父类的某些方法,需要生命,但是又不确定如何实现时,可以将其生命为抽象方法,那么这个类就是抽象类。抽象类的介绍用abstract 关键字修饰一个类时,这个类就叫抽象类 访问修饰符 abstract 类名{ } 用abstract 关键字修饰一个方法时,这个类就叫抽象方法 ...
2022-03-18 09:42:21 336
原创 JAVA中的final关键字
final 可以修饰类,属性,方法和局部变量在某些情况下,程序员可能有以下需求,就会使用到final:当不希望类被继承时 当不希望父类的某个方法被子类覆盖/重写时 当不希望类的某个属性的值被修改时 当不希望某个局部变量被修改时final使用细节final修饰的属性又叫常量,一般用 XX_XX_XX来命名 final修饰的属性在定义时必须赋值,并且以后不能再修改。赋值可以在如下位置之一 (1)定义时 (2)在构造器中 (3)在代码块中 如果final修饰...
2022-03-16 20:45:05 76
原创 java代码块
1.代码块定义代码块可以看做只有方法体的方法,是对构造器的一种补充机制 static代码块也叫静态代码块,作用就是 对类进行初始化,它随着类的加载而执行,并且只会执行一次。 普通代码块,每创建一个对象就被执行一次。2.类什么时候被加载创建对象实例时(new) 创建子类对象实例,父类也会被加载 使用类的静态成员时(静态属性,静态方法)3.创建一个对象时,在一个类中的调用顺序是调用静态代码块和静态属性初始化(静态代码块和静态属性初始化调用的优先级一样,如果有多个静态代码块和多个静态变
2022-03-14 20:28:19 383
原创 使用IDEA进行java断点调试
介绍:断点调试是指在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,然后你可以一步一步往下调试,调试过程中可以看到各个变量当前的值,出错的话,调试到错误的代码行即显示错误,停下。进而分析找到这个bug。 断点调试能帮助查看java底层源代码的执行过程,提高水平。快捷键F7 (跳入) F8 (跳过) shift + F8 (跳出) F9 (resume,执行到下一个断点) F7跳入方法内 F8 逐行执行代码 shift + F8 跳出方法...
2022-03-13 11:48:23 755
原创 toString方法
默认返回:全类名+@+哈希值的十六进制,子类往往重写toString方法,用于返回对象的属性信息重写toString方法,打印对象或拼接对象时,都会自动调用该对象的toString形式 当直接输出一个对象时,toString方法会被默认的调用重写toString方法用于输出对象的属性IDEA快捷键alt+insert -> toString当直接输出一个对象时,toString方法会被默认的调用,比如 System.out.println(monster);
2022-03-13 10:57:17 430
原创 java中equals与==的对比
==是一个1.==:既可以判断基本类型,又可以判断引用类型2.==:如果判断基本类型,判断的是 值是否相等3.==:如果判断引用类型,判断的是 地址是否相等,即判定是不是同一个对象equals方法4.equals:是Obeject类中的方法,只能判断引用类型5.默认判断的是地址是否相等,子类中往往重写该方法,用于判断内容是否相等。比如Integer,String...
2022-03-12 21:57:56 68
原创 JAVA中的动态绑定机制
1.当调用对象方法的时候,该方法会和该对象的内存地址/运行类型绑定2.当调用对象属性的时候,没有动态绑定机制,哪里声明哪里使用
2022-03-12 20:57:36 204
原创 面向对象编程-多态
多态基本介绍方法或者对象有着多种形态。是面向对象的第三大特征,多态是建立在封装和集成基础上的。多态具体体现1.方法的多态重写与重载就体现多态2.对象的多态(重点)(1)一个对象的编译类型与运行类型可以不一致(2)编译类型在定义对象时,就确定了,不能改变(3)运行类型是可以变化的(4)编译类型看定义时 = 号的左边,运行类型看 = 的右边...
2022-03-07 21:55:10 237
原创 JAVA中的方法重写/覆盖(override)
简单地说,方法覆盖就是子类有一个方法,和父类的某个方法的名称,返回类型,参数一样,那么我们就说子类的这个方法覆盖了父类的那个方法
2022-03-07 21:08:01 649
原创 java中super关键字
super代表父类的引用,用于访问父类的属性、方法、构造器基本语法:1.访问父类的属性,但不能访问父类的private属性 super.属性名;2.访问父类的方法不能访问父类的private方法 super.方法名(参数列表);3.访问父类的构造器(这点前面用过): super(参数列表);只能放在构造器的第一句,只能出现一句!...
2022-03-07 20:38:28 256
原创 面向对象编程-继承
1.子类继承了所有的属性和方法,非私有的属性和方法可以直接访问,但是私有属性不能在子类直接访问,要通过父类提供的公共方法去访问。2.子类必须调用父类的构造器,完成父类的初始化3.当创建子类对象时,不管使用子类的哪个构造器,默认情况下总会去调用父类的无参构造器,如果父类没有提供无参构造器,则必须在子类的构造器中用super去指定使用父类的哪个构造器完成对父类的初始化工作,否则,编译不会通过。4.如果希望制定去调用父类的某个构造器,则显示的调用一下:super(参数列表)5.
2022-03-02 14:23:41 513
原创 JAVA常用包
1.java.lang.*基本包,默认引入,不需要再显式引入2.java.util.*系统提供的工具包,工具类,(例:Scanner)3.java.net*网络包,网络开发4.java.awt.*做java的界面开发,GUI
2022-02-28 20:39:11 188
原创 IDEA常用快捷键
1.删除当前行Ctrl + Y2.复制当前行Ctrl + D3.补全代码Alt + /4.添加注释和取消注Ctrl + / (第一次注释,第二次取消)5.快速格式化代码Ctrl + Alt + L6.快速运行代码Shift + F107.快速生成构造方法Alt + insert8.查看一个类的层级关系Ctrl + H9.把光标放在一个方法上,Ctrl + B , 可以选择定位到哪个类的方法10.自动分配变量名 在后边输入 .var...
2022-02-28 19:35:52 112
原创 DOS命令
DOS:Disk Operating System 磁盘操作系统常用的dos命令:1.查看当前目录有什么 : dir '例:dir d:\abc\tset2.切换到其他盘下 :盘符号cd例: 切换到C盘 cd /D C:3.切换到当前盘的其他目录下例: cd d:\abc\tset4.切换到上一级:cd ..5.切换到根目录cd \...
2022-02-25 16:16:59 265
原创 JAVA注释格式
1.单行注释 ////这是一行java注释2.多行注释 /* 注释 *//*这是一行java注释这是一行java注释这是一行java注释*/注意:多行注释中不允许嵌套多行注释3.文档注释文档注释:注释内容可以被JDK提供的工具javadoc所解析,生成一套以网页文件形式体现的该程序的说明文档,一般写在类。/*** @author xttx* @version 1.0*/javadoc -d 文件夹名 -author-versionzhu..
2022-02-25 15:59:13 507
原创 JAVA转义字符
1. \t :一个制表位,实现对齐的功能2. \n :换行符3. \\ :一个\4. \" :一个"5. \' :一个'6. \r : 一个回车
2022-02-25 15:30:05 226
原创 HashMap常用方法
Hashmap的存值:1 public static void main(String[] args) {2 ///*Integer*/map.put("1", 1);//向map中添加值(返回这个key以前的值,如果没有返回null)3 HashMap<String, Integer> map=new HashMap<>();4 System.out.println(map.put("1", 1));//null.
2021-11-01 21:00:24 402
转载 Leetcode34.在排序数组中查找元素的第一个和最后一个位置
# 思路寻找target在数组里的左右边界,有如下三种情况:情况一:target 在数组范围的右边或者左边,例如数组{3, 4, 5},target为2或者数组{3, 4, 5},target为6,此时应该返回{-1, -1} 情况二:target 在数组范围中,且数组中不存在target,例如数组{3,6,7},target为5,此时应该返回{-1, -1} 情况三:target 在数组范围中,且数组中存在target,例如数组{3,6,7},target为6,此时应该返回{1, 1}这三种
2021-11-01 10:12:27 245
原创 二分查找中的区间边界条件问题
二分查找涉及的很多的边界条件,逻辑比较简单,但就是写不好。例如到底是while(left < right)还是while(left <= right),到底是right = middle呢,还是要right = middle - 1呢?写二分法,区间的定义一般为两种,左闭右闭即[left, right],或者左闭右开即[left, right)。一、左闭右闭 target在[left, right]区间,所以有如下两点:while (left <= rig...
2021-10-31 20:14:03 729
原创 为什么二分法算法中最好写int mid = left + (right-left)/2;
在经典二分查找法算法题中, 需要取数组中间元素的位置,那么第一反应不难写出int mid = (left + right) / 2; 但是这么写其实会有⼀个问题,就是可能会发生数值越界,left+right很有可能会超出int的范围。 最好写int mid = left + (right-left)/2;这样可以很大程度上避免数组越界的问题。...
2021-10-31 19:49:27 1332
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人