
JavaSE
JavaSE
acDream_
这个作者很懒,什么都没留下…
展开
-
Maven
Maven我为什么要学习这个技术? 在Javaweb开发中,需要使用大量的jar包,我们手动去导入; 如何能够让一个东西自动帮我导入和配置这个jar包。 由此,Maven诞生了! 5.1 Maven项目架构管理工具我们目前用来就是方便导入jar包的!Maven的核心思想:约定大于配置有约束,不要去违反。Maven会规定好你该如何去编写我们的Java代码,必须要按照这个规范来;5.2 下载安装Maven官网;https://maven.apache.org/原创 2021-01-01 10:57:38 · 196 阅读 · 0 评论 -
Java小程序-记事本(I/O文件流的小练习)
效果图:修改前所保存的文件:修改后所保存的文件:实现代码:com.ioDemo包package com.ioDemo;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.Fil...原创 2018-07-04 19:28:58 · 912 阅读 · 2 评论 -
Java小程序-图书销售的纪录(I/O文件流的小练习)_新手初学源码
通过文件流来纪录每日的销售数量效果图:代码:package enptity;/** * 图书类 * @author Geek * @version 1.0 * @date 2018年6月28日 下午4:55:50 * @TextDemo Books * @copyright * @remark */public class Book { private String ...原创 2018-06-29 17:01:18 · 680 阅读 · 2 评论 -
简易扑克牌游戏JAVA源码_新手上路
下面来看看具体代码的实现:一、entity包1.裁判类package entity;/** * 裁判 * @author Geek * @version 1.0 * @date 2018年6月22日 上午9:38:47 * @TextDemo 简易poker游戏 * @copyright * @remark */import java.util.List;publ...原创 2018-06-23 20:04:18 · 6243 阅读 · 1 评论 -
(3)面向对象开发_java石头剪刀布小游戏大厅之游戏大厅-初学
package 剪刀石头布_小游戏;import java.util.Scanner;import java.util.concurrent.ConcurrentSkipListMap;public class Room { //属性 private String judgeName = "裁判媛"; private String roomName = "LOL英雄_石头剪刀布PK...原创 2018-02-22 12:15:21 · 439 阅读 · 0 评论 -
(2)面向对象开发_java石头剪刀布小游戏大厅之人类玩家-初学
package 剪刀石头布_小游戏;import java.util.Scanner;public class HumanPlayer { //玩家的开场 public static final int startGame = 1; //玩家的胜利 public static final int winGame = 2; //玩家的输 public static final i...原创 2018-02-22 12:13:48 · 551 阅读 · 0 评论 -
(1)面向对象开发_java石头剪刀布小游戏大厅之电脑玩家-初学
package 剪刀石头布_小游戏;import java.util.Scanner;public class ComputorPlayer { //玩家的开场 public static final int startGame = 1; //玩家的胜利 public static final int winGame = 2; //玩家的输 public static fina...原创 2018-02-22 12:12:18 · 569 阅读 · 0 评论 -
tic-tac-toe_game 井字棋游戏java源码(大一初学)
如果有更好的算法,请在下方评论学习输入1表示 X 下的棋,输入0表示 Y 下的棋package game;import java.util.Scanner;public class Game_new { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in =...原创 2018-02-09 12:02:02 · 3013 阅读 · 1 评论 -
Java多线程深入理解学习笔记之一-----进程和线程的概述
1:要想了解多线程,必须先了解线程,而要想了解线程,必须先了解进程,因为线程是依赖于进程而存在。2:什么是进程? 通过任务管理器我们就看到了进程的存在。 而通过观察,我们发现只有运行的程序才会出现进程。 进程:就是正在运行的程序。 进程是系统进行资源分配和调用的独立单位。每一个进程都有它自己的内存空间和系统资源。 3:多进程有什么意义呢? 单进...原创 2018-08-03 09:10:25 · 253 阅读 · 0 评论 -
Java多线程深入理解学习笔记之二-----多线程实现方案1及方法简介
多线程的实现方案1:继承Thread类重写run()方法在测试类中使用start()方法贴一下代码(自定义线程):package textDemo;public class MyThread extends Thread{ @Override public void run() { for (int i = 0; i < 100; i++) { Sys...原创 2018-08-03 19:00:30 · 186 阅读 · 0 评论 -
多线程实现同时下载(未加断点续传)直接全部下载_有待完善
完整版传送门自定义线程类:package 多线程下载器;import java.io.BufferedInputStream;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.io.RandomAccessFile;import java.net.Htt...原创 2018-08-12 21:19:20 · 362 阅读 · 0 评论 -
Java如何判断线程池中所有任务是否执行完毕
使用如下两个方法: 思路:(如果直接在主线程里shundown()方法后面打印结束了肯定是不行的,会直接打印而且线程还在执行)1.先执行一次shutdown()方法把所有的线程按顺序关闭,并执行未完成的线程,之后关闭2.在主线程里循环去判断所有任务是否完成(设置一个延迟,这样不会太耗资源,当然延迟设的越小肯定出现结果越准确啊),完成则打印完成了,之后break实现代...原创 2018-08-13 12:19:15 · 3948 阅读 · 0 评论 -
多线程实现HTTP下载器(断点续传)_使用IO和线程知识
1.断点续传:所谓的断点续传就是断点或者断网能够从该位置继续下载(使用IO)每次下载文件时都在临时文件里写入已传位置,下载完成后删除临时文件2.分片:该功能不是很完善把文件通过计算分成4片然后使用多线程下载3.判断线程池所有线程完成见我上一篇博客(传送门):判断线程池所有线程完成直接贴代码吧:1.自定义线程类:package 多线程下载器;impo...原创 2018-08-13 15:26:01 · 1260 阅读 · 0 评论 -
Java多线程深入理解学习笔记之五-----锁之不可重入锁和可重入锁
不可重入锁先来设计一种锁,这一种锁其实是不可重入锁package 可重入锁和不可重入锁;public class LockDemo { private boolean isLock = false; public synchronized void lock() { if(isLock){ try { wait(); } catch (Interr...原创 2018-08-08 22:06:29 · 173 阅读 · 0 评论 -
Java多线程深入理解学习笔记之六-----多线程同步Lock锁的使用及死锁问题
JDK5中Lock锁的使用虽然我们可以理解同步代码块和同步方法的锁对象问题,但是我们并没有直接看到在哪里加上了锁,在哪里释放了锁,为了更清晰的表达如何加锁和释放锁,JDK5以后提供了一个新的锁对象LockLock•void lock()•void unlock()实现类:ReentrantLock 使用Lock需要显式的加锁和解锁解锁操作需要放在finally块里,若...原创 2018-08-09 10:25:40 · 410 阅读 · 0 评论 -
Java简单工厂模式和工厂方法模式
简单工厂模式简单工厂模式概述•又叫静态工厂方法模式,它定义一个具体的工厂类负责创建一些类的实例举例代码(使用静态工厂创建狗和猫):package 简单工厂模式;public class CreatAnimalF { private CreatAnimalF() { } public static Animal creatAnimal(String type) ...原创 2018-08-26 11:36:30 · 213 阅读 · 0 评论 -
面向对象设计原则之开闭原则
开闭原则是面向对象的可复用设计的第一块基石,它是最重要的面向对象设计原则。开闭原则由Bertrand Meyer于1988年提出,其定义如下: 开闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。 在开闭原则的定义中,软件实体可以指一个软件模块、一个由多个类组...转载 2018-08-25 18:15:46 · 361 阅读 · 0 评论 -
Java单例设计模式
单例设计模式单例设计模式概述•单例模式就是要确保类在内存中只有一个对象,该实例必须自动创建,并且对外提供。 单例模式实现方式分为饿汉式和懒汉式,下面我们来谈谈单例模式实现的两种方式1.饿汉式package 单例模式;/** * 单例模式饿汉式 * @author Geek * @ve...原创 2018-08-25 20:06:43 · 323 阅读 · 0 评论 -
Java多线程深入理解学习笔记之九-----多线程实现方法3及简单使用计时器来删除指定的文件夹(递归)
多线程程序实现方案3实现Callable接口步骤和刚才演示线程池执行Runnable对象的差不多。但是还可以更好玩一些,求和案例演示•好处:•可以有返回值•可以抛出异常•弊端:•代码比较复杂,所以一般不用下面是使用Callable接口实现的一个累加计算的小程序实现代码:package cn.itcast_10;import java.util.conc...原创 2018-08-11 15:05:25 · 317 阅读 · 0 评论 -
Java多线程深入理解学习笔记之八-----线程的状态转换图、线程组及线程池的简单使用
线程的状态转换图线程组Java中使用ThreadGroup来表示线程组,它可以对一批线程进行分类管理,Java允许程序直接对线程组进行控制。•默认情况下,所有的线程都属于主线程组。•public final ThreadGroup getThreadGroup()•我们也可以给线程设置分组•Thread(ThreadGroup group, Runnable targe...原创 2018-08-10 21:30:53 · 323 阅读 · 0 评论 -
(String)、toString、String.valueOf的区别
(String)、toString、String.valueOf的区别 在Java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能。本文将对常用的转换方法进行一个总结。 常用的方法有(String)要转换的对象,Object#toString(),String.valueOf(Object)等。(String)这是标准的类型转换,将object转成String类型...转载 2018-04-06 10:30:36 · 143 阅读 · 0 评论 -
Java修饰符
Java 修饰符Java语言提供了很多修饰符,主要分为以下两类:访问修饰符非访问修饰符修饰符用来定义类、方法或者变量,通常放在语句的最前端。我们通过下面的例子来说明:public class className { // ...}private boolean myFlag;static final double weeks = 9.5;protected static final int B...转载 2018-03-27 16:13:12 · 109 阅读 · 0 评论 -
为什么接口中的成员变量非得是public static final的呢?
前言,这是今年面试的时候被问到的一个题目。我没有答得很完整。好惭愧。一年来一直做项目,却没有好好留点时间静下心来思考为什么是这样,那么以后自己做出来的产品想必会存在漏洞,因为我对有些事情欠缺完整的思考。知道是缺点了,便要改。 为什么接口中的成员变量非得是public static final的呢? 首先明白一个原理,就是接口的存在意义。接口就是为了实现多继承的抽象类,是一种高度抽象的模板、标准或者...转载 2018-03-24 21:34:36 · 239 阅读 · 0 评论 -
Java中关于抽象方法和静态不能共存
静态和抽象不能共存与方法上,因为静态属于字节码,不需要对象就可以运行,而抽象方法没有方法体,运行没有意义,所以不能共存但是一个抽象类可以有静态方法 抽象类不能实例化但是可以通过类名.方法名()来调用...转载 2018-03-18 21:31:20 · 1690 阅读 · 0 评论 -
JAVA抽象类和抽象方法(abstract)
一、抽象(abstract)的使用 当父类的某些方法不确定时,可以用abstract关键字来修饰该方法[抽象方法],用abstract来修饰该类[抽象类]。 我们都知道,父类是将子类所共同拥有的属性和方法进行抽取,这些属性和方法中,有的是已经明确实现了的,有的还无法确定,那么我们就可以将其定义成抽象,在后日子类进行重用,进行具体化。这样,抽象类也就诞生了。 例如,定义了“动物”父类,其中“动...转载 2018-03-14 19:55:11 · 292 阅读 · 0 评论 -
方法重载与方法重写的概念和区别
方法重载:一个类中有一个方法A,你又在这个类中创建了一个方法B,方法B的名字和A一样,返回值类型也一样,但是参数的类型或个数不同,此时B重载了A。例如:public class TestClass{ public int test(int i){return 1;} public int test(float f){return 1;}}方法重写:一个类M继承另一个类N...转载 2018-02-28 12:35:31 · 491 阅读 · 0 评论 -
Java字符串池深度解析
在工作中,String类是我们使用频率非常高的一种对象类型。JVM为了提升性能和减少内存开销,避免字符串的重复创建,其维护了一块特殊的内存空间,这就是我们今天要讨论的核心,即字符串池(String Pool)。字符串池由String类私有的维护。 我们知道,在Java中有两种创建字符串对象的方式:1)采用字面值的方式赋值 2)采用new关键字新建一个字符串对象。这两种方式在性能和内存...转载 2018-02-25 18:03:54 · 245 阅读 · 0 评论 -
Java使用对象--------字符
1、字符类型char ----占两个字节例:char a = 'A'; char b = '汉';2、字符计算例子: char a = 'A'+32; system.out.println(a);输出结果为 a 小结:字符和数字能相互转换.3、字符也可以比较大小4、逃逸字符(转义字符)顾名思义-转义字符以 \+字母 变为另一个东西例:"\b" ----------------回...原创 2018-02-10 18:30:30 · 229 阅读 · 0 评论 -
Java中关于数组之间的复制
public class Main {public static void main(String[] args) {int []a1={1,2,3,4,5};int []a2=a1;a2[0]=2;}}先来引出一个例子----如上述代码 Java中复制数组 会发生什么呢 a2[0]=2; 这肯定没错但是我们通过打印发现a1[0]=2;这是为什么呢?原创 2018-02-07 21:28:36 · 442 阅读 · 0 评论 -
Java中比较两个浮点数是否相等
public class Test{ public static void main(String[] args){ isEqualOfFloat(10.222222225f, 10.222222229f); } public static void isEqualOfFloat(float a, float b){ S转载 2018-02-03 15:25:08 · 986 阅读 · 0 评论 -
向HashSet插入自定义对象判断是否重复
一.HashSet概述HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。二.存储方式与实现如果不等,则添加到该数组索引对应的链表中。Set的实现类的集合对象中不能够有重复元素,HashSet也一样他是使用了一种标识来确定元素的不重复,HashSet用一种算法来保证HashSet中的元素是...转载 2018-06-13 17:48:30 · 628 阅读 · 0 评论 -
java输出换行的标准姿势"line.separator"
java中写.txt文件,实现换行的几种方法: 1.使用java中的转义符"\r\n": windows下的文本文件换行符:\r\n linux/unix下的文本文件换行符:\r Mac下的文本文件换行符:\n1.String str="aaa"; 2.str+="\r\n"; 2.BufferedWriter的newline()方法:FileOutputStream fos=new Fil...转载 2018-06-02 09:55:29 · 890 阅读 · 0 评论 -
java 序列化追加文件及反序列化读取多个对象
先来看看java的ObjectOutputStream和ObjectInputStream源码好了public ObjectOutputStream(OutputStream out) throws IOException { verifySubclass(); bout = new BlockDataOutputStream(out); ...原创 2018-06-10 11:17:49 · 7876 阅读 · 7 评论 -
Java-try finally没有catch的用法
JDK并发工具包中,很多异常处理都使用了如下的结构,如AbstractExecutorService,即只有try和finally没有catch。class X { private final ReentrantLock lock = new ReentrantLock(); // ... public void m() { lock.lock(); ...转载 2018-08-09 09:40:57 · 5395 阅读 · 0 评论 -
Java多线程深入理解学习笔记之三-----多线程生命周期及多线程实现方法2
线程的生命周期图1.新建:创建线程对象2.就绪:执行start()方法,此时有执行资格,没有执行权3.运行:有执行资格获得了执行权(线程对象抢到的)4.死亡:线程对象run()结束或者是通过不安全的方法stop()中断线程,之后线程对象变成垃圾回收5.阻塞:通过Thread中的sleep()或者是Object类中的wait()方法来休眠线程,使线程没有执行资格,没有执行权,...原创 2018-08-04 20:38:42 · 176 阅读 · 0 评论 -
Java多线程深入理解学习笔记之七-----线程间的通信及等待唤醒机制
线程间的通信针对同一个资源的操作有不同种类的线程•举例:卖票有进的,也有出的。 代码如下:(消费者)package 线程间通信;public class GetThread implements Runnable{ Student student = null; @Override public void run() { // TODO Auto-gen...原创 2018-08-09 12:43:57 · 177 阅读 · 0 评论 -
Java多线程深入理解学习笔记之四-----多线程安全问题实现2及之前总结
解决线程安全问题实现2同步方法•就是把同步关键字加到方法上,同步方法的对象是this,下面是代码://自定义线程类package m8d5;public class Ticket implements Runnable { private int amount = 100; private int x = 0; //private Object object = new ...原创 2018-08-05 11:37:45 · 234 阅读 · 0 评论 -
java 面向对象接口的应用
java 面向对象接口的应用简介上几篇一直在说面向对象理论中的抽象类的一些具体应用。今天我来说说面向对象理论中另一个关键的东西。接口。抽象类是类,接口是特殊的抽象类。为什么要用那么多时间来研究抽象类和接口呢?因为只有这二个理论我们掌握了、理解了。会用了。才能大大提高程序的可扩展性和可维护性。以后在学什么设计模式也是一层窗户纸一捅就破。概念Java接口是一系列方法的声明,是一些方法特征的集合,一个接...转载 2018-03-27 22:45:26 · 196 阅读 · 0 评论