自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 云计算和大数据技术---学习笔记

云计算和大数据技术Part 1 云计算基础思维导图:练习题:Part 1 云计算基础思维导图:练习题:云计算技术是硬件技术和网络技术发展到一定阶段而出现的一种新的技术模型,通常技术人员在绘制系统结构图时用一朵云来表示网络与传统的资源提供方式相比,云计算具有什么特点?答:资源池弹性可扩张、按需提供资源服务、虚拟化、网络化的资源接入、高可靠性和安全性按照资源层次分类,云计算可分为基础设施即服务IaaS、平台即服务PaaS、软件及服务SaaS三种类型云计算领域存在两个主要的基础路线,一个是基于

2021-12-26 23:57:18 2056

原创 Java思想 Part2 --- 一切都是对象

第二章 一切都是对象概览概览

2021-10-24 10:23:31 598

原创 Java思想 Part 1---对象入门

对象入门对象入门对象入门概览一、抽象、对象与方法二、继承:重新使用接口1.改善基础类2.等价与类似关系三、对象的创建与存在四、多型对象五、其他概览一、抽象、对象与方法计算机的发展本质上就是层层的抽象。当寄存器抽象为01单元,当复杂线路不考虑实现,抽象为运算器、寄存器,这些小组件再次抽象为笼统的CPU,CPU和更多的组件被抽象为电脑…对于任意事务都可以抽象的去理解,将其视为对象,不考虑其具体实现,只考虑其暴露出来的方法。计算机软件系统是现实生活中的业务在计算机中的映射,而现实生活中的业务本质上是

2021-10-18 16:51:42 433

原创 2021-10-08 Java思想---学习计划与概览

概览Think in Java共有17章,每一张对应的内容如思维导图所示。学习计划因为暑期实习已经结束,即将重回校园,秋招也已尘埃落定。为了不荒废时间虚度光阴,在大四上学期至实习之前,预计读完Java编译思想、疯狂Android、深入理解Android内核。重读Java并发艺术、高效Java、JVM虚拟机。首先是Java编译思想,共有17章,为每一章的学习编写学习笔记。除13章的GUI部分可以略读,其余部分需要认真理解。...

2021-10-08 11:54:54 196

原创 摸鱼日记09/24 Android基础---Handler

1.Handler 的作用、要素以及流程答:负责跨进程通信,这是因为在主线程不能做耗时操作,而子线程不能更新UI,所以当子线程中进行耗时操作后需要更新UI时,将通过Handler将有关UI的操作切换到主线程中执行。拥有四大要素:Message(消息):需要被传递的消息,消息分为硬件产生的消息如按钮、触摸和软件生成的消息。MessageQueue(消息队列):负责消息的存储与管理,负责管理有Handler发送过来的Message。读取会自动删除消息,单链表维护,插入和删除上有优势。其next是无限循

2021-09-24 09:57:07 178

原创 操作系统复习问答

1. 操作系统的四个特性并发:同一段时间内多个程序执行(注意区别并发和并行,并发是同一时间段多个任务执行,并行是同一时间点多任务执行)共享:系统中的资源可以被内存中多个并发执行的进线程共用虚拟:通过时分复用(如分时系统)以及空分复用(如虚拟内存)技术实现把一个物理实体虚拟为多个异步:系统中的进程是以走走停停的方式执行的,并以一种不可预知的速度推荐。2.操作系统的主要功能处理机管理:处理机分配都是以进程为单位,所以处理机管理也被看做是进程管理。包括进程控制,进程同步,进程通信和进程调度存储器

2021-09-24 09:55:39 791

原创 实习日记 09/07 day44 高效Java---类与接口

