08 2020 档案

摘要:在方法中个数可变的形参只能处于形参列表的最后,一个方法中最多只能包含一个个数可变的形参,个数可变形参的实质是一个数组,在 调用含有个数可变形参的方法的时候,可变形参可以传入多个参数,也可以传入一个数组。 个数可变形参在定义的时候,在数据类型的后面加上...方可,下面举个例子: 1 package c 阅读全文
posted @ 2020-08-31 11:37 Joker-0927 阅读(139) 评论(0) 推荐(0) 编辑
摘要:java方法里参数的传递分为基本数据类型和一用数据类型,首先说明一下基本数据类型和引用数据类型在方法里面参数的 传递机制全部都是值传递机制。 值传递:将实参的数值(或者引用)赋值给形参,但是实参和形参完全是两个不相干的变量。 接下来我们分别讲述基本数据类型和引用数据类型: 基本数据类型的方法参数传递 阅读全文
posted @ 2020-08-31 11:03 Joker-0927 阅读(317) 评论(0) 推荐(0) 编辑
摘要:整数类型的默认类型时int类型 浮点数类型的默认类型时double类型 在基本数据类型的赋值过程中: 在基本数据类型中,从小范围赋值给大范围可以直接赋值(隐式转换) 但是从大范围赋值给小范围就一定要使用强制类型转换,否则会出错 如果等号右边是一个算术表达式,则算术表达式的最终数据类型等于式子中的范围 阅读全文
posted @ 2020-08-30 22:06 Joker-0927 阅读(171) 评论(0) 推荐(0) 编辑
摘要:一个java源文件可以包含多个类的定义 但是最多只能包含一个由public关键字定义的类 倘若java源文件中含有一个被public关键字修饰的类 那么,这个java源文件就一定要命名public修饰的类的类名 阅读全文
posted @ 2020-08-30 21:37 Joker-0927 阅读(424) 评论(0) 推荐(0) 编辑
摘要:首先我们要知道为什么要配置path环境变量: 当我们下载了一个程序,那么这个程序就会包括一些关于这个程序的命令(exe可执行文件),如果我们想通过计算机操作这些命令,那么计算机如何查找这些命令呢? Windows操作系统是根据path环境变量来查找命令 path环境变量是一系列路径 当我们想要执行的 阅读全文
posted @ 2020-08-30 21:31 Joker-0927 阅读(148) 评论(0) 推荐(0) 编辑
摘要:一个编写好的java程序的执行必然要经过编译和解释执行的过程,其中编译时编译器在工作,它把*.java源文件编译成为*.class的不可执行的与平台无关的字节码文件,然后字节码文件再经过虚拟机解释执行。 因此,可以认为java语言既是编译性语言,又是解释型语言,或者说java语言既不是纯粹的编译性语 阅读全文
posted @ 2020-08-29 20:55 Joker-0927 阅读(332) 评论(0) 推荐(0) 编辑
摘要:在树形结构的集合TreeMap和TreeSet中,数据的存储的顺序和用put方法放进去的顺序是不一定相同的,因为树形结构的数据存储是根据红黑树的计算结果进行存储的,所以在我们用树形结构集合存储一个指定类型时:那么就需要给这个类型(也就是这个类)指定相应的排序规则(这个排序规则就是红黑树的计算排序法则 阅读全文
posted @ 2020-08-24 09:45 Joker-0927 阅读(725) 评论(0) 推荐(0) 编辑
摘要:掌握一个知识点:怎么使用被注解修饰的类或者方法的对象工具(对象工具是个人理解,具体介绍在反射博文)获得注解对象,一节获得注解的value值 案例:获得被指定注解修饰的类并创建其对象封装进一个Map集合中: 未被修饰的Person类: 1 package com.neima; 2 3 import j 阅读全文
posted @ 2020-08-22 14:15 Joker-0927 阅读(171) 评论(0) 推荐(0) 编辑
摘要:在多线程中,如果需要一个线程,在其他的线程执行完之后再执行,则需要我们本篇将的并发工具类:CountDownLatch类: CountDownLatch类的执行原理是: 我们设定的被等待的线程的个数会被记录在底层,当我们的一个线程执行完毕之后调用CountDownLatch类的countDown() 阅读全文
posted @ 2020-08-21 22:09 Joker-0927 阅读(126) 评论(0) 推荐(0) 编辑
摘要:在说线程池之前先提一下线程的一种创建方式: MyRuunable run=new MyRuunable();//继承了Ruunable接口的实现类的对象,其实我们可以把run看成是线程需要跑的任务 Thread th=new Thread(run);//Thread就是线程,th就是线程对象,我们把 阅读全文
posted @ 2020-08-21 20:58 Joker-0927 阅读(113) 评论(0) 推荐(0) 编辑
摘要:Properties是java中唯一一个与IO流相联系的集合,它的父类是HashTable,本质上是一个Map集合,虽然可以使用Map集合中的方法put();和set();方法 但是强烈建议不要使用put();和set();方法。因为put();和set();方法可以向集合中添加任意类型的元素,但是 阅读全文
posted @ 2020-08-21 16:19 Joker-0927 阅读(119) 评论(0) 推荐(0) 编辑
摘要:当我们把一个对象的信息存储到我们的硬盘的软件当中的时候,我们肯定不想让别人直接就可以打开文件看懂我们存储的 对象的信息,所以这时候我们就用到了输入输出流之中的对象操作流: ObjectOutputStream对象输出流 ObjectInputStream对象输入流 顾名思义Object就是代表对象, 阅读全文
posted @ 2020-08-20 22:57 Joker-0927 阅读(189) 评论(0) 推荐(0) 编辑
摘要:在IO流中说了一个区别字节流和字符流的方法:字节流人类看不懂所以都是inputstream或者outputstream 字符流人们都能看得懂,所以在起名字的时候果断而自信的加上了reader和writer,但是那只是为了区分字节流和字符流。 接下来的转换流就流批了,名字里既有inputstream或 阅读全文
posted @ 2020-08-19 19:00 Joker-0927 阅读(79) 评论(0) 推荐(0) 编辑
摘要:客户端:Socket 服务器:ServerSocket 其中服务器中要使用accept方法时刻监听有没有客户端发来访问。 accept方法的返回值是一个Socket对象,而客户端和服务器之间的信息传递是靠网络中的流的, 而网络中的流都是靠Socket对象创建的,所以可以认为服务器其实没有自己的网络流 阅读全文
posted @ 2020-08-18 22:51 Joker-0927 阅读(1593) 评论(0) 推荐(0) 编辑
摘要:在多线程中如果需要用到集合则不能使用HashMap,Arrlist等集合,在多线程的操作中容易出现错误。 因此java为我们提供了几个并发工具类包括Hashtable,concurrentHashMap,CountDownLatch和Semaphore 首先是HashTable Hashtable采 阅读全文
posted @ 2020-08-18 18:49 Joker-0927 阅读(146) 评论(0) 推荐(0) 编辑
摘要:TCP客服端的接收中: 1 public static void main(String[] args) throws IOException { 2 ServerSocket ss = new ServerSocket(10000); 3 Socket accept = ss.accept(); 阅读全文
posted @ 2020-08-18 13:36 Joker-0927 阅读(494) 评论(0) 推荐(0) 编辑
摘要:同一台机器不容程序不能用相同的端口号,不然如果前面同端口号的程序正在运行,那么后面同端口号的程序再执行就会报错: 端口号1025先执行 端口号1025的另一个程序后执行: 报错: 虽然很简单,但是遇到了就记一下吧 阅读全文
posted @ 2020-08-18 10:38 Joker-0927 阅读(177) 评论(0) 推荐(0) 编辑
摘要:UDP广播发送端: 1 public static void main(String[] args) throws IOException { 2 DatagramSocket socket = new DatagramSocket(); 3 String s = "Hello 广播"; 4 byt 阅读全文
posted @ 2020-08-18 10:33 Joker-0927 阅读(116) 评论(0) 推荐(0) 编辑
摘要:UDP组播发送端: 1 public static void main(String[] args) throws IOException { 2 DatagramSocket socket = new DatagramSocket(); 3 //组播地址224.0.0.0——239.255.255 阅读全文
posted @ 2020-08-18 10:19 Joker-0927 阅读(732) 评论(0) 推荐(0) 编辑
摘要:UDP的发送:(单播) 1 public static void main(String[] args) throws IOException { 2 DatagramSocket socket=new DatagramSocket();//到邮局(邮局开门) 3 String s="这是码头上的货 阅读全文
posted @ 2020-08-18 09:45 Joker-0927 阅读(938) 评论(0) 推荐(0) 编辑
摘要:网络编程概述: 计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来, 在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算 机系统 网络编程 在网络通信协议下,不同计算机上运行的程序,可以进行数据传输 网络编程三要素: - I 阅读全文
posted @ 2020-08-18 09:11 Joker-0927 阅读(101) 评论(0) 推荐(0) 编辑
摘要:synchronized和CAS的区别: 相同点:在多线程的情况下,都可以保证共享数据的安全性。 不同点: synchronized总是从最坏的角度出发,认为每次获取数据的时候,别人都有可能修改。 所以在每次操作共享数据之前,都会上锁。(悲观锁) ​ cas是从乐观的角度出发,假设每次获取数据别人都 阅读全文
posted @ 2020-08-17 22:20 Joker-0927 阅读(150) 评论(0) 推荐(0) 编辑
摘要:原子性的定义: 所谓的原子性是指在一次操作或者多次操作中,要么所有的操作全部都得到了执行并且不会受到任何因素的干扰而中断,要么所有的操作都不执行,多个操作是一个不可以分割的整体。简单点就是:要么这个操作不进行,要么就进行到底,就不用担心线程切换问题 count++不是一个原子性操作,他在执行的过程当 阅读全文
posted @ 2020-08-17 22:09 Joker-0927 阅读(571) 评论(0) 推荐(0) 编辑
摘要:多线程中如果两个线程同时使用第三方的共享数据,并且进行修改的话,那么就有可能出现数据更新不及时的问题原因是: 假设线程A和线程B共享第三方数据count: 线程A和线程B中都会开辟一段用来保存count值得变量副本,因为这样执行更快: 线程每次修改值都会: 先将副本中的值修改 然后赋值给副本 最后更 阅读全文
posted @ 2020-08-17 19:57 Joker-0927 阅读(132) 评论(0) 推荐(0) 编辑
摘要:阻塞队列的基本使用: 常见的阻塞队列有ArrBlockingQueue和LinkedBlockQueue 下面是它们的继承结构: ArrayBlockingQueue: 底层是数组,有界 LinkedBlockingQueue: 底层是链表,无界.但不是真正的无界,最大为int的最大值 由Block 阅读全文
posted @ 2020-08-17 18:53 Joker-0927 阅读(192) 评论(0) 推荐(0) 编辑
摘要:说到线程同步就不得不说电影院卖票的案例: 某电影院目前正在上映国产大片,共有100张票,而它有3个窗口卖票,请设计一个程序模拟该电影院卖票 分析步骤: 定义一个类SellTicket实现Runnable接口,里面定义一个成员变量:private int tickets = 100; 在SellTic 阅读全文
posted @ 2020-08-16 19:14 Joker-0927 阅读(143) 评论(0) 推荐(0) 编辑
摘要:并行和并发: 并行:在同一时刻,有多个指令在多个CPU上同时执行 并发:在同一时刻,有多个指令在单个CPU上交替执行 进程和线程: 进程:进程是正在运行的程序 是系统进行资源分配和调用的独立单位 每一个进程都有它自己的内存空间和系统资源 线程:是进程中单个顺序控制流,是一条执行路径 关系: 单线程: 阅读全文
posted @ 2020-08-16 18:56 Joker-0927 阅读(119) 评论(0) 推荐(0) 编辑
摘要:在多线程中,线程每次开启调用start();方法的时候,都会在内存中开辟一个新的栈空间让run();方法执行: 以下面的一端代码作为解析: 1 public static void main(String[] args) { 2 MyThread mt1 = new MyThread(); 3 My 阅读全文
posted @ 2020-08-15 21:47 Joker-0927 阅读(293) 评论(0) 推荐(0) 编辑
摘要:在使用split方法对字符串进行分割的时候,有些标点符号不能直接当做分割的对象: 比如:* ^ : | , . 需要加上"\\" 1 public static void main(String[] args) { 2 String s="1.2.3.4.5"; 3 String[] split = 阅读全文
posted @ 2020-08-15 13:24 Joker-0927 阅读(205) 评论(0) 推荐(0) 编辑
摘要:File和IO流概述: File类: 可以将File理解为文件或者文件夹的路径 File封装的并不是一个真正的文件 它仅仅是一个路径名,可以存在,也可以不存在 File类的构造方法: 绝对路径和相对路径: File类的创建功能: File file =new File("路径"); file.cre 阅读全文
posted @ 2020-08-14 13:35 Joker-0927 阅读(164) 评论(0) 推荐(0) 编辑
摘要:多态: 同一个对象,在不同时刻表现出来的不同形态(不必过分深究/狗头) 多态的前提条件: 要有继承实现关系 要有方法重写 要有父类引用指向子类对象 多态中成员访问的特点: 多态中成员变量的访问特点: 编译看左边,运行看左边 多态中成员方法的访问特点: 编译看着左边,运行看右边 (所以:编译时出现的错 阅读全文
posted @ 2020-08-14 11:00 Joker-0927 阅读(105) 评论(0) 推荐(0) 编辑
摘要:java中接口的意义: 用来定义规范 用来做功能的与拓展 接口的特点: 接口中各种成员的特点: 成员变量: 只能是常量,默认修饰符为:public static final 2.构造方法: 接口中没有构造方法 3.成员方法: 默认是抽象方法,默认修饰符:public abstract JDK8以后可 阅读全文
posted @ 2020-08-14 10:39 Joker-0927 阅读(135) 评论(0) 推荐(0) 编辑
摘要:final关键字的作用 final代表最终的意思,可以修饰成员方法,成员变量,类 final修饰成员方法,成员变量,类的效果: final修饰类:该类不能被继承 final修饰方法:该方法不能被重写 final修饰变量:表明该变量是一个常量,不能再次赋值 如果变量是基本数据类型:数据值不能发生改变 阅读全文
posted @ 2020-08-14 10:11 Joker-0927 阅读(107) 评论(0) 推荐(0) 编辑
摘要:继承的概念理解: 继承是面向对象的三大特征之一(封装继承多态) 可以使子类具有父类的属性和方法,还可以在子类中重新定义 子类可以使用父类的非私有成员 继承的好处与弊端 继承的好处: 提高了代码的额复用性 提高了代码的维护性 继承的弊端: 继承让类与类之间的耦合性增强,父类发生变化时子类实现也不得不跟 阅读全文
posted @ 2020-08-14 10:03 Joker-0927 阅读(115) 评论(0) 推荐(0) 编辑
摘要:今天一时手贱,改了IDEA的编码方式,结果就: 不讲废话了,说一下解决办法: 打开Setting->Editor->File Encodings->Project Encoding选择utf-8,Default encoding for properties files 也选择 UTF-8 点击确定 阅读全文
posted @ 2020-08-13 20:32 Joker-0927 阅读(3818) 评论(0) 推荐(0) 编辑
摘要:常量优化机制 在给一个变量赋值的时候,如果“=”的右边全部是常量(包括final关键字定义的常量在内)那么在编译阶段会把右边的结果赋值给左边的变量, 如果范围不超过左边的变量类型的范围(或者说属于左边的范围)那么就会赋值成功如果超过就会赋值失败。 右边如果存在变量,则不会触发常量优化机制。 Java 阅读全文
posted @ 2020-08-12 13:45 Joker-0927 阅读(994) 评论(0) 推荐(0) 编辑
摘要:今天发现Scanner键盘录入对象录入不对应的类型的时候下面的Scanner录入会一直使用上一步录入错误时的值,导致程序错误 代码效果如下: 1 public static void main(String[] args) { 2 TreeMap<Student, String> treeMap = 阅读全文
posted @ 2020-08-10 19:33 Joker-0927 阅读(215) 评论(0) 推荐(0) 编辑
摘要:哈希表是计算机存储数据的重要结构之一,其中在集合中HashSet和HashMap的底层存储结构都包含哈希表。 哈希值 又称哈希码值,是JDK根据地址或者属性值,算出来的int类型的整数 Object类中有一个可以根据对象地址获得哈希值得方法。 public inthashCode();(这是根据地址 阅读全文
posted @ 2020-08-09 20:00 Joker-0927 阅读(220) 评论(0) 推荐(0) 编辑
摘要:Map 双列集合图解: Map集合概述: Interface Map<K,V> K :键的数据类型; V :值得数据类型 键不能重复,值可以重复 键和值是一一对应的,通过键只能找到自己对应的值 每一对键值被称为键值对或者Entry对象 Map集合简单添加代码如下: public static voi 阅读全文
posted @ 2020-08-09 14:12 Joker-0927 阅读(208) 评论(0) 推荐(0) 编辑
摘要:二叉树 二叉树是由节点点组成的,每一个结点包含父节点的地址值和左右子节点的地址值以及自己的属性值,如下图所示: 二叉树的定义:每一个结点最多有不超过两个的子节点,可以没有子节点 二叉树实例: (二叉树相对简单不做过多描述) 二叉查找树 二叉查找树首先要是一棵二叉树,二叉查找树的结构特点是每一个节点的 阅读全文
posted @ 2020-08-09 10:35 Joker-0927 阅读(379) 评论(0) 推荐(0) 编辑
摘要:集合和数组的区别 数组可以存任何数据类型,集合只能存引用数据类型 如果集合想存基本数据类型,泛型中要定义它们的包装类。 数组的长度不可变,集合的长度可变 集合的体系结构 Collection集合 是单列集合的顶层接口 它提供更具体的子接口List和Set实现 Collection接口中提供的常用方法 阅读全文
posted @ 2020-08-08 19:27 Joker-0927 阅读(159) 评论(0) 推荐(0) 编辑

// 侧边栏目录