java基本知识
slb18220570825
是一名大三学生,希望通多写博客提升自己的知识储备以及总结一些日常的问题
展开
-
为什么btye类型的范围数据范围是-128~+127(详细易懂版)
为什么btye类型的范围数据范围是-128~+127,查阅了很多资料,算是网上比较易懂全面的版本(滑稽)原创 2017-12-03 17:19:22 · 1379 阅读 · 0 评论 -
多线程之Condition练习-自定义阻塞队列
假定有一个绑定的缓冲区,它支持 put 和 take 方法。如果试图在空的缓冲区上执行 take 操作,则在某一个项变得可用之前,线程将一直阻塞;如果试图在满的缓冲区上执行 put 操作,则在有空间变得可用之前,线程将一直阻塞。我们喜欢在单独的等待 set 中保存 put 线程和 take 线程,这样就可以在缓冲区中的项或空间变得可用时利用最佳规划,一次只通知一个线程。可以使用两个 Conditi...原创 2018-06-25 21:01:57 · 170 阅读 · 0 评论 -
源码——手写一个简单的HashMap
定义:用于存储Key-Value键值对集合, 存储结构:线性链表(数组+链表)。数组:固定长度,索引效率高,增删效率低-----链表:长度不固定,索引效率低,增删效率高 散列值特点:同一对象调用多次hashcode()方法,必须返回相同的数值。(幂等) 如果两个对象根据equals()方法比较是相等的,那么两个对象调用hashcode()方法返回的结果...原创 2018-06-17 16:59:39 · 922 阅读 · 0 评论 -
多线程练习-设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1 public class ThreadTest1 { private int j; public static void main(String[] args) { ThreadTest1 tt=new ThreadTest1(); Inc inc=tt.new Inc(); Dec dec=tt.new D...原创 2018-06-21 22:56:27 · 533 阅读 · 0 评论 -
多线程之访问共享对象和数据总结
1.如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享数据。2.如果每个线程执行的代码不同,这时候需要用不同的Runnable对象,如下两种方式来实现这些Runnable对象之间 的数据共享 ①将共享数据封装在另一个对象中,然后将这个对象逐一传递给各个Runnable对象,每个线程对共享数据的操作方法也分配到那个对象身上完成,这样容易...原创 2018-06-21 22:45:55 · 237 阅读 · 0 评论 -
多线程之线程范围内共享数据(3)
public class MultiThreadShareData { private static ShareData1 data1=new ShareData1(); public static void main(String[] args) { ShareData1 data2=new ShareData1(); /** *两个Runnable对象要共享同一数...原创 2018-06-21 22:34:54 · 110 阅读 · 0 评论 -
多线程之线程范围内共享数据(2)
public class ThreadLocalTest{ /** * 一个ThreadLocal对象代表一个变量,故里面只能放一个数据 */ private static ThreadLocal<Integer> x=new ThreadLocal<Integer>(); private static ThreadLocal<MyThreadSc...原创 2018-06-21 21:42:25 · 99 阅读 · 0 评论 -
多线程之线程范围内共享数据(1)
import java.util.HashMap; import java.util.Map; import java.util.Random; public class ThreadScopeShareData { private static int data=0; private static Map<Thread,Integer> threadData=new Ha...原创 2018-06-21 21:00:59 · 110 阅读 · 0 评论 -
多线程之线程通信
要求:子线程执行10次,主线程执行100次;然后子线程执行10次,主线程执行100次;如此循环50次public class TraditionalThreadCommunication { public static void main(String[] args) { final Business business=new Business(); new Thread(n...原创 2018-06-21 20:38:54 · 115 阅读 · 0 评论 -
多线程之线程同步
public class TraditionalThreadSynchronized { public static void main(String[] args) { new TraditionalThreadSynchronized().init(); } public void init() { final Outputer outputer=new Outputer();...原创 2018-06-21 20:36:26 · 104 阅读 · 0 评论 -
多线程之定时器
package 多线程.定时器; import java.util.Date; import java.util.Timer; import java.util.TimerTask; public class TraditonalTimer { private static int count; public static void main(String[] args) { /*n...原创 2018-06-21 20:35:30 · 132 阅读 · 0 评论 -
java报错:No enclosing instance of type TraditionalThreadCommunication is accessible.
没有可访问的内部类E的实例,必须分配一个合适的内部类E的实例(如x.new A(),x必须是E的实例。)我写的内部类是动态的,也就是开头以public class开头。而主程序是public static class main。在Java中,类中的静态方法不能直接调用动态方法。只有将某个内部类修饰为静态类,然后才能够在静态类中调用该类的成员变量与成员方法。所以在不做其他变动的情况下,最简单的解决办...原创 2018-06-21 17:46:15 · 170 阅读 · 0 评论 -
JVM重点知识总结
1.运行时数据区(内存模型) 线程不安全: 方法区和堆 线程安全 :虚拟机栈,本地方法栈,程序计数器 程序计数器:较小的内存空间,是当前线程执行的字节码行号知识器,改变计数器的值来选取下一条需要执行的字节码指令(分支、循环、跳转) 虚拟机栈:java方法执行的内存模型,每个方法执行都会创建一个栈帧,里面有局部变量表(八中基本数据类型和对象引用),操作数栈(运行结果),动态链接和方法出口等,...原创 2018-08-05 18:38:00 · 214 阅读 · 0 评论