vscode 配置maven生成tomcat适用的webapp包

vscode 配置maven生成tomcat适用的webapp包配置过程下载安装tomcat在VScode里的设置maven在vscode里的配置?好像完事了配置过程下载安装vscode和java环境不再这里说明了,主要是记录下防止以后自己忘记。自己下载好maven和tomcat。tomcat在VScode里的设置首先左下角设置,搜索tomcat,添加一个如你所愿的工作区。然后左下角加号把下载tomcat的目录加进来。maven在vscode里的配置同样搜索maven设置,先是把jav
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

HTML中的标签对照表

<!--...--> 定义注释 <!DOCTYPE> 定义文档类型 <a> 定义超文本链接 <abbr> 定义缩写 <acronym> 定义只...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

关于java内部类为什么能够访问外部类属性详解

    首先解释一下什么是内部类,内部类是定义在一个类内部的类。分为两种情况:一种是被static关键字修饰的, 叫做静态内部类, 另一种是不被static关键字修饰的, 即是普通内部类。 在下文中所提到的内部类都是指这种不被static关键字修饰的普通内部类。 静态内部类虽然也定义在外部类的里面, 但是它只是在形式上(写法上)和外部类有关系, 其实在逻辑上和外部类并没有直接的关系。而一般的内部类...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

java8的流以及流和集合的区别

     集合是一种内存中的数据结构,包含数据结构中目前所有的值,也就是说集合中的值都要先计算好才能够放入集合中,但是流则不同,流是概念上固定的数据结构其元素是按需计算的不能添加或者删除元素,只有在需要的时候才将需要的流计算出来。集合需要提前将值全部准备好而流则是将值准备一部分。     集合和流的一个区别则是遍历数据的方式,使用Collection接口需要用户去进行迭代,也就是在集合...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

编译原理:词法分析

    在词法分析的过程中还有一个过称是不能少的,就是在分析的时候一次读入多少代码。编译一个程序的时候,往往需要进行大量的字符串读入。前人做了比较多的优化,其中一项就是采用来个交替读入的缓冲区。每个缓冲区大概能有4096的字节,读一句话是足够的。读入程序中维护了两个指针:分别是lexemeBegin 指针,顾名思义,就是当前词素的开始处。以及forward 指针,就是试图判断词素的结尾是什么。这个...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

HashMap、Hashtable以及ConcurrentHashMap的区别及原理

HashTable产生于JDK 1.1,HashMap产生于JDK 1.2,主要的区别有:1.线程安全2.处理速度3.使用迭代器不同4.输入参数不同5.扩充容量的大小方式不同6.计算hash以及index的方式不同。1.线程安全之间的区别 HashMap是非synchronized的,所以不能保证随着时间的推移Map中的元素次序是不变的,因为采用链表的方式来解决的,在对...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

Android开发中的dp、px、dpi、sp区别和联系

px :像素,代表屏幕上的像素点。dp :一个基于屏幕密度的抽象单位,如果一个160dpi的屏幕即标准屏幕,那么1dp=1px。长度宽度的数值要使用dp作为单位放入dimens.xml文件中,当dp不能作为适配单位时,就需要使用px。dip :等同于dp。dpi :一英寸长的直线上的像素点的数量来评价屏幕的显示效果,即像素密度。不同的设备,dpi值不同,显示效果不同,dpi的值...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

Android五层架构

之前写过一篇详细的Android四层架构,但是最近发现Android的架构变为了五层,所以在之前的基础上简单介绍一下五层架构。1.应用层:应用层为系统对用户所提供的应用程序,负责与用户进行直接交互。2.framework应用框架层:向应用开发层开发者提供了统一开发的api,这一层是由java代码编写的,有ActivityManger(活动管理器),LocationManger(位置管理器)...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

java的集合框架浅析:包含的基本接口以及常用类

java集合的根本是Iterator和Collection两个接口。Collection本身代表了集合,拥有最基本的方法:添加、删除、返回个数、清空集合等。而Iterator接口是Collection的父接口主要用来定义遍历集合的规则,被称作迭代器,里面有两个重要方法next()和hashnext()。 在java集合里大致可以分为Set、List、Queue、Map四种体系。S...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

详解Android系统启动是如何启动的