概览类与接口是Java程序设计语言的核心,也是Java语言的基本抽象单元。Java语言提供了许多强大的基本元素,供程序用来设计类和接口。首先老生常谈的设计模式的六大原则:开闭原则对扩展开放,对修改关闭里式代换任何基类可以出现的地方,子类一定可以出现。LSP是继承复用的基石,只有当派生类可以替换掉其他基类,且软件单位的功能不受到影响时,基类才能真正被复用,而派生类也能够在基类的基础上增加新的行为。就好像花木兰替父从军,她也能打仗,而且由于扩展了年轻的功能,她还能更好的发挥自己的特性。。同时李氏

2021-09-23 11:29:31 446

原创 摸鱼日记09/23 Android基础---Android中的线程

线程线程池的好处与使用场景,和具体参数与底层实现Android中独有的线程类AsyncTask原理AsyncTask的参数使用AsyncTask的注意事项AsyncTask使用不当的缺点HandlerThread的使用IntentService的使用分析IntentService和Service的区别线程池的好处与使用场景,和具体参数与底层实现答:使用线程池的好处是减少在创建和销毁线程上所花费的时间以及系统资源的开销,解决资源不足的问题。如果不使用线程池,有可能造成系统创建同类线程而导致消耗完内存或有过

2021-09-23 10:11:29 244

原创 剑指Offer题目5:从尾到头打印链表

