JDK

基于注解的IoC容器

最后都变了- 提交于 2021-02-18 21:21:52
BeanFactory SpringBean的创建是典型的工厂模式,这一系列的Bean工厂,即IoC容器为开发者管理了Bean之间的依赖关系。BeanFactory作为最顶层的一个接口类,定义了IoC容器的基本规范。 在BeanFactory里只对IoC容器的基本行为做了定义,不关心Bean是如何定义及怎样加载的。正如我们只关心能从工厂中获取到什么产品,不关心工厂是怎么生产这些产品的 public interface BeanFactory { //对FactoryBean的转义定义,如果使用Bean的名字检索FactoryBean得到的对象是工厂生成的对象,如果需要得到工厂本身,需要转义 String FACTORY_BEAN_PREFIX = "&"; //根据Bean的名字获取IoC中Bean的实例 Object getBean(String var1) throws BeansException; //根据Bean的名字和Class类型获取Bean的实例,增强了类型安全验证机制 <T> T getBean(String var1, Class<T> var2) throws BeansException; Object getBean(String var1, Object... var2) throws BeansException; <T> T getBean

Appium环境搭建(Appium库的安装)

两盒软妹~` 提交于 2021-02-18 18:34:18
Appium环境搭建 谷歌驱动和对照:注意:64位向下兼容,直接下载32位的就可以啦,亲测可用。 https://blog.csdn.net/allthewayforward/article/details/81736418 本文主要讲述 Appium 环境的搭建,虽然网上有很多 Appium 的搭建教导教程,但大数描述不够祥细而导致环境搭建失败。本人经过多次实验,终找到了搭建成功的方法,分享给大家进行参考 工具 /原料 夜神模拟器连接手机 {SDK目录下的adb.exe文件,复制到夜神模拟器的目录下,复制过去之后改名为nox_adb.exe} 3.然后命令行窗口中输入adb connect 127.0.0.1:62001即可以连接到adb .启动要查看的程序, usp连接手机后---手机打开usp调试命令行输入: 使用adb shell dumpsys window | findstr mCurrentFocus 命令查看当前运行的包名和Activity更清晰。 Java(JDK),AndroidSDK(SDK),Android模拟器、Appium服务端、Python 库 方法 /步骤 1 安装配置 JDK 环境:安装 JDK 过程简单,不再累述;下面进行 JDK 的配置,参数如下: JAVA_HOME (你的 JDK 安装位置,如: C:\Program Files\Java

intellij idea中解决java.lang.VerifyError: Expecting a stackmap frame at branch target的方法

一个人想着一个人 提交于 2021-02-18 12:54:52
【实习第三周,被生活逼成了全栈hhhh从开发写到测试】 报错如下: 经过查找各类资料博客,针对不同的情况有不同的解决办法: 1. java源代码是用jdk1.6下开发的,后来环境上替换安装了jdk1.7编译运行。运行报错。 我的错误不属于这种情况,因为我是jdk1.8下开发并编译的,但这里还是提一下这种解决办法: jdk设置参数:-XX:-UseSplitVerifier 2. 这是我的情况,即在jdk1.8下开发并编译,还是出现这样的错误,此时应该把jdk参数设置为:-noverify 关于该如何设置在intellij中配置vm参数: 在上面的tool bar中,看到自己的项目,点击那个三角选择:“Edit configuration” 把VM option改成“-noverify” 来源: oschina 链接: https://my.oschina.net/u/4381341/blog/3927510

Docker应用容器引擎

拜拜、爱过 提交于 2021-02-18 07:39:02
1.Docker概述 1.1.Docker简介 Docker 是一个开源的应用容器引擎,基于 Go 语言开发。Docker 可以让开发者打包他们的应用以及依赖包到一个轻 量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互 之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。 · Docker应用场景 Web 应用的自动化打包和发布 自动化测试和持续集成、发布 在服务型环境中部署和调整数据库或其他的后台应用 使用Docker可以实现开发人员的开发环境、测试人员的测试环境、运维人员的生产环境的一致性。 1.2. Docker容器与传统虚拟机比较 传统虚拟机 传统虚拟机技术 基于安装在主操作系统上的虚拟机管理系统(如:VirtualBox和VMWare等),创建虚拟机(虚拟出 各种硬件),在虚拟机上安装从操作系统,在从操作系统中安装部署各种应用。 Docker Docker容器 是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统虚拟机则是在硬件层面实现虚 拟化。与传统的虚拟机相比,Docker优势体现为启动速度快、占用体积小。 1.3. Docker组成部分 2. Docker安装与启动 Docker可以运行在MAC、Windows、CentOS、DEBIAN、UBUNTU等操作系统上

IntelliJ IDEA导入JDK出现The selected directory is not a valid home for JDK问题的解决方法

岁酱吖の 提交于 2021-02-18 07:35:05
IntelliJ IDEA导入JDK出现The selected directory is not a valid home for JDK问题的解决方法 参考文章: (1)IntelliJ IDEA导入JDK出现The selected directory is not a valid home for JDK问题的解决方法 (2)https://www.cnblogs.com/wanghaokun/p/9109983.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/u/4437884/blog/4953506

Tomcat安装,多实例搭建及案例

拥有回忆 提交于 2021-02-18 06:14:39
Tomcat安装,多实例搭建及案例 未分类 cat zt | grep -A 10 过滤出以后向前显示10行 cat zt | grep -B 10 向后 cat zt | grep -C 10 向前向后个显示10行 printf “%x\n” 937 把PID937转换为16进制 strace -p PID 追踪PID号的线程 jstack:装Tomcat肯定得装JDK,就会有jstack命令。用来精确定位出错的代码段 tomcat特点:最占内存的,内存够,运行速度就快 Tocat是java的容器,运行的是java代码 linux默认是有python的,而没有java tomcat默认监听8080端口 在通过浏览器访问时需要指定端口进行访问 java的压缩叫war包,打包命令叫jar。php的压缩包叫tar,打包命令叫tar。 网页目录(webapps)下的ROOT目录不能删除,其它都能删除,以及ROOT下的所有文件及目录都能删除 如果访问网页文件时不想看见子目录,那么就把这个网页文件放到webapps下的ROOT目录中。把网页文件放到ROOT目录中,就相当于没有任何路径 tomcat和PHP有个区别 当tomcat的网页目录有更新,必须重启服务器,tomcat有很大的缓存。 而PHP则不用重启服务器 一.安装 tomcat需要安装java的环境,也就是需要安装java 1

Java笔试题

痴心易碎 提交于 2021-02-17 22:52:31
精选30道Java笔试题解答 都是一些非常非常基础的题,是我最近参加各大IT公司笔试后靠记忆记下来的,经过整理献给与我一样参加各大IT校园招聘的同学们,纯考Java基础功底,老手们就不用进来了,免得笑话我们这些未出校门的孩纸们,但是IT公司就喜欢考这些基础的东西,所以为了能进大公司就~~~当复习期末考吧。花了不少时间整理,在整理过程中也学到了很多东西,请大家认真对待每一题~~~ 下面都是我自己的答案非官方,仅供参考,如果有疑问或错误请一定要提出来,大家一起进步啦~~~ 1. 下面哪些是Thread类的方法() A start() B run() C exit() D getPriority() 答案:ABD 解析:看Java API docs吧:http://docs.oracle.com/javase/7/docs/api/,exit()是System类的方法,如System.exit(0)。 2. 下面关于java.lang.Exception类的说法正确的是() A 继承自Throwable B Serialable CD 不记得,反正不正确 答案:A 解析:Java异常的基类为java.lang.Throwable,java.lang.Error和java.lang.Exception继承 Throwable

常问的22道Java面试题,值得收藏【文末送书】

微笑、不失礼 提交于 2021-02-17 20:41:58
作者:爱茹一婉年 原文: https : //blog.csdn.net/qq_21924011/article/details/80399836 1)集合类:List和Set比较,各自的子类比较(ArrayList,Vector,LinkedList;HashSet,TreeSet) List:元素是有顺序的,元素可以重复因为每个元素有自己的角标(索引) |-- ArrayList:底层是数组结构,特点是:查询很快,增删稍微慢点,线程不同步:A线程将元素放在索引0位置,CPU调度线程A停止,B运行,也将元素放在索引0位置,当A和B同时运行的时候Size就编程了2. |-- LinkedList:底层使用的是链表数据结构,特点是:增删很快,查询慢。线程不安全,线程安全问题是由多个线程同时写或同时读写同一个资源造成的。 |--Vector:底层是数组数据结构,线程同步,Vector的方法前面加了synchronized关键字,被ArrayList代替了,现在用的只有他的枚举。 Set:元素是无序的,且不可以重复(存入和取出的顺序不一定一致),线程不同步。set底层是使用Map实现的,故可以通过ConcurrentHashMap的方式变通实现线程安全的Set。 |--HashSet:底层是哈希表数据结构。根据hashCode和equals方法来确定元素的唯一性。

判断java标识符

十年热恋 提交于 2021-02-17 20:37:00
1 package com.jdk7.chapter5; 2 3 public class JavaIdentifier { 4 5 /** 6 * 使用Character.isJavaIdentifierPart判断字符是否属于java标识符 7 it is a letter 8 it is a currency symbol (such as '$') 9 it is a connecting punctuation character (such as '_') 10 it is a digit 11 it is a numeric letter (such as a Roman numeral character) 12 it is a combining mark 13 it is a non-spacing mark 14 '\u005Cu0000' through '\u005Cu0008' 15 '\u005Cu000E' through '\u005Cu001B' 16 '\u005Cu007F' through '\u005Cu009F' 17 * @param str 18 * @return 19 */ 20 public static boolean isJavaIdentifier(String str){ 21 if (str== null ||

Netty 和 RPC 框架线程模型分析

元气小坏坏 提交于 2021-02-17 19:00:52
点击上方 蓝色字体 ,选择“标星公众号” 优质文章,第一时间送达 作者: 架构师笔记 来源: http://suo.im/5D3PnG 1.背景 1.1 线程模型的重要性 对于 RPC 框架而言,影响其性能指标的主要有三个要素: I/O 模型:采用的是同步 BIO、还是非阻塞的 NIO、以及全异步的事件驱动 I/O(AIO)。 协议和序列化方式:它主要影响消息的序列化、反序列化性能,以及消息的通信效率。 线程模型:主要影响消息的读取和发送效率、以及调度的性能。 除了对性能有影响,在一些场景下,线程模型的变化也会影响到功能的正确性,例如 Netty 从 3.X 版本升级到 4.X 版本之后,重构和优化了线程模型。当业务没有意识到线程模型发生变化时,就会踩到一些性能和功能方面的坑。 1.2 Netty 和 RPC 框架的线程模型关系 作为一个高性能的 NIO 通信框架,Netty 主要关注的是 I/O 通信相关的线程工作策略,以及提供的用户扩展点 ChannelHandler 的执行策略,示例如下: 图 1 Netty 多线程模型 该线程模型的工作特点如下: 有专门一个(一组)NIO 线程 -Acceptor 线程用于监听服务端,接收客户端的 TCP 连接请求。 网络 I/O 操作 - 读、写等由一个 NIO 线程池负责,线程池可以采用标准的 JDK 线程池实现,它包含一个任务队列和