Java
文章平均质量分 91
PMickey
什么都没有写,但是我也不懒好吧
展开
-
Android:简单实现外卖购物车思路分享
思路要实现以下两个重要模块:1.在中间大部分处展示所有食物的列表(需要一个RecyclerView)2.需要一个购物车按钮,点击后从底部弹出购物车,显示选择的餐品列表,和总金额(需要一个实现从底部出现窗口的BottomSheetDiaLog和一个展示已选餐品列表的RecyclerView)实现1.所有食物列表(1)select_food_layout.xml<?xml version="1.0" encoding="utf-8"?><androidx.cardview.wi原创 2021-05-03 20:04:27 · 1711 阅读 · 6 评论 -
Java线程:sleep(),wait(),await(),park(),yield()异同总结
各方法介绍sleep()方法:原创 2020-08-16 19:11:16 · 946 阅读 · 3 评论 -
算法:二叉树相关题型总结
前言 这个博客会列出常见的有关二叉树的面试题目并给出算法思想。总体目录如下:DFS(深度优先遍历) 先序遍历 中序遍历 1.判断是否是二叉搜索树 2.根据二叉搜索原创 2020-07-29 23:54:12 · 440 阅读 · 0 评论 -
Java:compareTo()方法
首先compareTo()是String的比较方法,int类型不可用,直接用大于小于等于基本符号比较。如果有特殊需要,可以把int用String.valeOf(int num)转换成String类型,比如说leetcode的179题“最大数”。调用compareTo()一般可以分为以下的几种情况:s1.compareTo(s2):1.首字母不同,返回首字母的asc码差值,s1 - s2的值2.首字母相同就继续往下比较,如果比较到了一个不同的asc码值,比如s1 = “abc”,s2 = “abb”,原创 2020-07-06 22:03:23 · 4664 阅读 · 0 评论 -
一个小项目:JavaFx实现50道加减法
前言太长时间没写博客了,其实这期间学了很多东西,但都是在记笔记没发过博客,这次借着学校的作业学了个新东西javaFx,比swing界面好看很多也方便很多,所以根据这个小项目准备写一篇博客,记录一下初学的javaFx,因为只学了四天,掌握的只是皮毛,所以如果有什么不妥的地方欢迎指正!项目介绍要求:java编写小程序,完成随机生成50道一百以内的不重复的加减法,可能需要输出混合运算。思路:首先要编写习题类,用于生成简单的两个数运算习题;再编写混合运算类继承习题类,用于生成混合的加减法运算习题;由于需要图原创 2020-06-05 11:48:41 · 1475 阅读 · 2 评论 -
Java:保证线程安全的加锁机制之ReentrantLock
前言 在保证线程安全的机制 同步阻塞 中,加锁方式除了synchronized还有一个不同于它的,需要手动加锁解锁的方式:ReentrantLock类的实现。一、Lock...原创 2020-02-22 23:23:59 · 484 阅读 · 0 评论 -
Java:保证线程安全的加锁机制之synchronized
前言 在解决线程安全的方法里,有一个方法是阻塞同步,这篇文章就来详细说其中的synchronized。一、synchronized关键字作用:提供了一种锁,能够保证共享变量的互斥访问,从而防止数据不一致问题的出现。用法:(1)加在方法声明中: public synchronized void method(){ //给调用该方...原创 2020-02-21 23:47:34 · 378 阅读 · 0 评论 -
Java:并发编程与线程安全
一、并发编程相关概念定义:并发编程指 为了提高程序的执行速度,在宏观上使得多个线程同时执行。三大特性:(1)原子性:指在一次或多次操作中,要么全部得到执行,要么全部不执行。原子操作不可被中断,所以不用加同步。(ReentrantLock,synchronized可以确保原子性,volatile不能。)(2)可见性:指当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能...原创 2020-02-20 16:35:52 · 119 阅读 · 0 评论 -
Java:线程的一些重要方法
一、start() 生成线程对象后,需要调用start方法来使进程执行。但需要注意调用start()后线程只是立即处于Runnable状态,不一定直接运行,也可能正在排队等待cpu资源。 start()底层可以看做是调用了run()方法。首先start()从CPU中申请不同于当前线程的另一个线程空间来执行run()中的代码,也就是说当前线程和star...原创 2020-02-19 20:55:46 · 134 阅读 · 0 评论 -
Java:线程的基本认识与四种创建方法
前言代码之前必须明确概念,所以这里列出重要概念。首先,线程的定义:一个程序可以同时执行多个任务,每一个任务称为一个线程。 然后要明确一个知识点,也是容易混淆的知识点:线程与进程的具体区别。理解区别,以下重点记忆:1.最小单位:进程是资源分配的最小单位,线程是cpu调度的最小单位。2.地址空间:进程拥有独立的地址空间,线程共享地址空间。( 因为共享所以线...原创 2020-02-18 20:46:25 · 150 阅读 · 0 评论 -
Java:集合框架的简易整体总结
一、概述:1.什么是Collection?它是集合框架的底层,一般不使用。即:Collection是集合层次结构中的根接口,存储的是一组对象,一般不会使用它去操作集合。2.集合的三个特点:(1)是否允许有重复元素(2)是否元素有序【add的顺序和get的顺序是一样的】(3)是否允许存放null值3.Collection有很多子接口,而其中最重要最常用的就是List/Set/Queue三...原创 2020-01-14 22:42:12 · 99 阅读 · 0 评论 -
Java:HashMap的总结
HashMapHashMap综合了数组和链表的优点,是一个查询,插入删除都容易的数据结构。(1)创建步骤:①通过hash算法,找到与key对应的存储位置②访问该位置的value,与当前的value的比较,如果相等就返回,不相等找这个位置对应的链表中的值。(2)哈希冲突的解决:①链地址法:key一样的插入元素就链接到那个结点之后。(数组和链表的结合)②开放地址法:在插入一个元素的时候...原创 2019-11-23 13:21:53 · 229 阅读 · 0 评论 -
Java:递归
递归一、概述定义:递归是在函数的定义中使用函数自身的方法递归是一个通过提取重复逻辑来减少代码量的一个很好的方法,很多复杂问题可以通过递归可以轻松实现,这是因为这些问都可以被分解成逻辑相同的若干小问题,大而化之,控制好结束条件,问题就可以迎刃而解。递归的三要素:1)明确递归终止条件2)给出递归终止时的解决办法3)提取重复的逻辑,缩小问题的规模二、实例代码1.二分查找代码: ...原创 2019-10-16 14:32:52 · 107 阅读 · 0 评论 -
Java:数据结构-链表
1.单链表(1)带头结点单链表(2)不带头结点单链表(3)循环单链表(带头结点)2.双向链表(1)带头结点双向链表(2)不带头结点双向链表(3)循环双向链表(带头结点)原创 2019-10-13 17:16:14 · 191 阅读 · 0 评论 -
Java:class2 简单语句与运算符
简单语句for,while,if else等与C一致,只记录了不同或不太清楚的内容。1, switch(str){ case"A":System.out.println(“good”);break; //switch()中可以放byte,short,int,char,string,...原创 2019-06-21 19:28:47 · 143 阅读 · 0 评论 -
Java:class3 一维、二维数组
一维数组的定义,遍历,拷贝,扩容与缩容1.一维数组:是相同数据类型的集合,一块连续内存数组的定义:定义方式一:int []arr=new int[]{1,2,3};定义方式二:int []arr=new int[5]; //默认值:0定义方式三:int []arr={1,2,3}2.new:在堆上开辟内存...原创 2019-06-21 19:46:36 · 210 阅读 · 0 评论 -
Java:【快速排序优化】与线性时间选择结合
快排在最坏情况下复杂度会达到O(n^2),需要进行优化。:可以使每次的基准前后序列长度都大致相同,避免最坏情况的发生,所以需要使用一个线性级别的算法来找出序列的中位数:select线性时间选择算法。实现源码:package Keshe;import java.util.Arrays;public class Test { private static Comparable[]...原创 2019-07-03 00:12:22 · 375 阅读 · 0 评论 -
Java:class4 类和对象
1.类:定义一个学生类,学生类主要由两部分组成 属性:(是什么) class People{ 姓名 String name; 年龄 int age; ...原创 2019-07-12 11:01:25 · 399 阅读 · 0 评论 -
Java:class5 类的重载,final,static
一、函数的重载(同一个类中):条件:1.函数名相同2.参数列表不同(个数,类型)二、this():调用当前类中的构造方法注意:1.this()必须位于当前构造方法有效代码的第一行2. 构造方法不可以相互调用3.一个构造方法内不可以调用多个构造方法(与第一条冲突)二、static1.静态变量和实例变量的区别:1.实例变量和对象有关,一个对象(一次new)对应一份成员变量 thi...原创 2019-07-12 11:02:18 · 200 阅读 · 0 评论 -
Java:class6 继承
1.extends: 继承,避免了代码的重复。 //默认:继承Object其中Student是子类;People是父类或基类。2.若父类的属性方法定义成了private,子类虽然继承了,但却没有访问权限。3.super()用于调用父类的构造函数,让父亲去初始化。4.this与super:this.成员变量:this指向当前对象this.成员方法:this() 调用当前类中其他的无...原创 2019-07-12 11:03:59 · 155 阅读 · 0 评论 -
Java:class7 异常处理,接口
异常处理一、异常分为ERROR(不可处理异常)和Exception(可处理异常):Throwable->ERROR,Exception而Exception分有编译期异常和运行期异常。1.运行期异常1).NullPointerException 空值异常2).ArithmeticException 除以0的异常3).InputMismatchException 输入的异常4...原创 2019-07-12 11:05:31 · 242 阅读 · 0 评论 -
Java:class8 类加载,链接,初始化三大阶段
一、加载1.java文件被编译成class字节码文件,字节码文件被类加载器从磁盘加载到内存上。2.魔数标志着文件的类型3.系统提供的类加载器:①Boostrap ClassLoader:启动类加载器,主要加载jre/lib/re.jar,该目录下的所有jar包都是运行JVM时所必需的jar包。p.s.类加载器其实自身也是一个JAVA类,因此,自身类加载器需要被其他类加载器进行加载后方可使用...原创 2019-07-12 11:16:27 · 731 阅读 · 0 评论 -
Java:class9反射机制,class对象
一.反射机制程序再运行时候能够获得自身类的信息。只要有类名就能使用反射机制。java程序运行的过程:(1).java-----------javac编译,生成.class文件(字节码文件)---------运行时字节码文件转换为一个class对象。(2)反射机制可以获取到的信息:①属性(Fields) ②成员方法(Methods) ③构造方法(Constructor)二.Clas...原创 2019-09-27 17:55:39 · 279 阅读 · 0 评论 -
Java:多态的总结
多态的综述首先,我们要先清楚多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式,这个消息也就是方法的调用。多态是java的四大特性之一,它的实现原理(一般是指动多态)是地址覆盖,它遵循【当父类对象引用变量引用子类对象时,被引用对象的类型而不是引用变量的类型决定调用谁的成员方法(前提是这个方法是在父类中定义过的,也就是已经被子类重写过的方法...原创 2019-09-30 18:20:35 · 176 阅读 · 0 评论 -
Java:class1 数据类型
JAVA数据类型1.byte:1字节2.long:8字节3.char:2字节4.boolean:不讨论字节数,不分0/1,只是ture/false5.基本结构:public class TestDemo{public static void main(String[]args){}}6.输出:System.out.printf("%d",10) ...原创 2019-06-21 19:19:38 · 546 阅读 · 0 评论