![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 95
cccrush_
勿在浮沙筑高台
展开
-
java中访问修饰符关键字的区别
public、protected、private以及默认default(不写) 作用: 用来修饰类(接口、抽象类)、方法、属性、构造方法、常量、主函数类的成员不写访问修饰符时时默认default,默认情况对于同一个包而言等同于public子类使用是需要继承(https://blog.csdn.net/qq_33342248/article/details/54090038)...转载 2018-08-25 10:23:37 · 1771 阅读 · 0 评论 -
Java中抽象类和接口的特点以及区别
抽象类(在了解抽象类之前一定要先了解抽象方法。抽象方法是一种特殊的方法:他只有声明,没有具体实现。)抽象方法的声明定义:```修饰符 abstract 返回值类型 方法名(); ``` 抽象方法必须用abstract关键词进行修饰声明!如果一个类中含有抽象方法,则称这个类为抽象类(也就是说抽象类中也有普通方法的)。 抽象类则必须在类前面加上abstract关键词修饰。...原创 2018-09-24 21:20:20 · 373 阅读 · 0 评论 -
Java中线程的同步异步、以及线程的安全
什么是线程同步? 这里的“同”是协同的意思,并不是共同。那么就很好理解同步了,就是一起操作但并不是同时操作。比如流水线组装汽车,可以视作一个线程,只有装好了上一步的门,才可以装下一步的门窗玻璃。没有装门能装上玻璃吗?显然不行。所以线程同步也是的,要将线程中的请求完成以后才会进行下一个请求。 A线程要请求某个资源,但是此资源正在被B线程使用中,因为同步机制存在,A线程...原创 2018-09-25 14:09:10 · 640 阅读 · 0 评论 -
为线程打Call——通信之消费者生产者模型
为什么要线程通信 多线程并发时,默认情况下CPU是随机切换线程的。当我们需要多个线程共同来完成一个任务,并且希望他们有规律的执行,那么线程之间就需要有一些协调的通信,以此来达到多个线程来操作一份数据。 当然了,如果没有这种协调通信也是可以完成多线程操作同一份数据的,但是很有可能会出现线程对同一变量的争夺,这种情况就会出错。所以简而言之,线程通信就是为了避免多线程对同一共享变量的争夺。这...原创 2018-10-02 12:55:24 · 460 阅读 · 0 评论 -
Java单身狗 —— 单例模式
什么单例模式? 单例模式是Java最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时保证只有单个对象被创建。这个类提供了一种访问其对象的唯一的方式(静态调用),可以直接调用,不需要实例化对象。 为什么要使用单例模式? 单例模式主要是为了避免创建多个实例而造成资源的浪费。它可以保证一...原创 2018-10-03 00:08:29 · 821 阅读 · 0 评论 -
Java存储机制——栈、堆区别(变量,常量,String举例)
Java的6种存储储存地址及其解释 寄存器(register):这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。但是寄存器数量极其有限,所以寄存器根据编译器需求来进行分配,我们无法控制。 堆栈(常称为栈:stack):位于通用RAM中。它通过它的“堆栈指针”可以从处理器获得支持。堆栈指针若是往下移动,则分配新的内存,堆栈指针若是往上移动,则释放内存。这是一种快速有效的分...原创 2018-10-03 21:10:02 · 550 阅读 · 0 评论 -
Java线程池的认识、常用线程池的分析
什么是程序,什么是进程,什么是线程,他们有什么区别? 程序是指令和数据的有序集合,其本身并没有任何运行的含义,是一个静态的概念。进程是一个动态的过程,是一个活动的实体。简单来说,一个应用程序得到运行就可以看作是一个进程。进程可以包含多个同时运行的线程。进程也是拥有系统资源分配的最小基本单位。线程是进程的实体,是CPU调度和分派的最小基本单位,是比线程更小的能独立运行的基本单位。一个...原创 2018-09-27 18:35:01 · 848 阅读 · 0 评论 -
Java中就什么是映射的简单理解
映射是一种特殊的对应关系。打个比方,生活中一只箭可以射中一只鸟,也可以射不中,甚至可以射中几只。但是在程序中,这只箭必须射中一只,而且也只能能射中一只。正常一点的理解就是:映射就是把两个对象对应起来。对应的对象叫做象,被对应的对象叫做原象。Java中有非常好的例子。实现了Map接口的HashMap和TreeMap。前面已经提到过Map类是实现键值对的双向链表,这里就是完成了ke...原创 2018-09-27 23:19:33 · 21301 阅读 · 0 评论 -
Java线程的创建、线程的生命周期状态
重新认识Java线程创建的三种方式: 继承Thread类 1.通过继承Thread类创建Thread子类,并重写run方法。run方法的方法体表示线程类要完成的任务,因此也把run方法称为执行体。2.创建Thread子类的实例对象,就是创建了线程对象。3.调用start方法启动线程。//线程类public class xiancheng extends Thread...原创 2018-09-29 11:43:46 · 225 阅读 · 0 评论 -
线程中sleep()、wait()方法,以及对象锁、锁池、等待池的理解
由一道关于sleep()和wait()方法的题目展开关于sleep()和wait(),以下描述错误的一项是:- A sleep是线程类(Thread)的方法,wait是Object类的方法;- B sleep不释放对象锁,wait放弃对象锁- C sleep暂停线程、但监控状态仍然保持,结束后会自动恢复- D wait后进入等待锁定池,只有针对此对象发出notify方法后获得对象锁进...原创 2018-09-29 19:48:21 · 8367 阅读 · 4 评论 -
线程的并发、并行以及高并发
并发: 当多个线程在操作的时候,如果系统只有一个CPU,同一时刻就只有一条线程指令在执行,但是各个线程指令被快速的轮换执行,这就是的宏观上看起来是多个线程在同时执行。但微观上并不是这样,只是将时间分成若干个片段,多个线程交替执行。如图系统只有1个CPU,线程就要通过竞争得到执行机会。谁得到CPU谁就执行。 ...原创 2018-09-30 11:30:15 · 8639 阅读 · 1 评论 -
Java的动态加载和反射
什么是动态加载?静态呢? new创建对象的方式称作为静态加载,而使用Class.forName("XXX")称作为动态加载,它们俩本质的区别在于静态加载的类的源程序在编译时期加载(必须存在),而动态加载的类在编译时期可以缺席(源程序不必存在)。哪些语言是静态的?哪些是动态的? 程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言。 从这个观...原创 2018-09-13 13:03:25 · 1749 阅读 · 0 评论 -
java初识io流
java.io包中定义了多个流类型(类或者抽象类)实现输入输出功能,从不同的角度进行分类: 1.按数据流的方向分为输入流和输出流 2.按处理数据单位不同分为字节流和字符流(常用GBK中,一个字符为两个字节,汉字为一个字符) 字节流 inputStream outputStream(Stream结尾都是字节流,最原始的输入输出) ...原创 2018-08-25 00:35:27 · 228 阅读 · 0 评论 -
Java中String、StringBuilder和StringBuffer的区别
String运行 public static void main(String[] args) { String str = "abc"; System.out.println(str); long a = System.currentTimeMillis(); for (int i = 0; i < 10000; i++) { str += "jk"; }...原创 2018-08-24 21:05:50 · 114 阅读 · 0 评论 -
java简易手写数字识别——KNN算法+欧式距离
KNN算法和欧式距离介绍1. KNN算法又称为k近邻分类(k-nearest neighbor classification)算法。 最简单平凡的分类器也许是那种死记硬背式的分类器,记住所有的训练数据,对于新的数据则直接和训练数据匹配,如果存在相同属性的训练数据,则直接用它的分类来作为新数据的分类。这种方式有一个明显的缺点,那就是很可能无法找到完全匹配的训练记录。 KNN算...原创 2018-08-23 22:53:39 · 5036 阅读 · 0 评论 -
基本数据类型的简单认识
可能需要知道的一点: java内存分为四块 1.装代码,就是编译的东西 2.装静态变量,如static关键字的变量 3.stack即“栈”,用来装变量和引用类型 4.heap即“堆”,用来装new出的东西正文 数据类型分为基本数据类型和引用数据类型 1.概念方面来说...原创 2018-08-23 00:06:40 · 383 阅读 · 0 评论 -
五子棋的基本实现
1.效果图。第一次写有点粗糙。2.五子棋设计要求 (1)实现界面按钮的基本功能。 (2)实现双人对战和电脑对战(水平太low还没写出来)3.设计思路 (1)棋盘类设计,黑白棋盘,落子位于交叉点,存储棋子。 (2)棋盘类重绘。 (3)判断输赢。 (4)...原创 2018-07-20 10:32:40 · 554 阅读 · 1 评论 -
java中画图板的基本实现
1.首先是通过JFrame写一个画图面板的界面。 (1)需要给界面添加一个监听器,用来获取鼠标按下和释放时候的坐标。这个不能使用动作监听器(ActionListener),只有使用鼠标监听器(MouseListener)才能够获取到坐标。 ActionListener:可以给需要关注其动作的组件(如Button)添加监听器(addAc...原创 2018-07-17 14:41:23 · 4584 阅读 · 1 评论 -
初识java
1.面向过程与面向对象 面向过程:在分析解决问题的时候,首先把问题分成若干个步骤,然后每个步骤定义为一个函数,然后把每一个步骤都定义为一个函数,定义好函数意味着这个问题的解决步骤已经确定,使用时一个个依次调用就好了。 面向对象:把构成的事物问题分解成一个个对象。建立对象的目的不是为了完成一个步骤,而是为了描述事物在整个解决问题的步骤中的状态和行为。然后通过调用对...原创 2018-07-10 23:30:50 · 161 阅读 · 0 评论 -
Java处理异常机制以及五个关键字
首先来个总的图,了解一下Java异常类的结构层次图 Throwable:Java中所有的异常都有共同的父类Throwable(可抛出)。它有两个重要的子类Error(错误)和Exception(异常),这两个子类也包含大量的子类。Error(错误):是程序代码无法处理的错误。大多数是java运行时系统的内部错误和资源耗尽错误。应用程序不会抛出该类对象。如果出现了这样的错误,除...原创 2018-09-16 14:13:40 · 8693 阅读 · 0 评论 -
静态代码执行顺序(代码示例)
测试父类子类静态代码块,普通代码块,构造方法的执行顺序 public class A { static { System.out.println("父类静态代码块"); } public A(){ System.out.println("父类构造方法"); } { System.out.println("...原创 2019-02-16 11:29:44 · 413 阅读 · 0 评论