题目:输入一个链表的头结点,从尾到头反过来打印每个节点的值题解:想要反输出一个链表,必然会遍历整个链表,此时可以考虑使用栈来实现。当然也可以使用递归调用的方法public class PrintListNode { public void useStack(ListNode head){ Stack<ListNode> stack=new Stack<ListNode>(); while (head!=null){

2021-09-22 20:13:18 120

原创 剑指Offer题目4:二维数组中的查找

题目:在一个二维数组中,每一行都按照从左至右递增的顺序排序,每一列都按照从上到下递增的顺序排列。请在此数组中查找确定数字N题解:思考二分查找的思想,在排序好的数列中一次性排除一半的数字,当遇到排序好的数组时,应当考虑到排序的方法来解决问题。对于此题又有点特殊,但对于一个二维数组,只有精确的找到其中心点,保证某一部分统一比中心点大,某一部分统一比中心点小,对于一个二维数组,看做一个矩阵,那么其右上方的定点一定比左边行的都大,比下方列的都小,依据此方法可以写出算法:public class Double

2021-09-22 19:52:24 111

原创 实习日记 09/06 day43 高效Java---toString、clone和Comparable

概览始终要覆盖toString在实际应用开发中,toString应当返回对象中包含的所有指的关注的信息,这样在实际开发的时候,可以通过toString打印出一切你想知道的信息,在输出日志的时候至关重要。无论是否指定格式,都为toString返回值中包含的所有信息,提供一种编程式的访问途径。谨慎的覆盖clone @Override protected Object clone() throws CloneNotSupportedException { retur

2021-09-22 16:44:48 374

原创 实习日记 09/03 day42 高效Java---Equals

概览Object是一个具体得类,设计它的目的是为了扩展,它所有的非final方法(equals、hashCode、toString、clone和finalize)都有明确的通用约定,因为他们被设计成要覆盖的,任何一个类,它覆盖这些方法的时候,都有责任遵守这些通用约定,其他依赖于这些约定的类,就无法正常工作。覆盖Equals时需遵守的约定覆盖equals方法看起来比较简单,但是覆盖方式会导致错误,并且会造成严重的后果。最容易避免这种问题的方法就是不覆盖equals方法,在这种情况下,类的每个实例都只与

2021-09-22 10:39:57 345

原创 摸鱼日记 09/22 Android基础--Fragment

概览Android四大组件为Activity、Broadcast、Service、ContentProvider,但还有一个重要的组件Fragment,就像路飞是新晋五皇一样,虽然出道晚,但是在生命周期、使用频率上不输于四大组件,它可以灵活地加载到Activity中。Fragment的定义Fragment是显示在Activity中的Activity,Activity可以视为一个较大的项,每次切换Activity都不可避免的有转跳画面的产生,Fragment存在于Activity中,也可以显示一些内容

2021-09-22 09:56:00 160

原创 摸鱼日记09/18 day9 Android基础---ContentProvider

啥是ContentProvider内容提供者(Content Provider)主要用于在不同的应用之间实现数据共享的功能,他提供了一整套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访问数据的安全性。目前内容提供者是Android实现跨平台共享数据的标准方式。不同于文件存储和SharedPreferences存储中的两种全局可读可写操作模式,内容提供者可以选择只对那一部分内容进行共享,从而保证程序的隐私数据不会泄露的风险。uri:指定查询某一个程序的某一张表projection:

2021-09-18 17:54:45 174 1

原创 剑指Offer:题目3----数组中的重复数字

题目:在一个长度为n的数组里所有的数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道几个数字重复,也不知道每个数字重复了几次,请找出任意一个重复数字。答:一开始的想法是n方的双循环查找方法,一个一个找,有重复就直接返回值后来想优化为时间为n的复杂度,那么可以采用桶排序: public int solution(int[] nums){ int[] bucket=new int[nums.length]; for(int i=0;i<nums.le

2021-09-18 16:50:18 145

原创 剑指Offer--题目2:实现单例模式

什么是单例模式:剑指Offer我买的是C++版本的,我仿照C++写Java的示例代码单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。简单理解就是对于一个类来说,它的对象是特殊的,也就是说它的对象只能存在0和1个。方案一:只适用于单线程的写法:

2021-09-18 16:21:16 149

原创 剑指Offer题目7:根据遍历重构二叉树

import java.util.Arrays;public class Offertest { public class TreeNode { //二叉树的构造方法 int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } } /**** * 重构二叉树 * 前序遍历: 1 2 4 7 3 5 6 8 * 中序遍历 4 7

2021-09-18 11:19:39 111

原创 摸鱼日记 09/17 day8 Android基础---Broadcast

啥是Broadcast在Android中没有一种广泛运用于应用程序之间传输信息的机制,Android中我们发送广播内容实际上是一个Intent,在这个Intent中可以携带我们要发送的数据。应用:同一app内有多个进程的不同组件之间的消息通信不同app之间的组件消息通信广播的种类:无序广播context.sendBroadcast(Intent)方法发送广播,不可被拦截,当发送的数据,接受者是无法修改的。类似于自来也的忍术:手里剑全部扔出之术。有序广播context.sendO

2021-09-18 10:02:44 129

原创 摸鱼日记 09/16 day7 Android基础----Service

Service基础service是一个可以在后台长时间运行的操作的没有用户界面的组件,运行于UI线程,因此不能进行耗时操作。由于Service是运行在UI线程中的,是绝对不能进行耗时操作的,而Thread开启的子线程是可以进行耗时操作的,但是Thread开启的子线程不能直接对UI进行操作,否则极有可能直接让程序崩溃。Service的启动方式StartService()方式开启的Service步骤:定义一个类继承Servcie在AndroidManifest.xml文件中配置该Service

2021-09-17 17:30:40 184

原创 摸鱼日记09/15 day6 Android基础---Activity

Activity概览1. ActivityActivity的形态生命周期异常情况下的生命周期Android任务栈简介Android的启动模式系统默认的启动模式Standart:singleTop启动模式singleTasksingleInstance模式IntentFlag 启动清空任务栈Activity组件之间的通信概览1. ActivityActivity是整个Android app直接与用户进行交互的核心组件,是用户交互的第一接口,提供了一个用户完成指令的窗口,当开发者创建Activity之后

2021-09-17 17:06:48 416

原创 实习日记 09/02 day41高效Java -- 创建和销毁对象

概览

2021-09-17 09:31:09 123

原创 数据结构练习 ----总结

概览

2021-09-16 09:38:32 95

原创 摸鱼日记 09/14 day5 Android内核--Android启动!

概览Android设备的启动流程经过3个阶段,Boot Loader,Linux kernel和Android系统服务,严格来说Android系统实际上是运行于Linux内核之上的一系列服务进程,并不能算是一个完整意义上的操作系统。作为Android第一个进程,init将通过解析init.rc来陆续启动其他关键的系统服务进程,其中最重要的就是ServiceManager,Zygone和SystemServerAndroid中的DNS服务器—ServiceManager孕育新线程和进程—Zygot

2021-09-15 18:39:45 128

原创 摸鱼日记 09/13 day4 Android进阶之光---网络编程与架构

概览网络分层网络分层就是将网络节点所需要的数据的发送或者转发、打包或者拆包,以及控制信息的加载或者拆出等工作。物理层该层负责比特流在节点间的传输,即负责物理传输。该层的协议与链路有关,与传输介质也有关系数据链路层该层控制网络层与物理层之间的通信,主要功能是如何在不可靠的物理线路上进行可靠的数据传输,为保证传输,从网络层接受到的数据被分割成特定可被物理层传输的帧,帧是用来移动数据的结构包,它不仅仅包括原始数据,还包括发送方和接受方的物理地址以及纠错和控制信息。其中地址包括帧将发往何处,而纠错

2021-09-15 14:34:19 142

原创 数据结构练习---HashMap

概览import java.util.HashMap;import java.util.Map;public class HashMapTest { public static void main(String[] args) { HashMap<String,Integer> map=new HashMap<>(); map.put("龙与虎",99999); map.size(); map.get(

2021-09-15 10:33:52 185

原创 摸鱼日记09/10 day3 安卓设计内核---Android进程/线程管理

概览

2021-09-15 09:27:15 138

原创 实习日记 09/01 day40 java并发艺术--Java中的线程池

概览Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。线程池的好处:降低资源消耗通过重复利用已创建的已创建的线程降低线程创建和销毁造成的消耗提高响应速度当任务到达时,任务可以不需要等到线程创建就能立即执行提高线程的可管理性线程是稀缺资源,如果无限的创建,不仅会消耗资源系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。Executor框架在HotSpot VM的线程模型中,Java线程(java.lang.Thr

2021-09-14 16:38:01 117

原创 数据结构练习---堆

概览堆是一种二叉树,像金字塔一样,顶部是最大,或是最小值,每一子树都比节点小或是大。package heap;/** * 什么是堆,堆是一颗具有特定性质的二叉树。堆的基本要求是堆中的所有节点的值必须大于或等于其孩子节点的值 */public class Heap { public int[] array; public int count; public int capacity; public int heap_type; public Heap(in

2021-09-14 14:43:19 286

原创 实习日记 08/31 day39 Java并发艺术--Java并发容器和框架

概览ConcurrentHashMap线程不安全的HashMap在多线程情况下,使用HashMap进行put操作会引起死循环,所以在并发情况下不可以使用HashMap public static void main(String[] args) throws InterruptedException { final HashMap<String,String> map=new HashMap<String,String>(2); Thre

2021-09-14 09:00:47 158

原创 实习日记 08/30 day38 Java并发艺术---初步学习JUC

JUC工具类概览Lock接口概览Lock接口锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁可以防止多个线程同时访问共享资源,有些锁例外,如读写锁

2021-09-13 17:26:28 200

原创 摸鱼日记09/09 day2 Android设计内核 ---操作系统基础

概览操作系统概念操作系统主要负责两个层面的任务:面向下层管理硬件。这里的硬件是笼统的概念,他包括CPU、内存、Flash、各种I/O设备等系统中的所有的硬件元素面向上层操作系统要为用户提供可用的人机交互界面,同时也要为第三方程序提供便捷、可靠、高效的API。这样的应用上层就不用之间面向硬件,从而大大的缩短了应用开发时间。计算机操作系统是负责管理系统硬件,并为上层应用提供稳定编程接口和人机交互界面的软件集合...

2021-09-13 16:55:52 317

原创 数据结构练习---排序

排序算法对于排序算法我个人将排序分为三大类算法排序结构排序特殊排序对于算法排序分为:简单排序(冒泡排序、选择排序、插入排序)复杂排序(希尔排序、归并排序、快速排序)对于结构排序分为:堆排序和树排序对于特殊排序分为:基数排序、计数排序、桶排序public class sortTest { /** * 冒泡排序 * @param A * @param n */ public void BubbleSort(int A[],int n)

2021-09-13 11:54:13 120

原创 摸鱼日记09/08 day1 Android设计内核 ---Android系统基础

Android系统基础概览Android系统发展历程Android系统的特点Android系统框架两个月前,我作为一名Java实习生入职亚信科技,在这里学到了很多,老大和组长都对我很照顾,也独自负责了一个小的需求。但是我还是没忘记,当初我是应聘Android开发进的公司,结果稀里糊涂的被安排进缺人手的Java后端实习岗位,然后一干就是两个月。如果再不复习我的Android技能,恐怕以后就真的与Android无缘了,所以从今天开始除了实习日记,还要多写一篇Android日记,来加强我的Android技能。

2021-09-08 16:58:59 185

原创 数据结构练习--斐波那契数列的四种写法

package DP;public class Fibonacci { /** * 斐波那契数列初级 * @param n * @return */ public int RecursiveFibonacci(int n){ if(n==0){ return 0; } if(n==1){ return 1; } retur

2021-09-08 15:23:23 208

原创 数据结构练习----二叉树

package TreeNode;import sun.misc.Queue;import java.util.ServiceConfigurationError;import java.util.Stack;public class BinaryTreeNode { private int data; private BinaryTreeNode left; private BinaryTreeNode right; public int getData() {

2021-09-08 14:43:05 185

原创 实习日记 08/27 day37 理解JVM--从JVM理解并发part2

JVM并发理解概览线程安全锁优化后记概览线程安全当多个线程访问同一个对象时,如果不用考虑这些线程在运行环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方法进行任何其他的协调操作,调用这个对象的行为都可以获得正确结果,那这个对象是线程安全的线程安全的代码都必须具有一个特征:代码本身封装了所有必要的正确性保障手段(如互斥等待等),令调用者无需多关心多线程问题。从强到弱的线程安全:线程安全的实现方法:锁优化后记JVM这本书到此已经看完一遍了,但是由于计算机组成原理、操作系统原理

2021-09-06 16:46:02 107

原创 数据结构练习---单向链表

/** * 单向链表 * @author 12640 */public class ListNode { private int data; private ListNode next; public int getData() { return data; } public ListNode getNext() { return next; } public void setNext(ListNode n

2021-09-06 14:58:36 126

原创 实习日记 08/25 day35 理解JVM---组原中的内存划分

概览

2021-09-06 13:01:17 87

原创 实习日记 08/26 day36 理解Jvm---从JVM理解并发

概览JVM从本质上来讲,其本身就是一个虚拟计算机+操作系统,也正因为它有自己的内存划分规则、程序运行规则等内容,才使得JVM可以跨平台运行。在操作系统中有一个重点的章节为调度策略,对于JVM来说,其线程的调度策略为抢占式,当涉及到生产者消费者问题时,通过同步工具可以实现协同式调度。虽然对于JVM的线程来说,具有优先级这个属性,这个属性官方不建议使用,因为无法保证线程调度策略严格按照优先级来执行,例如线程池中的线程调度策率就取决于采用的阻塞队列。如果从JVM的角度去理解线程,则需要重点关注线程同步工具的

2021-09-06 10:15:58 322

原创 实习日记 08/24 day34 理解JVM---Java并发part1基础内容

Java并发艺术概览概览

2021-09-03 17:02:55 245

空空如也

空空如也

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

TA关注的人

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