
Java学习
文章平均质量分 52
从无到有
ahyo
这个作者很懒,什么都没留下…
展开
-
Java learn UML图
UML——Unified Module Language(统一建模语言)描述类的属性,方法,以及类和类之间的关系发现这种建模语言的重要性 其在于建立对象于现实的联系 图能够更好的理解 当然,是建立在你知道其中表示的意思...原创 2021-09-15 20:57:22 · 68 阅读 · 0 评论 -
Java learn 字符串随机生成及排序(难点题)
写在之前:依照 之前c的学习 一样的有数字排序 及其字符串排序相同的 字符串这方面的问题一向都挺难的。其相应的题述很简单 就是随机生成字符串 之后再用随机生成的几个字符串排序。代码示例:package le;public class digital{ public static String suiji(int m) { char [] s=new char [5]; String str=""; for(short i='0';i<='9';i++) { str+=(ch原创 2021-09-07 23:30:27 · 287 阅读 · 0 评论 -
java learn 数字与字符串((my)StringBuffer)
StringBuffer:——StringBuffer是可变长的字符串StringBuffer 同String 一样也是类 StringBuffer类里也有相应的方法 可供使用(以下关键字):append追加delete 删除insert 插入reverse 反转示例:StringBuffer sb=new StringBuffer(str);调用StringBuffer里的方法 也得实例化对象 这里有点像之前的拆箱装箱的书写格式。细节:delete 这个关键字 其中sb.dele原创 2021-09-03 17:12:58 · 217 阅读 · 0 评论 -
java learn 日期
Date类注意:是java.util.Date;(声明)而非 java.sql.Date,此类是给数据库访问的时候使用的只要是类 其调用方法格式都是一致的时间原点概念:所有的数据类型,无论是整数,布尔,浮点数还是字符串,最后都需要以数字的形式表现出来。日期类型也不例外,换句话说,一个日期,比如2020年10月1日,在计算机里,会用一个数字来代替。那么最特殊的一个数字,就是零. 零这个数字,就代表Java中的时间原点,其对应的日期是1970年1月1日 8点0分0秒 。 (为什么是8点,因为中国的原创 2021-09-01 19:02:01 · 112 阅读 · 2 评论 -
Java learn 数字与字符串(操纵/比较/字符串)
操纵字符串 :1、获取字符——charAt(int index)获取指定位置的字符index 是字符串元素的序号 指定序号获取指定的元素2、获取对应的字符数组——toCharArray()与之前那个不一样在于 一个是单字符 一个是数组且String 里的toCharArray() 方法 是将整个字符串内容赋值给定义好的字符数组 方法本就没有参数。检验就用==来测字符数组和原字符串长度是否一样。拓展:Character.toString(); 这个是转换成字符串的。3、截取子字符串(相比操纵字原创 2021-08-31 21:01:28 · 435 阅读 · 0 评论 -
java learn数字与字符串(字符(串))
写在之前:目前对于Java字符这方面的学习 倒不是很难去弄懂 但是相应的练习题确实有点问题字符:保存一个字符的时候使用char只能是一个字符 不管中文还是英文字母char对应的封装类:同理 拆箱 装箱 char c1 = 'a'; Character c = c1; //自动装箱 c1 = c;//自动拆箱关于封装类Character常见方法:对于——\ 斜杠就是输出的先决条件\t \n \把字符串转换为字符数组String str = "ab原创 2021-08-30 16:58:45 · 101 阅读 · 0 评论 -
java learn数字与字符串(数学方法(质数个数) 格式化输出)
数学方法:java.lang.Math提供了一些常用的数学运算方法,并且都是以静态方法的形式存在一般在调用其中的方法时 写法往往是 Math. 之后会弹出方法建立在方法记得住的前提下:可这样写:和import Java.util.Scanner; 不一样涉及 四舍五入, 随机数,开方,次方,π,自然常数 这些数学常用知识。以上图中举例为常用其中round E PI 之前没见过寻找一千万中的质数个数问题:质数概念: 只能被1和自己整除的数图中的sqrt是建立在有import s原创 2021-08-29 19:49:29 · 154 阅读 · 0 评论 -
Java learn 数字与字符串(装箱 拆箱 字符串转换)
装箱 拆箱:封装类所有的基本类型,都有对应的类类型比如int对应的类是Integer这种类就叫做封装类其一般转化过程:Number类数字封装类有Byte,Short,Integer,Long,Float,Double这些类都是抽象类Number的子类对应的基本类型是 byte short int long float double以下 可以判断是否转换成功自动装箱 拆箱 (快捷)10 11 行就是不需要调用构造方法,通过=符号自动把 基本类型 转换为 类类型 就叫装箱13 1原创 2021-08-28 22:49:37 · 110 阅读 · 0 评论 -
Java learn 接口与继承完结部分 final
对于 Java初级选手的学习 接口和继承这一基础部分学完了 但是还有相应练习 及拓展——uml图重大部分(之前的对象转型也是)final抽象类 内部类默认方法final 修饰符:final修饰类,方法,基本类型变量,引用的时候分别有不同的意思。1、当类被修饰成final的时候,表示该类不能够被继承其子类会出现编译错误2、当类的方法被修饰成final,那么该方法在子类中,不能够被重写3、final修饰基本类型变量,表示该变量只有一次赋值机会这在之前是学习过的。 作用类似于限定符4、f原创 2021-08-27 19:10:25 · 97 阅读 · 0 评论 -
Java learn 接口与继承 (super object)
写在之前 :相对于之前的Java 学习速度慢了许多 之前的内容不断累积 导致在学新东西的时候会用到之前的 由于忘记之后 就衔接不上所以断了一天回顾之前的。super 关键字的使用 及其作用:这里的应用讲解就会提到之前的学习内容也就是——子类在继承了父类之后 实例化一个对象, 其构造方法总会被调用其父类的构造方法也会被调用(也就是两个构造方法)并且是父类构造方法先调用子类构造方法会默认调用父类的 无参的构造方法当父类同时有无参构造方法和有参构造方法:使用关键字super 显式调用父类带参的原创 2021-08-26 18:18:44 · 386 阅读 · 0 评论 -
Java learn 隐藏
隐藏:与重写类似,方法的重写:是子类覆盖父类的对象方法隐藏,就是子类覆盖父类的类方法父类有一个类方法 子类隐藏也就是 子类继承父类 对其类方法进行内容更改 类名.类方法名(); 就可以进行引用了隐藏——这部分内容 相对于之前的内容较为简单和方法重写并无差别...原创 2021-08-23 23:55:53 · 91 阅读 · 0 评论 -
java learn接口和继承 (方法重写 多态)
方法重写具体定义:子类可以继承父类的对象方法在继承后,重复提供该方法,就叫做方法的重写又叫覆盖 override、方法重写的意义及作用:如果没有重写这样的机制,也就是说子类,一旦继承了父类,所有方法都不能修改了。但是子类又希望提供一点不同的功能,为了达到这个目的,只能放弃继承父类,重新编写所有的属性和方法,然后在编写那个方法的时候,做一点小改动.这样就增加了开发时间和维护成本,显然这个作用就在于能降低时间成本。之后在子类继承改写了方法之后 在父类中实例化对象进行引用会打印子类改写的 前提是子原创 2021-08-22 15:43:40 · 241 阅读 · 0 评论 -
Java learn接口与继承 (接口 对象转型)
接口:接口就像是一种约定,我们约定某些子类只能实现某种功能 这时就需要用到相应的接口。创建接口:创建一个接口 File->New->Interface有相应的名称 以及对应的方法 来实现其约定的内容——功能。实现某个接口,就相当于承诺了某种约定,在接口中会有相应方法 可以为空方法。实现 在语法上使用关键字 implementspublic class xxx implements (接口名称){}且在花括号里面应该调用相应接口的方法。一个对象可同时拥有多个接口 同理也得引用相原创 2021-08-21 13:07:06 · 227 阅读 · 0 评论 -
Java learn类和对象(单例模式)
单例模式针对在项目开发的时候 有些类是唯一的 仅仅只能实例化一次 不可以多次创建新对象 就可使用单例模式。官方解释:单例模式又叫做 Singleton模式,指的是一个类,在一个JVM里,只有一个实例存在。1、饿汉式单例模式Try(类名) 提供了一个public static的getInstance方法,外部调用者通过该方法获取12行定义的对象,而且每一次都是获取同一个对象。 从而达到单例的目的。这种单例模式又叫做饿汉式单例模式,无论如何都会创建一个实例为什么要构造法私有化:因为两个类在同一个原创 2021-08-20 18:18:09 · 242 阅读 · 0 评论 -
Java learn 属性的初始化
对象属性初始化对象属性初始化有3种声明该属性的时候初始化构造方法中初始化初始化块类属性初始化类属性初始化有2种4. 声明该属性的时候初始化5. 静态初始化块执行顺序:(静态变量、静态初始化块)>(变量、初始化块)>构造器声明时初始化 先于 块初始化,构造方法时初始化总是在最后调用。以后在项目中测试代码的运行顺序可以用以下的方法:package test;public class Hero{ public String name=wwww("声明变量");原创 2021-08-19 22:02:43 · 112 阅读 · 0 评论 -
java learn 访问修饰符 类属性 类方法
访问修饰符:访问修饰符 有 private public protecte package/friendly/default一般不写package/friendly/default 比如String name;以上的访问修饰符 作用和其中文意思相近。类之间的关系:自身:也就是类自身同包子类:一个类的子类 处于同一个包之下不同包子类:同上 只是不处于一个包同包类:两个不同类处于一个包中 有着继承关系其他类:不在同一个包 也没有继承关系这样的区分 是为之后做项目 更好的进行区分 同时也会合理原创 2021-08-18 17:40:03 · 183 阅读 · 0 评论 -
Java learn依旧 ——类和对象
传参:变量有两种类型 基本类型 和类类型参数也是变量,所以传参分为基本类型传参类类型传参1、基本类型传参方法内的变量不可以修改方法外的变量(记住这句话)因为在一些代码未运行进行预测的时候 逻辑上你会认为是对的 但是运行出来和预期结果不一样。具体示例:public class Hero { String name; //姓名 float hp; //血量 float armor; //护甲原创 2021-08-17 23:06:35 · 89 阅读 · 0 评论 -
Java learn 类和对象 部分
构造方法:构造方法就是方法名和类名一样(包括大小写)没有返回类型**注意:**实例化一个对象的时候,必然调用构造方法public Hero() { System.out.println("实例化一个对象的时候,必然调用构造方法"); } public static void main(String[] args) { //实例化一个对象的时候,必然调用构造方法 Hero h = new Hero(); }以上代码原创 2021-08-16 16:55:15 · 92 阅读 · 0 评论 -
Java learn 核心 继承 及方法重载
类的继承:首先,在建立的一个类中不能重复写public class 在类的继承时需要另新建一个类 也就是出现类的嵌套会编译报错的第一次我码关于类的继承就出现了 在一个类中 写了一个其他的类来继承本类 结果一时半会都没发现错误。。。。。明白之后 其实最需要记忆的就是以下的Java语句:public class 1 extends 2其特别之处就在于 extends1 这个类可以继承 2 这个类的所有属性 及其他。方法的重载:方法的重载指的是方法名一样,但是参数类型不一样也就是一个方法可以写原创 2021-08-15 22:29:20 · 102 阅读 · 0 评论 -
Java learn 类和对象 (引用)
new Hero();代表创建了一个Hero对象但是也仅仅是创建了一个对象,没有办法访问它为了访问这个对象,会使用引用来代表这个对象和平时说的引用方法有所不同Hero h = new Hero();h这个变量是Hero类型,又叫做引用=的意思指的h这个引用代表右侧创建的对象“代表” 在面向对象里,又叫做“指向”当然也可以多个引用,一个对象。引用有多个,但是对象只有一个。在这个例子里,所有引用都指向了同一个对象。 //使用一个引用来指向这个对象原创 2021-08-14 23:31:50 · 106 阅读 · 0 评论 -
Java learn 数组最终部分——Arrays
写在之前:首先,Arrays是针对数组的工具类,可以进行 排序,查找,复制填充等功能。 大大提高了开发人员的工作效率。整一个类所涉及的关键字:copyOfRange 数组复制toString() 转换为字符串sort 排序binarySearch 搜索equals 判断是否相同fill 填充数组复制:原创 2021-08-12 11:33:38 · 148 阅读 · 0 评论 -
Java learn 数组简易部分
复制数组:在之前的C语言学习中对于复制数组会常用到for循环一个个赋值或者对于字符数组会他调用string.h头文件里的函数进行复制。在Java 中也有for循环进行复制,但相对之下不简便。以下:首先:数组的长度是不可变的,一旦分配好空间,是多长,就多长,不能增加也不能减少相对简便的方法:把一个数组的值,复制到另一个数组中System.arraycopy(src, srcPos, dest, destPos, length)解释:src: 源数组srcPos: 从源数组复制数据的起始原创 2021-08-11 11:39:58 · 97 阅读 · 0 评论 -
Java learn 数组排序
此次的数组排序其实算法和之前的C语言一摸一样复习一遍:对于排序,只有冒泡排序是记得最牢的,有时候选择法知道其意义但是码出来还是有点露洞。选择法排序选择法排序的思路:把第一位和其他所有的进行比较,只要比第一位小的,就换到第一个位置来比较完后,第一位就是最小的然后再从第二位和剩余的其他所有进行比较,只要比第二位小,就换到第二个位置来比较完后,第二位就是第二小的以此类推 for (int j = 0; j < a.length-1; j++) { for (int原创 2021-08-10 11:44:56 · 125 阅读 · 0 评论 -
Java learn 数组部分(一)
数组是一个固定长度的,包含了相同类型数据的 容器int[] a; 声明了一个数组变量。[]表示该变量是一个数组int 表示数组里的每一个元素都是一个整数a 是变量名但是,仅仅是这一句声明,不会创建数组有时候也会写成int a[]; 没有任何区别,但我个人更倾向int[] a; 因为后面会对其创建引用格式相照应——a=new int[];创建数组的时候,要指明数组的长度。new int[5]引用概念:如果变量代表一个数组,比如a,我们把a叫做引用与基本类型不同int c = 5;原创 2021-08-09 11:40:34 · 106 阅读 · 0 评论 -
Java learn控制流程(最终)
continue继续下一次循环continue常配合if条件语句出现某种情况继续进入下一次循环,本次循环中在这continue语句之后的语句不会运行,好处在于可以避开某些实现代码期望的功能。代码示例public class HelloWorld { public static void main(String[] args) { //打印单数 for (int j = 0; j < 10; j++) {原创 2021-08-04 11:36:00 · 95 阅读 · 0 评论 -
Java learn控制流程 if 、switch、 while 、do while、for循环语句
写在之前接触Java这方面的语法学习,在有C语言的基础上更易于理解学习。相对上手比较快条件判断语句:写法格式与C语言相近不做赘述…值得注意的是:(也是之前学c应该注意的问题)在第6行,if后面有一个分号; 而分号也是一个完整的表达式如果b为true,会执行这个分号,然后打印yes如果b为false,不会执行这个分号,然后打印yes这样,看上去无论如何都会打印yespublic class HelloWorld { public static void main(String[] a原创 2021-08-03 11:30:00 · 100 阅读 · 0 评论 -
Java learn 操作符学习部分完结
逻辑操作符和C语言类似都为 与 或 非。但Java中有长路和短路长路与 和 短路与长路:&短路:&&无论长路与还是短路与两边的运算单元都是布尔值都为真时,才为真任意为假,就为假区别长路与 两侧,都会被运算短路与 只要第一个是false,第二个就不进行运算了长路或 和 短路或长路:|短路:||无论长路或还是短路或两边的运算单元都是布尔值都为假时,才为假任意为真,就为真区别长路或 两侧都会被运算短路或 只要第一个是true的,第二个就不进行运算原创 2021-08-01 22:42:02 · 473 阅读 · 1 评论 -
Java 一般操作符
算数操作符基本的有:± * / %自增 自减++ –注意如果有任何运算单元的长度超过int,那么运算结果就按照最长的长度计算比如int a = 5;long b = 6;a+b -> 结果类型是long注意:如果任何运算单元的长度都不超过int,那么运算结果就按照int来计算byte a = 1;byte b= 2;a+b -> int 类型% 取余数,又叫取模5除以2,余1(和C语言相近)。自增自减的特殊处也和C语言相近:以++为例int i = 5;原创 2021-07-30 11:33:27 · 89 阅读 · 0 评论 -
Java:操作符Scanner
使用Scanner类,需要在最前面加上一种类似C语言中的头文件的一行代码,声明吧。import java.util.Scanner;之后可在终端处进行输入,可视为scanf的运用。Scanner s = new Scanner(System.in); int a = s.nextInt(); System.out.println("第一个整数:"+a); int b = s.nextInt(); System.out.println("原创 2021-07-29 11:30:16 · 168 阅读 · 0 评论 -
Java 变量最终部分
final 修饰一个变量,有很多种说法,比如不能改变等等准确的描述是 当一个变量被final修饰的时候,该变量只有一次赋值的机会代码示例:public class HelloWorld { public void method1() { final int i = 5; i = 10; //i在第4行已经被赋值过了,所以这里会出现编译错误 }}如果在声明的时候未赋值,那么可以在后面代码进行唯一的一次赋值final 的用法和C语言的const类型限定符用法相近。final 除原创 2021-07-28 11:31:32 · 111 阅读 · 0 评论 -
Java continue——
针对以下代码的疑问:short a= 128; byte d= (byte)a; System.out.println(d);其输出结果为d=-128;解释:a=128 二进制为100000008位byte类型二进制的范围bai为-128到du127,因为首位为符号位,所以正数到127-01111111,就到头了,所以正数最大为127;-128的二进制位128的补码10000000,因为“正数128的二进制为10000000”,这是关键点,有人会想“正数128的二进制为10000000”这原创 2021-07-27 11:35:05 · 131 阅读 · 0 评论 -
Java learn note(变量系列)
写在之前:创建一个Hero对象会用到new关键字,但是给一个基本类型变量赋值却不是用new. 因为基本类型是Java语言里的一种内置的特殊数据类型,并不是某个类的对象。给基本类型的变量赋值的方式叫做 字面值正文:当以l或者L结尾的时候,一个整数字面值是long类型,否则就是int类型。 建议使用大写的L而非小写的l,因为容易和1混淆。byte,short,int和long的值都可以通过int类型的字面值来创建。整数的字面值可以用如下四种进制来表示:十进制: 基 10, 包含从0-9的数字,平常用原创 2021-07-26 11:36:00 · 88 阅读 · 0 评论 -
java learn note(变量)
变量的定义是: 用来命名一个数据的标识符int 是数据类型,表示是整数year 是一个标识符= 是赋值操作符1949 是一个数字类型的值; 表示该行结束这八种基本类型分别是:整型 (4种)字符型 (1种)浮点型 (2种)布尔型(1种)其中布尔型需要特别注意,在打印的时候写成这样是会编译错误的:public class Hero{ public static void main(String[] aaa) { float s=3.14f; double a=2.769343原创 2021-07-25 16:16:07 · 83 阅读 · 0 评论 -
Java learn Note:面向对象方法
面向对象方法学过C语言会第一时间反映出Java的面向对象方法有点像子函。有的方法是有返回类型的(子函也有的)比如方法:float getArmor(){ return armor;} Java的调用方法和C语言的结构体格式一样。有的方法不需要返回值,这个时候就把返回类型设置为void,表示该方法不返回任何值:void chujv(){ System.out.println("你出局了");}有参数 float类型参数 speed表示本次添加的移速,无返回类型void add原创 2021-07-24 11:35:56 · 136 阅读 · 0 评论 -
Java learn note(two)
关于找不到命名之后的类的解决方案:现象:有时候分明有自定义的类,并且也有主方法,可是运行就会出现找不到或者无法加载类(自定义名称),或者Class Not Found 异常。以下比如是Hello这个类原因1、(注意判断是否自动勾选了)Eclipse是保存后自动编译,但是建立在一个设置的前提上:菜单-Project->勾选Build Automatically,如果这里没有勾选,那么是不会自动把Hello.java编译成Hello.class的。原因2、菜单->Window->原创 2021-07-22 10:36:08 · 106 阅读 · 0 评论 -
Java初学笔记
第一步:了解Java语言的发展史Java语言的实际作用第二步:需运用到MS—DOS,在Java学习中熟练使用会有帮助。但其作用集成到Windows中的cmd开发Java程序使用它非常方便。也就是类似于快捷键,在Java之前学习C语言就曾了解过(当时都建议先学c在Java python学习之前)。cmd启动后默认打开C盘(也可之后做操作转换打开其他磁盘),且在操作时要写对命令才能够运行得出相应结果。所以一些必要的命令得记忆。以此:命令格式启动: win+R(打开cmd)切换盘符 盘符原创 2021-05-04 14:57:34 · 109 阅读 · 0 评论 -
第一次成功在vsCode配置Java环境
写在之前;以下叙述内容主要来自一位博主ID为: 丛继晔 的博客主要内容:VSCode 中下载 JDK下载 JAVA 插件扩展方式二: 在vscode中下载以下插件List itemLanguage Support for Java™ by Red HatDebugger for JavaJava Test RunnerMaven for JavaProject Manager for Java那篇博客的没把顺序清楚,之后应该在运行时会提醒安装Java extension的扩原创 2021-05-10 23:17:29 · 750 阅读 · 0 评论 -
java的输入输出部分,及文件操作
Scanner输入 println输出System.out.printlnSystem.out.Scanner+此符号用于连接两个字符串,例如"2+3"此类的计算欲使输出=5;则:括号内(“2+3”+5);或(2+3+“2+3”);java 相对于c来说确实部分相似易理解,但头文件不像c的以下的头文件#include<stdio.h>int main(){return 0;}总以public开头这对于初学者来说确实有棘手之处。应该是我Java还没学多少。仅个人原创 2021-05-14 21:08:25 · 181 阅读 · 0 评论 -
Java learn note(one)
因为java 是面向对象的编程语言,所以我们实际上是在创建一个个的类,起初的程序运行利用的是cmd,创建的类是手动新建的文件夹。class HelloWorld 表示这个类的名字是HelloWorldpublic static void main(String[] args) 这是主方法,所有代码的入口学过c语言 ,就相当于 _main 程序入口System.out.println(“hello world”); 表示在控制台(黑屏幕)输出一个字符串“hello world”在默认情况下,cons原创 2021-07-17 11:26:33 · 111 阅读 · 2 评论 -
Java初学的部分疑问
1、为什么Java中的string[]首字母一定要大写呢因为String 是一个类 而例如:int只是一个变量类型 你观察一下哦 所有的类型都是小写 但是系统的类都有大写 这是命名规则详细阐述:java中类、常量的命名需要大写,但java里并没有强制规定必须大写,也就是小写并不会报错,只是一种约定的规则。如下扩展java的命名规范:1.包的命名 (全部小写,由域名定义)java包的名字都是由小写单词组成。但是由于java面向对象编程的特性,每一名java程序员都 可以编写属于自己的java包,原创 2021-07-18 12:32:11 · 536 阅读 · 0 评论