![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
文章平均质量分 63
AAA Z
think twice,code once
展开
-
Java生产者消费者问题开荒(上)?!
模拟场景:汉堡店有三个厨师,每个厨师3秒做一个汉堡。有6个顾客陆续到来,顾客2秒吃完一个汉堡,每个顾客需要吃5个汉堡才能吃饱。根据命题,做出了第一版(存在报错,不要复制),一个厨师一个顾客的场景:package com.lph.Test;public class Test1 { public static void main(String[] args) { //餐厅中只有一个取餐台 Cabinet cabinet = new Cabinet();原创 2021-03-25 15:59:35 · 134 阅读 · 0 评论 -
Java多线程基本知识点?!
1.进程和线程进程 : 程序运行过程中资源分配的最小单位,进程内部会有多个线程,会共享这个进程的资源。线程 : CPU调度的最小单位,必须依赖进程而存在。问题点:进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,简历数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵。而线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远比进程要小的多。线程之间的通信更方便,同一进程下的线程共享全局变量、静态变量等数据,而进程之间的通信需要以通信的方式进行。多进程程序转载 2021-03-16 22:57:25 · 83 阅读 · 0 评论 -
Java NIO学习?!
Java NIO 与 IO的区别:一.缓冲区(Buffer)在JavaNIO中负责数据的存取。缓冲区就是数组。用于存储不同数据类型的数据。根据数据类型不同(boolean除外),提供了相应类型的缓冲区。1⃣️ByteBuffer 2⃣️CharBuffer 3⃣️ShortBuffer 4⃣️IntBuffer 5⃣️LongBuffer 6⃣️FloatBuffer 7⃣️DoubleBuffer上述缓冲区的管理方式几乎一致,通过allocate()或得缓冲区。//分配一个指定大小的缓冲区B原创 2020-06-25 23:58:37 · 143 阅读 · 0 评论 -
学习JVM虚拟机的第一天:类的加载过程
首先,先看一下一个Class的加载过程:1.加载这个加载阶段为Class的加载过程中的第一个阶段,名为加载(Loading)阶段。其主要完成了以下三件事:(1)通过一个类的全限定名来获取定义此类的二进制字节流。(2)将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。(3)在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据访问的入口。对于加载的class文件的来源,可有以下途径:(a)从本地系统中直接加载。(b)通过网络下载.class文件原创 2020-06-25 23:59:11 · 115 阅读 · 0 评论 -
foreach中remove/add报错问题?!
- 问题引入public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("kobe"); list.add("james"); list.add("curry"); for (String s : list) { if (s.e...原创 2020-04-06 00:49:22 · 678 阅读 · 0 评论 -
Java多线程简单理解并使用?!
在学习使用多线程之前,首先要先明白为什么需要使用它。使用多线程只有一个目的,那就是更好的利用CPU资源,因为大多数的多线程代码都可以用单线程来实现。让我们想象一个简单的例子,火车站的售票厅,我们用单线程来想一下:public class SignleSale { static int num = 10; static public void sale() { System.out....原创 2019-05-23 00:32:16 · 481 阅读 · 0 评论 -
Java多态原理(JVM角度)?!
第一次从JVM角度来看Java当中的问题,前期的c语言基础给了我很大帮助。直接上例子:class Father{ int age; public Father() { age=40; } void breath() { System.out.println("father is breathing.."); }}class Son extends Father{ int...转载 2019-05-18 23:54:23 · 578 阅读 · 0 评论 -
Java I/O系统(2)之OutputStream类?!
Java中将IO流进行分类,可分为字节流(字节输出流:OutputStream和字节输入流:InputStream)和字符流(字符输出流:Writer和字符输入流:Reader)【流的概念和作用(Thinking in Java):流:代表任何有能力产出数据的数据源对象或者是有能力接受数据的接收端对象流的本质:数据传输,根据数据传输特性将流抽象为各种类 】1.OutputStream类...转载 2019-05-09 10:36:04 · 194 阅读 · 0 评论 -
Java I/O系统(1)之File类?!
首先强调我自身小白对File的误解:File这个名字有一定的误导性,实际上FilePath对这个类来说是个更合适的名字,Java中的File类是文件和目录路径名的抽象形式。我们可能会认为它指代的是文件,但事实上,FIle既能代表一个特定文件的名称,又能代表一个目录下的一组文件的名称。总结来说,File类主要用来获取或处理与磁盘文件相关的信息,如文件名、文件路径和修改日期等,其不具有从文件读取信息和...转载 2019-04-28 11:33:39 · 140 阅读 · 0 评论 -
Java中的static关键字探究
一. static关键字的用途“static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的,而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。”简单的说就是:可以在没有创建对象的情况下对方法和对象进行调用。很显然,被static关键字修饰的方法或变量不需要依赖于对象进行访问,只要类被加载了,...转载 2019-01-27 20:29:51 · 99 阅读 · 0 评论 -
Java找素数?!
总结多种方法,并进行比较总结(主要探究厄拉多塞筛法)方法一(自己的方法):public static void main(String[] args) { for (int i = 1; i < 1000; i++) { boolean flag=true; for (int j = 2; j < i/2; j++) { if (i%j==0) { ...原创 2019-01-26 11:39:27 · 7595 阅读 · 4 评论 -
Integer.toBinaryString()源码探究
在Integer类中有静态方法toBinaryString(int i)方法,此方法返回int变量的二进制表示的字符串。同理,Integer类中也提供了toHexString(int i)方法和toOctalString(int i)方法来分别返回int变量的16进制表示和8进制便是字符串。三个方法的源码分别为:public static String toBinaryString(int ...转载 2019-01-20 11:59:19 · 376 阅读 · 0 评论 -
Java多态性(向上转型和向下转型)
*向上转型:*子类对象转为父类,父类可以是接口。公式:Father f=new Son();Father是父类或接口,son是子类。*向下转型:*父类对象转为子类。公式:Son s=(Son)f;package demo2;public class Human { public void sleep(){ System.out.println("Human sleep.."); }...转载 2018-12-28 21:15:42 · 528 阅读 · 0 评论 -
JAVA前期(静态)绑定 后期(动态)绑定
绑定:绑定是指一个方法的调用和一个方法所在的类(方法主体)关联起来。对Java来说,绑定分为静态绑定(前期绑定)和动态绑定(后期绑定)静态绑定:在程序执行前已经被绑定(在编译过程中就已经知道这个方法到底是哪个类中的方法),此时由编译器或其他链接程序实现。针对Java简单的可以理解为程序编译期的绑定;【Java中的方法只有final,static,private和构造方法是前期绑定】//人...转载 2018-12-28 00:17:33 · 182 阅读 · 0 评论