自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 多线程练习

问题:以下四个程序doOther方法的执行需不需要等待doSome方法的结束?程序1:public class Exam01 { public static void main(String[] args) { Myclass mc1 = new Myclass(); Myclass mc2 = new Myclass(); Thread t1 = new MyThread(mc1); Thread t2 = new MyThre

2021-02-19 16:02:27 103 1

原创 多线程(二)

二、关于多线程并发环境下,数据安全问题一、什么时候数据在多线程并发的环境下会存在安全问题1.多线程并发2.有共享数据3.共享数据有修改行为二、如何解决线程安全问题当多线程并发的环境下,有共享数据,并且这个数据还会被修改,此时就存在线程安全问题,解决办法:线程排队执行(不能并发)。用排队执行解决线程安全问题,这种机制被称为线程同步机制。此时会牺牲一部分效率三、同步编程模型和异步编程模型异步编程模型:线程A和线程B,各自执行各自的,A不需要等待B,B也不需要等待A。其实就是多线程并发(效率较高.

2021-02-19 15:40:02 105

原创 多线程(一)

一、什么是线程,什么是进程1.进程是一个应用程序,资源分配的基本单位2.线程是一个进程中的执行场景/执行单元;一个进程可以启动多个线程,是程序执行的基本单位二、对于java程序来说,当在DOS窗口输入命令后,会先启动jvm,而jvm就是一个进程,同时再启动一个垃圾回收线程负责回收,至少再目前的java程序中,至少有两个线程并发,一个是垃圾回收线程,一个是执行main方法的主线程三、进程A和进程B的内存独立不共享四、线程A和线程B,堆内存和方法区内存共享,但是栈内存独立,一个线程一个栈。假设有十个线

2021-02-19 15:36:06 140 1

原创 哈希表(二)

1.哈希表HashMap使用不当时无法发挥性能!(1)假设将所有的HashCode()方法返回值固定为某个值,那么会导致底层哈希表变成了纯单向链表,这种情况我们称为散列分布不均匀。什么是散列均匀:假设有100个元素,10个单向链表那么每个单向链表上有10个节点,这是最佳情况(2)假设将所有的HashCode()方法返回值都设定为不一样的值,那么会导致底层变成纯一维数组,没有链表得概念,也是散列不均匀(3)散列分布均匀需要重写hasCode()方法时有一定得技巧。(4)重点:放在hasMp()集合

2021-02-05 21:57:54 166

原创 哈希表

1.HashMap集合底层是一个哈希表/散列表数据结构2.哈希表是一个数组和单项链表得结合体。数组在查询方面效率很高,随机增删效率低,而单向链表在随机增删方面效率高,在查询方面效率低,哈希表则将以上两种优点结合,充分发挥各自优点3.HashMap底层源码Public class HashMap{Node <k , v> [] table ;Static class Node <k,v>{final int hash; //哈希值final k key; //存储到Map

2021-02-05 21:57:13 64

原创 微信小程序静态初步

社团微信小程序(1)由于兴趣驱动,一直在学习微信小程序,由于之前一直学习Java,但是大三第一学期即将结尾,所以为了能让下学期的学习减少工作量所以就打算利用闲散时间开发小程序,于是就拿社团为例子,自己一步步摸索。现在只是初步学习,所以这些天一直在搭建一个静态页面用来检验学习成果一,首页构建思路:1.使用Lin Ui 组件的头像组件,“Hello Dream” 带圆角线框“开启梦想之旅”2.使用tabar,做三个页面“首页”“内容”“我的”3.首页页面,背景,导航栏,颜色均统一为一种颜色4.

2021-02-05 21:54:18 875 1

原创 微信小程序静态初步

内容板块搭建前面我已经做好首页,现在搭建一个静态的内容板块,由于是初学,所以技术有限,只能做到查看一个轮播图,作者头像和作者信息,一个图片,大概简介,还有静态浏览量和收藏数思路:1.顶部有一个三张图片的轮播图效果2.建立两个分割线,其中顶部分割线距轮播图有一定距离3.作者头像和作者信息均横向布局,且头像和信息之间有一定距离,头像距左端有距离,文字和头像尽量符合一般新闻类头像和文字设置4.标题文字 加粗,字号放大,距左端有间隙5.加入相关图片6.简介文字比标题小,并设置行间距和段间距,符合正常

2021-02-05 21:54:01 584

原创 File类

public class FileText01 { public static void main(String[] args) { //创建file对象 File file = new File("D:\\Text\\java_File"); //判断D:\java_File是否存在 System.out.println(file.exists()); //false //如果不存在,则以文件形式创建

2021-02-05 21:51:40 96 1

原创 选择排序

public class ArryListText { public static void main(String[] args) { //创建一个数组 int[] arry = {1,9,8,4,3,2,6,7,0,5,88,95,11,4,55,60,259,87,33,214,658,895}; for(int i = 0;i<arry.length - 1;i++){ //假设指针指向第一个元素下标--0

2021-02-05 21:49:04 49

原创 数据结构大致划分

2021-02-05 21:47:20 147

原创 java单个文件拷贝

//单个文件拷贝public class IoCopyText01 { public static void main(String[] args) { FileOutputStream fio = null; FileInputStream fis = null; try { //创建一个输入流对象 fis = new FileInputStream("C:\\Users\\11026\\Deskto

2021-02-05 21:46:25 75

原创 BufferReader和BufferWriter

public class BufferReaderText02 { public static void main(String[] args) { //文件字节输入流 ----> 使用缓冲流(BufferReader) ----> 转换为文件字符输入流 FileInputStream fileInputStream = null; try { /* //这是个字节流 fileInputStre

2021-02-05 21:45:00 346

原创 IO流(二)

public class BufferWriterText01 { public static void main(String[] args) { //文件字节输出流 ----> 使用缓冲流(BufferReader) ----> 转换为文件字符输出流 FileOutputStream fileOutputStream = null; try { fileOutputStream = new FileOutputS

2021-02-05 21:43:44 51

原创 IO流

分类(1)按照流的方向进行分类:以内存为参照物,往内存中去的叫输入(读),从内存中出来的叫做输出(取)(2)按读取的数据方式的不同进行分类:有的流是按字节的方式进行读取,一次读取1个字节(byte),等同于一次读取8个2进制位,这种流是万能的,什么类型文件都能读取;有的流是按字符方式读取数据,一次读取1个字符,这种流是为了方便读取文本文件而存在,但不能读取图片,音频等,word文件也无法读取综上所述,流的分类有:输入输出流,字符字节流3.流的四大家族Java.io.InputStream----.

2021-02-05 21:40:01 88

原创 稀疏数组转为二维数组

/** * 稀疏数组转为二维数组 * 1、先读取稀疏数组的第一行,确定二维数组有几行几列,在创建二维数组 * 2、再读取稀疏数组的后面几行数据,并赋给原始二维数组即可 * @auther sparseArray[0][0] sparseArray[0][1] 表示稀疏数组的第0行的第0列和第1列,以此来构建二维数组 * */ int[][] chessArray1 = new int[sparseAr.

2021-02-05 11:07:08 116

原创 二维数组转换为稀疏数组

二维数组转换为稀疏数组/** * 二维数组转换稀疏数组的思路: * 1.遍历原始的二维数组,得到有效数据的个数sum(sum有多少个,稀疏数组就有sum+1行) * 2.根据sum的个数创建稀疏数组sparseArray int[sum + 1][3](列为固定值,行不确定) * 3.将二维数组的有效数据放入稀疏数组中 * 0 0 0 1 0 * 2 0 0 0 3 * 0 5 0 0 0 * 0 0 6 0 0 * *///创建一个原始的4行5列二维数组 int[

2021-02-04 23:45:35 299

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除