一.SPI机制 二.注解处理机制 三.java native关键字 https://www.cnblogs.com/KingIceMou/p/7239668.html…
设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样.项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被广泛应用的原因…
为了更灵活的控制对象的生命周期,在JDK1.2之后,引用被划分为(引用的级别和强度由高到低)强引用.软引用.弱引用.虚引用四种类型,每种类型有不同的生命周期,它们不同的地方就在于垃圾回收器对待它们会使用不同的处理方式.在Java中,垃圾回收器线程一直在默默的努力工作着,但你却无法在代码中对其进行控制.无法要求垃圾回收器在精确的时间点对某些对象进行回收.有了这些引用类型之后,可以一定程度上增加对垃圾回收的粒度把控,可以让垃圾回收器在更合适的时机回收掉那些可以被回收掉的对象,而并不仅仅是只回收不再使…
java中常见的数据结构…
一.概念java加载class文件分两种情况:(1)类型是编译器已知的,这种文件的.class文件在编译的时候,编译器会把.class文件打开(不加载)检查,称为Run- Time Type Identification 运行时类型识别(2)从其它地方获取引用,然后动态的把这个未知类型的引用的对象的.class文件加载进jvm虚拟机里,称为反射: 在运行状态中,动态获取类信息(属性.方法)及动态调用类对象方法的功能称为java的反射机制. 二.反射APIJava反射包:java.lang.ref…
学习软件开发,首先要选择的就是选择需要采用的编程语言,考虑语言本身的优缺点和实际需求,综合评价之后选择相关的语言进行系统开发.本篇博客开始就从近年来比较流行的Java开始为大家讲起. 背景 1995年,SUN公司推出了Java的第一个白皮书,其中对Java的定义为:Java是一种简单性(Simple),面向对象(Object-Oriented),分布式(Distributed),解释型(Interpreted),健壮性(Robust),安全性(Secure),结构中立(Architecture-…
一.前言 我们都知道java是面向对象的编程,其中四个基本特性:抽象.封装.继承.多态.这四个特性,概括起来可以这么理解,抽象.封装.继承是多态的基础,多态是抽象.封装.继承的表现. 二. JAVA 语言特点    a) 跨平台,一次编译,到处运行.    b) 速度慢,但很稳定, 没有内存泄漏 (memory leakage),不容易出现错误.    c) 不适合对速度要求高的图形界面操作, 适合服务端应用.    C/S (Client/Server) -> B/S (Browser/Ser…
介绍以下几种语言特性: Java5的特性 1.静态引用 2.可变参数 3.自动装箱和拆箱  包装类的缓存设计 4.枚举 一.静态引用(语法糖,不推荐使用,了解一下即可) 先看看普通的引用,就是import package com.StadyJava.day22; import java.util.Collections; public class LoadResourceDemo { public static void main(String[] args) throws Exception{…
[开源.免费.纯面向对象.跨平台] 简单性: 相对而言,例如,Java是不支持多继承的,C++是支持多继承的,多继承比较复杂:C++ 有指针,Java屏蔽了指针的概念.所以相对来说Java是简单的. Java底层是C++实现的. 面向对象:Java是纯面向对象的,更符合人的思维方式,更容易理解. 可移植行: Java 语言可以做到一次编译,到处运行.也就是说Java程序可以再windows操作系统上运行,不做任何修改,同样的java程序可以放到Linux系统上运行.或者叫做(跨平台) 健壮性:自…
Java的语言特性: 1.语法相对简单 2.面向对象 3.分布性 4.可移植性 5.安全性 6.健壮性 7.解释性 8.多线程 9.动态性与并发性 Java中的面向对象编程: 面向对象程序设计(Object Oriented Programma,OOP);OOP语言有三个特征:封装,动态性,继承.在进行编程过程中对对象进行抽象,抽象是对事物的本质进行提取不考虑细节;抽象分为过程抽象与数据抽象两种.…
众所周知,Java是上个世纪的语言产物,到现在已经有多个分支,Java和OC.Swift一样都是面向对象的语言,目前学习Java是想接触一下后台的开发,当然iOS也不会丢掉,毕竟多学一点不是坏事. 今天遇到了这样一个情况,在写if判断的时候,在括号的后面加了分号,如下: int c = 100; if ( c != 100); { System.out.println("开始"); } 按理说括号里的内容是不会被打印的,但是结果是打印了,原因是在括号的后面加上了分号,编译器会认为这是结…
利用 Java 的反射机制,可以在运行时获取 Java 类的注解信息. 注解 注解的特性 注解是 Java 5 的一个新特性,是插入代码中的一种注释或者说是元数据.注解并不是程序代码,可以对程序作出解释,类似于注释.但是注解可以被相关程序读取(例如编译器). 注解可以用在两个时刻: 在编译期间,编译工具会对注解进行处理 在运行期间,使用 Java 反射机制进行处理 注解格式及用法 注解的格式:注解以 @ 开头,后面跟注释名,还可以加参数. 注解使用的地方:package,class,method…
引言 JUC即java.util.concurrent,是java提供的用于多线程处理的工具类库.重点关注 ConcurrentXXX.AtomicXXX.Executor.Caller&&Future.Queue.Locks. 打开jdk包,JUC代码就在rt.jar包中,concurrent下有atomic和locks两个package,并且还有concurrentXXX.Executor.Future.Queue等.想查看源码的话,JDK 安装的目录下有个 src.zip —— 这就…
package java.util.Collections; public static int indexOfSubList(List<?> source, List<?> target) { int sourceSize = source.size(); int targetSize = target.size(); int maxCandidate = sourceSize - targetSize; if (sourceSize < INDEXOFSUBLIST_TH…
java 1.7 Files.write(path,list,StandardCharsets.UTF_8,StandardOpenOption.APPEND); String preTime = Files.readAllLines(path).get(0); LocalDate date1 = LocalDate.parse(preTime,DateTimeFormatter.BASIC_ISO_DATE); //如果时间记录存在,取出上一次操作时间+1天 date = date1.plus…
郑重声明:本片博客是学习<深入理解Java虚拟机>一书所记录的笔记,内容基本为书中知识. Java程序员有一个共识,以编译方式执行本地代码比解释方式更快,之所以有这样的共识,除去虚拟机解释执行字节码时额外消耗时间的原因外,还有一个很重要的原因就是虚拟机设计团队几乎把对代码的所有优化措施都集中在了即时编译器之中(在JDK 1.3之 后,Javac就去除了-O选项,不会生成任何字节码级别的优化代码了),因此一般来说,即时编译器产生的本地代码会比Javac产生的字节码更加优秀[1].本篇博客,我们将…
上次的博文中Java修炼 之 基础篇(一)Java语言特性我们介绍了一下Java语言的几个特性,今天我们介绍一下Java语言的构成.        所谓的Java构成,主要是指Java运行环境的组成,从外围到核心依次是Java开发工具包JDK(Java Develop Tookit).Java运行时环境JRE(Java Runtime Environment).Java虚拟机JVM(Java Vitual Machine). JDK JDK主要提供了一些用Java语言开发的组件(javac.ex…
java作为一门面向对象的语言,现在常常被用于企业服务器端的后台开发.同时,C语言可能更多地是用于嵌入式的开发,所谓的嵌入式就是航天飞机上的设备软件之类的东西.但是,我逐渐发现,我们平时所说的java技术,并不仅仅指的是我们本科阶段学的java的那些语法,其实那只是冰山一角,只是基础中的基础.这种在学校里学的东西,和我们工作要用到的东西的脱节,往往导致了我们的沮丧.有些专业学校里学的,就是将来要用的东西,这些专业的学生面对未来是从容而自信的.例如说,本科学习的计算机组成原理,操作系统,数据结构,…
1.Java 是一种高级程序设计语言. 2.Java 是大小敏感的程序语言. 3.Java 中的 public 修饰的类名一般要与文件名相同,但也有特列:内部类. 4.Java 程序能在任何操作系统中运行. 5.创建 Java 语言的是 Sun,2010年被 Oracle 公司收购. 6.与 Java 语言相近的语言是 C# . 7.Java 语言源代码文件的扩展名为 java . 8.在 Java 中有效的注释声明有: 9.在控制台显示消息的语句是: 10.Java 源代码编译后的字节码文件的…
从放假开始,就开始路陆陆续续了解关于java语言的学习.首先从语言编辑环境就和以前学习的c语言会有些不同,对java语言的学习也有了很大很多新的认识. 首先从官网上下载jdk,按照娄老师给我们的操作提示还有我从百度上的了解,在同学的帮住下进行了电脑环境变量的配置,这样以来就能够更方便的应用java开发工具,简单来说也就是每次可以直接输入javac编译文件,不用输入前面的一大串内容. 之后就可以跟着娄老师的学习视频来进行对java的语言学习了.…
概述: Java 体系比较庞杂,功能繁多,这也导致很多人在自学 Java 的时候总是感觉无法建立 全面的知识体系, 无法从整体上把握Java 的原因. 在这里我们先简单了解一下Java 的版本. 具体的Java 体系知识结构,将在后面详细讲述. Java 分成三种版本,分别是Java 标准版(JavaSE).Java 微缩版(JavaME)和Java 企业版(JavaEE), 每一种版本都有自己的功能和应用方向. 1:Java标准版: JavaSE(Java Standard Edition)…
Java中sleep和wait的区别 ① 这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类. sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用b的sleep方法,实际上还是a去睡觉,要让b线程睡觉要在b的代码中调用sleep. ② 锁: 最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法. sleep不出让系统资源:wait是进入线程等待池等待,出让系统资源,其他线程可以占用CPU.一…
Java语言是一款面向对象的一款高级语言是由Sun Microsystems公司(现已被oracle公司收购).由James Gosling和同事们共同研发,并在1995年正式推出,据oracle官方数据指数,目前全球已有上亿的系统是使用Java开发的.Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征. 零基础学Java课程:零基础学Java10系列—编程入门 Java特点: 1,跨平台性…
一. Java的历史与由来 原名Oak,针对嵌入式系统开发设计,语法与C/C++基本一致 二. Java语言特点 Java由四方面组成:Java编程语言.Java类文件格式.Java虚拟机和Java应用程序接口(Java API). 主要两点: 1. Java继承C++语言面向对象的核心,是纯粹的面向对象语言. 2. Java舍弃了指针.运算符重载等,增加垃圾回收机制,实现内存的自动分配管理 与C.C++主要的差别 1. 内存自动分配回收,C/C++中存在内存管理函数或者操作符malloc(),…
之所以写这篇博客不是为了比较JAVA语言和C++语言到底孰优孰劣,而是从语言本身出发进行对比总结程序编码设计上的差别.因水平有限,某些内容可能太过片面,欢迎指正和讨论. JAVA语言在设计上很好地借鉴了C++语言,是一种完全“面向对象”的编程语言.JAVA语言的语法与C++语言的结构语法非常相似,这使得C++程序猿学习JAVA变得非常容易. JAVA语言的最大优点就是“Wirte Once,Run Everywhere”,就是“一次编写,到处运行”的意思.JAVA语言相对C++来说,增加了一些新…
0.前言 从这篇随笔开始记录Java虚拟机的内容,以前只是对Java的应用,聚焦的是业务,了解的只是语言层面,现在想深入学习一下. 对JVM的学习肯定不是看一遍书就能掌握的,在今后的学习和实践中如果有领会到的心得和踩过的坑,将会对这些文章进行更新. 另外,人脑更喜欢图胜过文字,有些流程先用文字码在那儿,后面有时间再画图. 1.「深入理解Java虚拟机」学习笔记(1) - Java语言发展趋势 2.「深入理解Java虚拟机」学习笔记(2)- JVM内存区域 3.[Java]「深入理解Java虚拟机…
一.Java程序预览 Java的语法与C非常类似,这里先使用几个非常简单的程序以点带面来区分C语Java的区分再细讲每个知识点.该文仅针对有编程基础的朋友参考. 1.1.Hello World 创建java项目 新建一个类 运行 1.2.Eclipse使用 1.2.1.项目位置 在项目上右键 ->properties ->location 在项目上alt+enter键也可以打开项目属性 1.2.2.重置窗口布局 显示窗口,如控制台 选择show view 1.2.3.设置字体 window-&…
一.知识点学习 1.struts2中包含以下6种对象,requestMap,sessionMap,applicationMap,paramtersMap,attr,valueStack; 1)requestMap用来存放包含当前HttpServletRequest的属性(attribute)的Map,简单来说就是request域中的值; 2)sessionMap用来存放包含当前HttpSession的属性(attribute)的Map 3)applicationMap用来存放包含当前应用的Ser…
最近也在春节的节假日里,总是会有各种各样的事情出现,没有很完整的时间来学习java以及其他方面的知识. 从昨天开始有了完整的学习体系,我去娄老师推荐的极客学院网站开始学习java语言的语法.在假期之初在极客学院的注册工只是当成任务来完成的,但是并没有发现极客学院的真正作用和很大的价值,借用娄老师博客上的一句话就是,“通过网络的学习,不仅是老师与学生之间的交流,更是社会.老师和学生三方面的交流,使得学生的知识来源会更丰富更广,知识方面会有质的提高“,就对于这个极客学院,我看了相关的c语言视频,还解…