- 博客(42)
- 收藏
- 关注
原创 密码学概论课后题手写+JAVA代码复现
这次一共五条题目感觉都还蛮有意思的一.求最大公约数(1790,1066)1.1手写答案1.2代码实现/** * @author Dionysus_xu * @create 2022-03-17-18:02 */public class s { public static void main(String[] args) { s s1 = new s(); int max = s1.getMax(1790, 1066); S
2022-03-17 21:23:31 1251
原创 Java学习:集合(1):集合的概念和Collection接口中的方法
一.集合的概念package javaa.study.collections;/** * 集合、数组都是对多个对象进行存储的结构,简称Java容器 * 这里的容器存储指的是内存层面的存储,不涉及到持久层的存储 * * 数组的特点: * 1.一旦初始化完成,长度就确定且不可改了 * 2.数据一旦定义好,元素的类型就确定,只能存放指定类型的数据 * 比如String[]只能放String,int[]只能放int(可以利用多态性存储Object[]类型) * 3.数组提供的方法
2022-03-13 16:25:19 856
原创 Java学习:枚举类
目录前言:一.枚举类定义及举例二.枚举类父类Enum类的几个常用方法测试三.枚举类实现接口的两种方式前言:又是失眠,我发现我可真是个大冤种,永远都忘不掉你一.枚举类定义及举例/** * 枚举类 * 一般是类的对象是有限个的,确定的 * 例如:性别:男女 * 星期:1-7 * 季节:春夏秋冬 * 当需要定义①一组②常量时,强烈建议使用枚举类 * @author Dionysus_xu * @create 2022-03-09-14.
2022-03-09 15:00:51 248
原创 Java学习:String类的算法题+发呆两小时
目录前言:第一题:模拟一个trim方法,去除字符串两端的空格。第二题:将一个字符串进行反转。将字符串中指定部分进行反转。比如“abcdefg”反转为”abfedcg”第三题:获取一个字符串在另一个字符串中出现的次数。比如:获取“ ab”在 “abkkcadkabkebfkabkskab” 中出现的次数第四题:获取两个字符串中最大相同子串。比如:str1 = "abcwerthelloyuiodef“;str2 = "cvhellobnm"提示:将短的那个串进.
2022-03-04 19:02:29 661
原创 Java学习:String类常用方法
前言希望自己多多开朗一些一.常用方法package com.java.StringLearn;/** * int length():返回字符串的长度: return value.length * char charAt(int index): 返回某索引处的字符return value[index] * boolean isEmpty():判断是否是空字符串:return value.length == 0 * String toLowerCase():使用默认语言
2022-03-02 18:24:39 114
原创 Java学习:JDK5.0以后的线程创建方式
5.0以前的创建方式有两种①通过继承Thread类实现②通过实现Runnable接口实现具体参考我写的上一章:Java学习:JDK5前的两种创建线程方式_Dionysus_xu的博客-CSDN博客5.0以后又添加了两种方式1.通过实现callable接口实现具体代码如下:import java.util.concurrent.Callable;import java.util.concurrent.FutureTask;/** * 创建多线程的方式3:实现calla
2022-03-01 21:22:42 268
原创 Java学习:实际应用场景中的多线程没有start()解决方法
今天在做多线程练习的时候,参考资料给的是使用extends继承Thread类的方式创建的子类对象,天然带有start()方法题目如下:/*** 生产者-消费者问题* 生产者最多生产20个产品,生产完就得等待* 交由服务员来调度生产者和消费者* 消费者没有能消费产品的时候,等待**/但是我本人是使用的implments runnable接口的方式来创建子类的多线程的。这一试不要紧,试完了发现BBQ了,在实际场景中,由于生产者和消费者虽然都实现了runnable接口,但是我在调用过程中,
2022-03-01 19:49:06 679
原创 Java学习:两种方法解决线程安全问题
截止JDK5.0为止,实现多线程一共有两种方法①用继承extends Thread类的方式实现多线程②用实现implement Runnable接口的方式实现多线程一.同步代码块方式1.1 同步代码块解决①的线程安全问题/** * 线程安全解决方法1:同步代码块 * 用于用继承extends方法实现多线程的子类解决同步问题 * 在用继承extends Thread类实现多线程的时候,可以使用当前类.class来充当锁 * @author Dionysus_xu * @crea
2022-02-28 15:14:08 3446
原创 Java:线程的生命周期
/** * Thread类的生命周期 * 记录在Thread类中的status中 * Thread有五种状态 * |--新建 * new Thread() * 刚创建Thread时,为新建状态 * |--就绪 * 调用start() * 线程Thread本身已准备好被执行,等待cpu分配 * |--运行 * cpu执行start() * cpu正式执行线程Thread * |--运行->就绪:失去cpu支.
2022-02-27 14:21:57 243
原创 Java学习:JDK5前的两种创建线程方式
以三个窗口收票为例,具体代码比较两种方式f1:继承Thread类/** * @author Dionysus_xu * @create 2022-02-27-13:16 */public class SoldOut { public static void main(String[] args) { Windows w1 = new Windows(); Windows w2 = new Windows(); Windows w3 =
2022-02-27 14:03:39 113
原创 Java学习:线程Thread常用方法
以下方法来源于官方JDK的API(1.8)下图为Thread的所有方法体一.完整方法表二.比较重要的有:2.1.start()方法用于启动一个新的线程,并执行它的run()方法。需要注意的事,一个子类实例只能执行一次start()方法2.2.run()方法即Thread子类对象的具体方法体,一般由start()调用2.3.getName()方法获取当前线程的线程名2.4.setName()方法设置当前线程的线程名2.5.yield()方法.
2022-02-26 22:41:48 335 1
原创 Java:IDEA与多线程
多线程实现方法1:继承Thread类步骤:①继承Thread类②重写run()方法③创建继承类的对象④通过继承类对象实现start()方法举例:/** * 创建多线程方式1:继承Thread类 * 1.创建一个继承Thread类的子类 * 2.重写Thread类的run()方法 * 3.创建子类的对象 * 4.通过子类调用start()方法 * @author Dionysus_xu * @create 2022-02-25-12:46 */public
2022-02-25 13:08:59 299
原创 Java简单项目:公司人员管理系统
简单开个坑初步完成Model设计和部分Controller设计,手有点冷,脑子有点蒙,明天再补剩下的1.1.父类Employeepackage project3.domain;public class Employee { private int id; private String name; private int age; private double salary; public Employee(int id, String name, int age, doubl
2022-02-16 14:55:44 948
原创 Java寒假学习Day21:异常处理
1.异常处理的定义package ExceptionTest;/* * 一.异常类型: * 1.空指针异常 * 2.文件不存在 * 3.网络连接问题 * 4.角标越界 * * 二.异常也是一种对象 * 1.它的顶级父类是throwable(可扔出的) * 2.错误有两大类 * 一种是JVM无法处理的问题,这里也不需要我们处理 * 称为 Error * 一种是需要我们抛出和可以处理的,称为异常Exception * 3.异常分为编译时异常(编译过程中出问题),
2022-02-14 17:16:10 233
原创 Java寒假学习Day20:接口(2):代理模式
1.代理模式1.1什么是代理模式?具体示范?代理模式指的是,以实现同一接口规范的两个类A,类B举例,类A并不需要实现不是一定要类A实现的功能,而交由类B去替类A实现那些功能,只有在涉及到类A需要去自己解决的问题时,才调用类A的重写的一种方法,这种模式可以实现对类A的保护和隐藏。同时类B也可以加一些自己独有的操作。具体示范:(以明星和经纪人为例)1.1.1.接口(演艺圈)package ProxyTest;public interface Star { void talk();
2022-02-13 15:56:15 276
原创 Java寒假学习Day20:接口(1)
1.什么是接口?为什么需要接口?1.1 接口是一种规范,一种标准,是“能不能做”,体现的近似于现实生活中的“你要xxx就必须要实现xxx(接口)”。1.2Java是单继承的,一个子类只能有一个直接父类,但是我们在实际操作中,有时也会有需要一个类具有多个类的某些特征,因此设置了接口(interface)来实现类似这一操作。即一个子类只能继承一个直接父类,但是可以实现多个接口。2.接口定义的注意事项?①JDK1.7及以前,接口只能定义全局常量(public static final )和抽.
2022-02-13 15:00:21 269
原创 Java寒假学习Day20:抽象类及其实验
前言:嘿嘿,昨天下午和高中的几个hxd一起吃吃饭玩玩剧本杀,好开心ps:古木吟这个剧本杀剧本真好玩。玩之前:我们都是很聪明的玩家,虽然是第一次玩玩之后:240分钟的古木吟我们玩了300多分钟,我是fw~(自豪)1.什么是抽象概念?抽象概念的意义?抽象就是在设计中,由于子类对象对父类对象是全包含的,所以我们希望父类中含有通用的方法和属性供子类对象使用和重写,而我们只需要根据不同的功能去new不同的子类对象即可,而不用再去new父类对象,让父类对象专心做模板,所以我们引入了抽象概念,即父类提
2022-02-13 13:21:17 312
原创 Java寒假学习Day18:单例模式及其实现的两种方法
1.什么是单例模式?实现的思路?2.具体实现2.1饿汉式实现/* * * 单例模式1:饿汉式 */public class Singleton1 { public static void main(String[] args) { Test1 t1 = Test1.getTest1(); Test1 t2 = Test1.getTest1(); System.out.println(t1 == t2); }}class Test1{ //1.私.
2022-02-10 13:12:23 341
原创 Java寒假学习Day17:重写Object类中的方法与包装类的使用
前言:总算缓过来了前几天一直忙着各种各样的走亲戚永远认不全谁是我的哪个长辈 TuT随着后面学习内容的加深,更新的话也会少一些,毕竟写blog也就是自己给自己加约束,让自己能自律一些,目前来看自律是够的~1.Object类中的方法重写主要需要重写的方法有两个1.1equals方法1.1.1 equals方法和 == 运算符的比较① 对于 == 运算符== 既可以比较基本数据类型,也可以比较引用数据类型== 在比较基本数据类型时,比较基本数据类型的值是否相同==
2022-02-08 15:37:35 206
原创 Java寒假学习Day16:多态性(2)
1. 什么是多态性?/* * 面向对象特征之三:多态性 * * 1.理解多态性:可以理解为一个事物的多种形态。 * 2.何为多态性: * 对象的多态性:父类的引用指向子类的对象(或子类的对象赋给父类的引用) * * 3. 多态的使用:虚拟方法调用 * 有了对象的多态性以后,我们在编译期,只能调用父类中声明的方法,但在运行期,我们实际执行的是子类重写父类的方法。 * 总结:编译,看左边;运行,看右边。 * * 4.多态性的使用前提: ① 类的继承关系
2022-01-29 15:54:05 617
原创 Java寒假学习Day16:多态性(1)
1.什么是多态性?个人对多态性的理解:多态性依赖于继承性,在定义了父类及其子类后例如父类Animal(其中有eat()和shout()方法)子类Dog,Cat(重写了eat()和shout()方法)那么我就可以用子类的实例实现对父类的赋值即:Animal animal = new Dog();Animal animal = new Cat();2.多态性的特点在1中,我们把Dog Cat实例赋给了animal那么我们能调用的animal的函...
2022-01-29 14:20:23 1228
原创 Java寒假学习Day15:方法的重写(Override)
1.什么是方法的重写?在子类中可以根据需要对从父类中继承来的方法进行改造,也称为方法的重置、覆盖。在程序执行时,子类的方法将覆盖父类的方法。2.方法重写的要求?①. 子类重写的方法必须和父类被重写的方法具有相同的方法名称、参数列表 ②. 子类重写的方法的返回值类型不能大于父类被重写的方法的返回值类型 ③. 子类重写的方法使用的访问权限不能小于父类被重写的方法的访问权限 子类不能重写父类中声明为private权限的方法 ④. 子类方法抛出的异常不能大于父类被重写方..
2022-01-28 16:32:47 121
原创 Java寒假学习Day13:继承
前言前几天一直在琢磨实验2,基本算是整明白+自己过了两遍,还不错1.类与类之间的关系1.1依赖关系对象之间最弱的一种关联方式,是临时性的关联。代码中一般指由局部变量、函数参数、返回值建立的对于其他对象的调用关系。public class Student { String name;//Stirng类类型的name public void print(String name) { System.out.println(name); }}类Student中引用了St
2022-01-26 16:24:31 371
原创 Java简单项目:用户管理系统
目录简介:项目结构图:效果展示:代码实现:简介:简单的Java项目,实现记录用户的个人信息,并提供增删改查的功能项目结构图:效果展示:1.增加用户2.修改用户信息3.删除用户4.查找所有用户代码实现:1.CustomerUtils工具类package projectUtils;import java.util.*;/**CMUtility工具类:将不同的功能封装为方法,就是可以直接通过调用...
2022-01-23 16:32:21 1618
原创 Eclipse使用技巧:如何实现代码提示功能
1.打开Eclipse2.点击Windows——>Preferences3.点击Java——>Editor4.点击Editor——>Content Assist5.修改Auto activation triggers for Java把 “.”修改成“abcdefghijklmnopqrstuvwxyz.”这样就成功啦6.测试提示功能开启成功...
2022-01-23 15:38:34 972
原创 Java寒假学习Day10:Eclipse中的快捷键
前言:学,都能学重要的都标红了import java.sql.Date;import java.util.ArrayList;import java.util.HashMap;/** Eclipse中的快捷键:* 1.补全代码的声明:alt + /* 2.快速修复: ctrl + 1 * 3.批量导包:ctrl + shift + o* 4.使用单行注释:ctrl + /* 5.使用多行注释: ctrl + shift + / * 6.取消多行注释:ctr...
2022-01-23 15:27:17 137
原创 Java寒假学习Day9:this关键字和import,package关键词
1.this关键字package JavaStudy.PackageTest;/* * this关键字的使用: * 1.this可以用来修饰、调用:属性、方法、构造器 * * 2.this修饰属性和方法: * this理解为:当前对象 或 当前正在创建的对象 * * 2.1 在类的方法中,我们可以使用"this.属性"或"this.方法"的方式,调用当前对象属性或方法。但是, * 通常情况下,我们都选择省略"this."。特殊情况下,如果方法的形参和类的属性同名时,
2022-01-22 18:01:33 97
原创 Java寒假学习Day9:构造器&赋值顺序
1.构造器package JavaStudy.PackageTest;/* * 类的结构之三:构造器(或构造方法、constructor)的使用 * construct:建设、建造。 construction:CCB constructor:建设者 * * 一、构造器的作用: * 1.创建对象 * 2.初始化对象的信息 * * 二、说明: * 1.如果没有显式的定义类的构造器的话,则系统默认提供一个空参的构造器 * 2.定义构造器的格式:权限修饰符 类名(形参列表.
2022-01-22 15:35:49 237
原创 Java寒假学习Day9:封装和隐藏
前言:刚复习完递归,看了斐波那契数列,我和她的所有故事,都藏着f5和f8这两个无言的数字里。package Methods;public class FbnqTest { public static void main(String[] args) { FbnqTest test = new FbnqTest(); System.out.println("about her"); System.out.print(test.getFbnqLine(5)); System.ou
2022-01-22 14:59:53 330
原创 Java寒假学习Day8:Java中的方法
1.方法的重载具体案例:package Methods;/* * 方法重写Overload */public class MethodOverload { public void say() { String xu = "XJJ"; String wang = "WYJ"; System.out.println(xu+"对"+wang+"说:你是俺滴大哥"); } public void say(String xu) { String wang = "WYJ";.
2022-01-20 16:01:19 428
原创 Java寒假学习Day6:方法练习题
1.package OOP1Test;public class PersonTest { public static void main(String[] args) { Person p1 = new Person(); p1.showAge(); p1.addAge(2); Person p2 = new Person(); p2.showAge(); } }class Person{ String name; int age = 0; int
2022-01-19 16:44:34 209 1
原创 Java寒假学习Day6:面向对象(1)
1.什么是面向对象程序员从面向过程的执行者转化成了面向对象的指挥者1.1面向对象分析方法分析问题的思路和步骤: ① 根据问题需要,选择问题所针对的现实世界中的实体 ②从实体中寻找解决问题相关的属性和功能,这些属性和功能就形成了概念世界中的类 ③把抽象的实体用计算机语言进行描述,形成计算机世界中类的定义。即借助某种程序语言,把类构造成计算机能够识别和处理的数据结构 ④将类实例化成计算机世界中的对象。对象是计算机世界中解决问题的最终工具2.面...
2022-01-19 15:44:17 206
原创 Java寒假学习Day5:Arrays工具类
写在前面:下面要接触面向对象了,今天还差一点数组的收尾工作(高强度学了好久,已经有点傻乎乎了,这些先记下来,明天起来再看看)。1.排序算法横向对比2.Arrays工具类妈耶 写不下去了 明天看吧 要死了...
2022-01-18 17:35:26 214
原创 Java寒假学习Day5:数组常见算法
数组常见算法有以下几种:1.数组元素的赋值(杨辉三角、回形数等)1.1创建一个长度为6的int型数组,要求取值为1-30,同时元素值各不相同package Array;public class ArraySF_Random { public static void main(String[] args) { // 方式一:// int[] arr = new int[6];// for (int i = 0; i < arr.length; i++) ...
2022-01-18 17:23:53 648
原创 Java寒假学习Day5:二维数组简单习题
1.总和问题public class TwoArrayEx { public static void main(String[] args) { int[][] arr = new int[][] { { 3, 5, 8 }, { 12, 9 }, { 7, 0, 6, 4 } }; int sum=0; for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[i].length; j++) {
2022-01-18 14:25:27 773
原创 Java寒假学习Day5:Eclipse与多维数组
多维数组基本用得到的也就二维数组(大概)二维数组的理解:可以理解成一维数组arr作为数组arr1的数组元素,那这个arr1就是二维数组①二维数组的声明和初始化②如何调用数组的指定位置的元素③如何获取数组的长度④如何遍历数组⑤数组元素的默认初始化值⑥数组的内存解析package Array;/* * 二维数组test * * ①二维数组的声明和初始化 * ②如何调用数组的指定位置的元素 * ③如何获取数组的长度 * ④如何遍历数组 * ⑤数组元素的默认...
2022-01-18 13:29:16 130
原创 Java寒假学习Day4:Eclipse与一维数组
前言:前两天出去玩没带电脑,一直没写,回来发现重新下载一个Eclipse以后,Java版本居然从1.8变成15.0了,虽然可能是我神奇操作的原因,不过还是很有趣。解决方案:重写一下环境变量的JAVAHOME就可以了,把它改成jdk存放的路径即可。目录前言:1.数组1.1数组(Array)应用简介1.2数组的概念及组成1.3数组的特点1.4数组的分类1.5Eclipse中的数组练习1.5.1一维数组的使用1.5.4一维数组课后练习1.数组1.1数组(A.
2022-01-17 19:07:45 437
原创 Java简单项目:家庭记账系统
参照了B站的Java学习视频,简单写了个家庭记账系统的Java小项目。一共俩文件,一个是用户操作界面Class:FamilyAccount一个是工具类:Utilty使用的IDE工具:EclispeJDK:java-1.8.131话不多说,上代码FamilyAccountpackage familyaccount;public class FamilyAccount { public static void main(String[] args) { Stri
2022-01-14 16:00:37 333
原创 Java:利用Scanner函数实现获取键盘输入的各种类型值
总体步骤分为三步第一步:导入java.util.Scanner包第二步:实例化Scanner对象第三步:使用Scanner对象具体函数实现键盘输入举个例子吧用Java代码实现输入用户的各种类型信息import java.util.Scanner;//第一步,导入Scanner包public class ScannerTest { public static void main(String[] args) { Scanner scan=new Scanner(System.
2022-01-14 15:06:51 1467
原创 Java寒假学习Day1:Java基本语法
1.变量和控制符1.1关键字和保留符 特点:被java使用并赋予了特殊的含义,要求使用者不能以这些字符串作为命名等用途,全部为小写1.1.1关键字:keywords1.1.2保留字(reserved words)定义:现在的Java版本尚未使用作为关键字,但是以后的版本可能会使用其作为关键字。e.g.:goto,const....目录1.变量和控制符1.1关键字和保留符1.1.1关键字:keywords1.1.2保留字(reserved words)..
2022-01-13 18:58:46 158
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人