首先对Android的系统启动流程进行一个介绍,这个启动流程是贯穿Android四层架构的过程: 一、启动电源以及系统启动:引导芯片代码从固化在ROM上的预定义地方开始执行,加载引导程序BootLoader到RAM然后执行 二、引导程序BootLoader:是在Android系统启动前的程序,其主要作用是把系统OS拉起来并运行 三、Linux内核启动:在启动时,设置缓...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

java的Object里wait()实现原理

在进行wait()之前,就代表着需要争夺Synchorized,而Synchronized代码块通过javap生成的字节码中包含monitorenter和monitorexit两个指令。在进如锁的时候会执行monitorenter,执行monitorenter指令可以获取对象的monitor。同时在执行Lock.wait()的时候也必须持有monitor对象。 在多核环境下,多个...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

Java版本:JDK8的十大新特性介绍

JDK8新特性: 1.Lambda表达式 2.新的日期API 3.引入Optional 4.使用Base64 5.接口的默认方法和静态方法 6.新增方法引用格式 7.新增Stream类 8.注解相关的改变 9.支持并行(parallel)数组 10.对并发类(Concurrency)的扩展。...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

java的双重检查锁定详解

双重检查锁定模式(也被称为双重检查加锁优化,锁暗示(Lock hint)) 是一种软件设计模式用来减少并发系统中竞争和同步的开销。有时候会在单例模式里遇到这个双重检查锁定,这个技术是单例模式的一种具体的实现,通过它来进行单例模式里的延迟初始化,保证在经过延迟初始化之后还是只有一个单例类的实例被创建。 java程序中可能需要推迟一些高开销的对象初始化操作,只有在使用这些对...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

关于java内存模型的浅析

首先本篇介绍的是java内存模型而不是java的内存结构,这两个是不同的,很多人将这两个概念搞混。所以就先进行介绍一下java内存结构,这样可以和内存模型有一些区分: java内存结构 由Java虚拟机规范定义。描述的是Java程序执行过程中,由JVM管理的不同数据区域。各个区域有其特定的功能。如下: 1、以上是Java虚拟机规范...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

java在多线程情况下如何初始化Class对象

java在多线程情况下,初始化一个类或接口的处理过程如下,大致分为5个过程: (1)通过在Class对象上同步获得对象的初始化锁,来控制类或接口的初始化,这个获取锁的线程会一直等待直到当前线程能获得这个初始化锁。当一个Class对象还没有初始化,这个初始化状态被标记为noInitualization,假设有两个线程A和B同时初始化这个Class对象,A、B线程尝试获取Cl...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

java多线程什么时候释放锁

由于等待一个锁定线程只有在获得这把锁之后,才能恢复运行,所以让持有锁的线程在不需要锁的时候及时释放锁是很重要的。在以下情况下,持有锁的线程会释放锁: 1、当前线程的同步方法、代码块执行结束的时候释放 2、当前线程在同步方法、同步代码块中遇到break 、 return 终于该代码块或者方法的时候释放。 3、当前线程出现未处理的erro...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

使用Git的常用命令汇总

一、新建代码库# 在当前目录新建一个Git代码库$ git init# 新建一个目录,将其初始化为Git代码库$ git init [project-name]# 下载一个项目和它的整个代码历史$ git clone [url]二、配置Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。# 显示当前...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

Android 中Scheme协议的使用详解

一、首先什么是Scheme? android中的scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面;通过scheme协议,服务器可以定制化告诉App跳转那个页面,可以通过通知栏消息定制化跳转页面,可以通过H5页面跳转页面等。 客户端应用可以向系统注册一个 URL Scheme,该Scheme...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

Android核心功能模块介绍

以下是Android的各个重要模块,从具体的功能模块了解Android,就可以知道Android具体可以做些什么 一、界面框架 Android界面框架最有特色的就是资源和布局体系,通过完善的控件库和简明的接口,可以快速搭建界面。 Android的每个交互界面都由一棵控件树构成,控件树上的控件皆派生自android.view.View类,非子节点的控...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0

java的泛型解析以及相关知识点

一、为何引入泛型 在java增加泛型之前,这种类似的功能是通过维护Object数组实现的,这种方法有两个问题,一是当获取的一个值的时候必须强制类型转换,二是没有错误检查可以向数组内添加任何类的对象。同时一般的类和方法,只能使用具体的类型:要么是基本类型,要么是自定义的类,如果要编写可以应用于多种类型的代码,这种限制对代码的束缚就会很大。但是编码者希望编写的是更加通用化的代码,使代码...
分类: 其他 发布时间: 09-10 12:23 阅读次数: 0