
java
文章平均质量分 85
我永远信仰
收藏从未停止,学习从不开始
展开
-
JAVA并发编程总结
总结JDK提供的并发类的玩法和陌生概念和注意事项,也是自己总结的java并发经验原创 2022-10-29 17:56:45 · 1908 阅读 · 0 评论 -
Java8时间和日期API
时间和日期API(记录下来当成字典查用了)旧版日期时间API存在的问题设计很差:在java.util和java.sql的包中都有日期类,java.util.Date同时包含日期和时间,而java.sql.Date仅包含日期。此外用于格式化和解析的类在java.text包中定义。非线程安全: java.util.Date是非线程安全的,所有的日期类都是可变的,这是Java日期类最大的问题之一。时区处理麻烦:日期类并不提供国际化,没有时区支持,因此Java引入了java.util.Calen原创 2021-08-25 15:31:24 · 428 阅读 · 0 评论 -
Java8新特性
Java8新特性面试问到你Java8的新特性,你能答上来吗Java现在更新到了很高的版本,不过不建议它一更新我们就去了解、就去学。因为很少概率能用的到,现在很多公司或企业使用的版本都是比较低的。新版本需要经过岁月的考验,才能知道哪些特性是好用的哪些是不好用的。Java8可以看成自Java5以来最具有革命性的版本,**非常推荐**学习Java8的新特性。在学习的时候,会遇到的非常多听着、看着都一头雾水的概念。不要被劝退,看代码,带着疑问去学习。怎么去实现?它能用来干嘛?第一遍学习完过后,只是给自己了原创 2021-08-25 14:34:12 · 2848 阅读 · 0 评论 -
JAVA进阶——JVM
1、JVM现在人们对jvm(Java虚拟机)的探究式越来越深了,如果我们想当一名java程序员,jvm是我们必须要跨过去的一道坎。学习Java的人对jvm这个词并不陌生,来了解一下java的进阶知识Java虚拟机吧!学习jvm的方法:jvm的大多数知识点,我们真正要去实现的并没有几个,很多都是以理论学习为主。善用百度和思维导图(参考别人画好的,非常丰富),通过思维导图或者百度,把一个点一个点搞清楚。1.1、 JVM与操作系统之间的关系?jvm是运行在操作系统上的,操作系统是jvm的下一层。jv原创 2021-08-21 23:52:13 · 2660 阅读 · 12 评论 -
Java基础——注解和反射
1、注解java中的注解我们已经见过非常多了,现在来深入了解一下。什么是注解(Annotation)Annotation是从JDK5.0开始引入的新技术.(现在不算新了)Annotation的作用:不是程序本身,可以对程序作出解释(这一点和注释(comment)没什么区别可以被其他程序(比如:编译器等)读取.Annotation的格式:注解是以"@注释名"在代码中存在的,还可以添加一些参数值﹐例如:@SuppressWarnings(value=“unchecked”).Annot原创 2021-08-15 21:39:32 · 779 阅读 · 5 评论 -
Java基础——网络编程
文章目录网络编程1.1 概述1.2、网络通信的要素1.3、IP1.4、端口1.5、通信协议1.6、TCP模拟通信文件上传1.7、UDP1.8、URL网络编程1.1 概述1.2、网络通信的要素如何实现网络通信?1.网络编程中有两个主要的问题如何定位到网络上的一台或者多台主机使用cmd——>ping命令,ping一个域名,可以看到访问的主机的IP地址[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ztQmkDEl-1628853105623)(D:\lea原创 2021-08-13 19:13:03 · 418 阅读 · 0 评论 -
Java基础——集合体系结构
1.Collection1.1 集合知识集合类的特点:提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变1.2 集合的体系结构1.3 Collection集合概述和使用Collection集合概述是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素JDK不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现创建Collection集合的对象多态的方式具体的实现类ArrayList1.4 Collection集合原创 2021-08-08 22:57:34 · 2283 阅读 · 0 评论 -
ClassCastException: com.collection.Student cannot be cast to java.lang.Comparable
出现问题,那就寻找解决问题的方法:去jdk文档里查看Comparable接口原因是我们没有让实体类自然排序,所以实体类需要实现这个接口,并重写他的自然比较方法这里举个例子说明:自然排序 Comparable的使用题目要求:存储学生对象并遍历,创建TreeSet集合使用无参构造方法按照年龄从小到大排序,年龄相同时,按照姓名的字母顺序排序//学生类public class Student { private String name; private int age;原创 2021-08-08 17:05:59 · 1566 阅读 · 0 评论 -
(源码剖析)HashSet集合是如何保证元素的唯一性
HashSet集合特点底层数据结构是哈希表对集合的迭代顺序不作任何保证,也就是说不保证存储和取出的元素顺序一致没有带索引的方法,所以不能使用普通for循环遍历由于是Set集合,所以是不包含重复元素的集合HashSet集合保证元素唯一性的源码分析HashSet<String> hashSet = new HashSet<>();//添加元素hashSet.add("java");hashSet.add("hello");hashSet.add("world");原创 2021-08-08 14:27:16 · 369 阅读 · 0 评论 -
JAVA基础——IO流
文章目录1、IO流1.流和流的分类2.如何使用流1、输入流(读文件):FileInputStream2、输出流(写文件):FileOutputStream3.文件的拷贝1、IO流1.流和流的分类什么是IO流?I:Input (输入)O: Ouput(输出)通过IO可以完成硬盘文件的读和写[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c07fTZ3S-1628331326228)(D:\learningappDataSave\Typora\image\image-原创 2021-08-07 18:16:17 · 138 阅读 · 0 评论 -
JAVA基础——多线程(二)
3、线程同步1、三大不安全案例1.不安全的买票每个线程都在自己的内存交互,内存控制不当会造成数据不一致。当多个线程同时进入临界区的时候,他们看到的都是同样的票数,一个线程买了票后,执行了票数–,另一个线程在这基础上又执行了一次,就会出现负数。比如当票只剩一张了,a、b同时进入临界区,买了两张票,所以会出现-1。另一种情况是,他们同时对票数–,所以买了两张票后,发现票数只减了一次。//不安全的买票,线程不安全public class UnsafeBuyTicket { public st原创 2021-08-07 09:17:05 · 195 阅读 · 0 评论 -
JAVA基础——多线程(一)
文章目录1、线程、进程、多任务多任务多线程程序(进程)多进程与多线程的区别多线程解释2、线程状态1.新线程创建(new)三种创建方式:(只关注前两种)方法1方法2总结方法三(了解即可)2.线程停止3.线程休眠4.线程让步5.线程强制执行(插队)6.观测线程状态7.线程的优先级8.守护(daemon)线程1、线程、进程、多任务多任务首先需要了解操作系统中的多任务:在同一时刻运行多个程序的能力。例如,在编辑或下载邮件的同时可以打印文件。多线程程序(进程)多线程程序在较低的层次上扩展了多任务的概念:一原创 2021-08-06 13:11:11 · 192 阅读 · 0 评论 -
JAVA的反射机制
文章目录JAVA的反射机制1、反射机制2、Class类3、如何获得Class类型的实例?4、构造类的实例化对象5、获取类的所有信息1、获取类中的Field(变量)2、获取类中的Constructor(构造器)3、获取类中的Method(普通方法)JAVA的反射机制反射是框架设计的灵魂。1、反射机制在运行状态中,对于任意一个类,都能够查看这个类的所有属性和方法在运行状态中,对于任意一个对象,都能够调用他的任意一个方法和属性反射是一种功能强大且复杂的机制反射的应用场景1、Spring 实例原创 2021-07-22 18:36:58 · 194 阅读 · 1 评论 -
JDK1.8新特性(一)
文章目录JDK1.8新特性1.Lambda表达式JDK1.8新特性1.Lambda表达式lambda表达式本质上是一段匿名内部类,也可以是一段可以传递的代码先举个例子,展示Lambda最直观的优点:简洁代码。(1)先定义一个功能性接口,因为实现这个接口就是为了实现某一个单一的功能(2)接下来,来实现这个功能。以前的做法,声明自定义的接口,然后再指向匿名内部类现在使用Lambda表达式,极大的减少了代码量。知识点:Java提供了一个新的操作符"->" 这个操作符之前有一个原创 2021-06-24 18:08:32 · 818 阅读 · 3 评论 -
JAVA初始化的执行顺序
JAVA初始化规则知识点:① 在一个类的内部,定义变量先后的顺序会决定变量初始化的顺序(先来先初始化,很好理解)。即时变量定义得很分散,比如分散在一些方法之间,它们仍会在任何方法(包括构造方法)被调用之前被初始化(执行任何方法前,变量定会先被初始化)。② 无论创建多少个对象,静态数据都只占用一份内存区域,static关键字定义的变量作用范围是域举个反例,比如我们经常用得for循环定义的i变量,那么他在这个循环外就失效了,这是作用于局部)。static不能作用于局部(不能在for 定义stati原创 2021-06-23 19:55:29 · 293 阅读 · 0 评论 -
什么是JVM的垃圾回收
什么是JVM的垃圾回收? 顾名思义就是释放垃圾占用的空间,防止内存泄露。有效的使用可以使用的内存,对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收。垃圾回收技术是一项不断改进与优化的技术,要想理清垃圾回收的机制,需要搞清楚下面这三个问题。一:那些垃圾需要回收?判断对象需要回收有两种算法。一种是引用计数算法,一种是可达性分析算法。引用计数算法给对象的引用进行计数(统计),它通过记录对象被引用的次数从而判断该对象的重要程度。每原创 2021-06-23 00:56:31 · 232 阅读 · 1 评论 -
由0到4五个数字,组成5位数,每个数字用一次,但十位和百位不能为3(当然万位不能为0),输出所有可能的五位数。
java实现由0到4五个数字,组成5位数,每个数字用一次,但十位和百位不能为3(当然万位不能为0),输出所有可能的五位数。思路:直接穷举法,暴力输出(想不到其他的……)从0~4条件控制,如果数值重复,则continue,不理会。否则输出这个数运行结果:代码:public static void main(String[] args) { int count=0; int k=0; //控制换行 for(int w=1;w<=4;w++原创 2020-11-16 21:42:25 · 921 阅读 · 0 评论