JDK

这套面试题你能答出来多少?

馋奶兔 提交于 2021-02-14 23:19:01
引言: 前些天去参加面试,面试官对我出了如下一套面试题,大家不妨利用空闲时间也测试下自己的知识水平,试卷满分150分,你能答出来多少呢? 心动不如行动,赶快测试一下吧! 笔试开始 ▼ 1、下面程序的运行结果是什么?(10) ReentrantLock lock new ReentantLock (Boolean. True); try{ lock.lock(); ..// }catch (Exception e){ ..// }finally{ lock. unlock() ; } 2、聊聊关键字synchronized的工作机制是什么? (10) 3、StringBuilder, StringBuffer的区别是什么? (5) 4、聊聊组合与聚合的区别是什么? (5) 5、SpringMVC的工作原理是什么? (建议图解) (10) 6、浅谈SpringBoot的优势是什么?简单谈谈SpringBoot的启动过程中。@SpringBootApplication包括哪几个注解? (10) 7、SQL优化的原理是什么?若不清晰,则列举己知的优化措施方式(5)。(不少于三种) 8、title与h1两个标签的区别是什么? (5) 9、列举常用的javascript对象(5) 10、样式position有几种取值? 对布局会产生什么影响? (5) 11、父类构造器,子类构造器

面试题你能答出来多少?

狂风中的少年 提交于 2021-02-14 22:56:38
引言:前些天去参加面试,面试官对我出了如下一套面试题,大家不妨利用空闲时间也测试下自己的知识水平,试卷满分150分,你能答出来多少呢?心动不如行动,赶快测试一下吧! 1、下面程序的运行结果是什么?(10) ReentrantLock lock new ReentantLock (Boolean. True); try{ lock.lock(); ..// }catch (Exception e){ ..// }finally{ lock. unlock() ; } 2、聊聊关键字synchronized的工作机制是什么? (10) 3、StringBuilder, StringBuffer的区别是什么? (5) 4、聊聊组合与聚合的区别是什么? (5) 5、SpringMVC的工作原理是什么? (建议图解) (10) 6、浅谈SpringBoot的优势是什么?简单谈谈SpringBoot的启动过程中。@SpringBootApplication包括哪几个注解? (10) 7、SQL优化的原理是什么?若不清晰,则列举己知的优化措施方式(5)。(不少于三种) 8、title与h1两个标签的区别是什么? (5) 9、列举常用的javascript对象(5) 10、样式position有几种取值? 对布局会产生什么影响? (5) 11、父类构造器,子类构造器,当子类构造器new的时候

Javaweb开发环境与搭建

橙三吉。 提交于 2021-02-14 21:03:14
一、jdk下载与安装 1.下载:     进入官网( http://www.oracle.com/ ),下载对应版本即可。 2.设置环境变量      需要设置环境变量如下(JDK安装的位置):           二、TomCat下载与安装   1.下载:     到 http://tomcat.apache.org 下载,下载对应版本。    2.服务器启动     2.1启动tomcat目录。 tomcat目录/bin/startup.bat(window启动文件) 找到startup.bat 双击运行。会有一个黑窗口,黑窗口不要关闭。(如果关闭,相当于把tomcat停止了)     2.2在浏览器地址栏中输入:http://localhost:8080 或者 http://127.0.0.1:8080localhost ,如果看到如下页面,证明启动成功    三、eclipse下载   官网地址: https://www.eclipse.org/downloads/ 四、MySQL下载   官网: https://www.cnblogs.com/ziyoublog/p/9722849.html    来源: oschina 链接: https://my.oschina.net/u/4388198/blog/3608454

Java线程面试题 Top 50

倖福魔咒の 提交于 2021-02-14 17:40:18
原文链接: http://www.importnew.com/12773.html   本文由 ImportNew - 李 广 翻译自 javarevisited 。欢迎加入 Java小组 。转载请参见文章末尾的要求。   不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。   在典型的Java面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,用什么方式创建线程比较好(比如: 继承thread类还是调用Runnable接口 ),然后逐渐问到并发问题像在Java并发编程的过程中遇到了什么挑战,Java内存模型,JDK1.5引入了哪些更高阶的并发工具,并发编程常用的 设计模式 ,经典多线程问题如生产者消费者,哲学家就餐,读写器或者简单的有界缓冲区问题。仅仅知道线程的基本概念是远远不够的, 你必须知道如何处理 死锁 , 竞态条件 ,内存冲突和线程安全等并发问题。掌握了这些技巧,你就可以轻松应对多线程和并发面试了。   许多Java程序员在面试前才会去看面试题,这很正常。因为收集面试题和练习很花时间

java开发环境搭建

感情迁移 提交于 2021-02-14 17:32:46
一、安装JDK 二、JDK环境变量配置的步骤如下: 1.我的电脑-->属性-->高级-->环境变量. 2.配置系统变量:         a.新建 JAVA_HOME            C:\Program Files\Java\j2sdk1.5.0 (JDK的安装路径)         b.新建 PATH             %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin 之前电脑里有一个"Path“的目录,这个新建后,把"Path"目录给冲没了,估计系统变量的变量名不区分大小写。这边改成在PATH里添加上述内容         c.新建 CLASSPATH             .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar 3.测试环境变量配置是否成功:    开始-->运行--〉CMD    键盘敲入: JAVAC JAVA         出现相应的命令,而不是出错信息,即表示配置成功! 三、删除旧的jre 有些情况jre删除不了,连eclipse都打不开,甚至到eclipse官网下载新的jdk,安装jdk后有提示是否要安装jre6,此时jre6是安装不了的。很难搞的一个东西,解决方法:下载一个jre的专用安装包, http://www.xdowns.com/soft/softdown.asp

用CubeMX开发HAL学习记录(一)

痴心易碎 提交于 2021-02-14 15:31:43
用CubeMX开发HAL学习记录(一) 前言 一、CubeMX基本特点 1、集成MCU Finder功能,便于用户进行芯片选型 2、图形化方式配置时钟、片内外设,自动生成初始化代码 3、具有强大的适应性 4、提高开发效率 二、CubeMX下载 1.CubeMX软件下载 2.安装环境 3.注意事项 4.固件包导入 三、CubeMX生成文件介绍 1.MCU固件包 2.界面介绍 3.常规配置 总结 前言 笔者还是一名大二学生,目前正在学习CubeMX的开发,自己想通过写博客来加深自己的学习印象,如有不妥请指正。 一、CubeMX基本特点 1、集成MCU Finder功能,便于用户进行芯片选型 STM的芯片种类众多引脚封装也不尽相同,用户可以更具自己需要的内核,引脚封装类型和开发型号选择自己所需要的那一款MCU。 2、图形化方式配置时钟、片内外设,自动生成初始化代码 STM的时钟树都十分庞大且复杂,不同的外设对应着不同的时钟源,因此对照技术手册一面面的寻找总线,和时钟倍频设置是十分复杂的,而CubeMX可以直接越过这些基础操作,只对逻辑层进行编辑,极大的节省了时间成本。但不需要配置寄存器或库函数不代表你不需要去了解时钟树,学习STM的人必须先经过时钟树的洗礼(本文建议结合CubeMX的时钟树和B站正点原子的时钟树对比学习) B站原子哥时钟树:https://www.bilibili.com

Oracle GoldenGate for BigData-Kafka

独自空忆成欢 提交于 2021-02-14 14:31:33
0. Env list: Oracle Linux:6.10 Oracle DB 11.2.0.4 OGG4Ora:19.1 OGG4BD:19.1 1.Install package for OCI instance: yum groupinstall "X Window System" yum install oracle-rdbms-server-11gR2-preinstall Yum install java yum -y groupinstall kde-desktop yum install -y java-1.8.0-openjdk.x86_64 yum install tiger-vncserver https://scriptingmysql.wordpress.com/2019/11/22/how-to-setup-a-gui-via-vnc-for-your-oracle-linux-compute-instance-in-oracle-cloud-infrastructure-oci/ 2.OS Configuration a.service iptables stop b.profile: #!/bin/bash ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1; export ORACLE_HOME

dockerfile的常用基础镜像——java镜像

偶尔善良 提交于 2021-02-14 14:23:58
1. java镜像 使用Java镜像的最直接方法是把它作为基础镜像或运行时环境。 1.1 镜像tag java:<version> 如果你不确定你需要什么,那么请用这个tag。它可以作为一个运行时环境,装载你的源代码,并启动你的应用程序容器;也可以作为基础镜像,用于构建应用镜像。 常用tag有: 6b38-jdk, 6b38, 6-jdk, 6, openjdk-6b38-jdk, openjdk-6b38, openjdk-6-jdk, openjdk-6 6b38-jre, 6-jre, openjdk-6b38-jre, openjdk-6-jre 7u111-jdk, 7u111, 7-jdk, 7, openjdk-7u111-jdk, openjdk-7u111, openjdk-7-jdk, openjdk-7 7u121-jdk-alpine, 7u121-alpine, 7-jdk-alpine, 7-alpine, openjdk-7u121-jdk-alpine, openjdk-7u121-alpine, openjdk-7-jdk-alpine, openjdk-7-alpine 7u111-jre, 7-jre, openjdk-7u111-jre, openjdk-7-jre 7u121-jre-alpine, 7-jre-alpine,

Java9新特性有哪些新特性?

风流意气都作罢 提交于 2021-02-14 09:14:22
点击上方 蓝色字体 ,选择“标星公众号” 优质文章,第一时间送达 作者 | NullPointerExcept 来源 | urlify.cn/AVVNZz 66套java从入门到精通实战课程分享 1、Java9 新特性之---目录结构 包含jdk8及以前的jdk版本,所有目录结构以及目录含义如图: jdk9之后,目录结构发生变化如图: 这个新特性只要了解下就可以了,这个目录结构是方便为了接下来新特性做保证 2、Java9新特性之---JShell工具 怎么理解,怎么用呢?这个只是针对于java9来说,相当于cmd工具,你可以和cmd一样,直接写方法等等,不过我认为只是适用于初学者做一些最简单的运算和写一些方法: 在cmd中打开这个工具: 进入工具后可以做一些简单的java操作 等等,我认为只适用于初学者学习java不用其他编辑工具就可以学习java 3、Java9新特性之---模块化 一个大型的项目,比如淘宝商城等,都会包含多个模块,比如订单模块,前台模块,后台管理模块,广告位模块,会员模块.....等等,各个模块之间会相互调用,不过这种情况下会很少,只针对特殊情况,如果一个项目有30个模块系统进行开发,但是只要某个单独模块运行时,都会带动所有的模块,这样对于jvm来说在内存和性能上会很低,所以,java9提供了这一个特性,某一个模块运行的时候,jvm只会启动和它有依赖的模块

Java内存 -JVM 内存管理

末鹿安然 提交于 2021-02-14 07:45:24
一.综述 如果你学过C或者C++,那么你应该感受过它们对内存那种强大的掌控力。但是强大的能力往往需要更强大的控制力才能保证能力不被滥用,如果滥用C/C++的内存管理那么很容易出现指针满天飞的情况,不出问题还好,一出问题debug起来简直让人头疼得不要不要的。借用一句话,“指针一时爽,重构火葬场”。 而对java程序员来说,则没有这样的烦恼,因为java直接将内存管理交由jvm来管理,这样程序员在编写程序的时候就不用担心内存的使用情况而可以专注内容的实现。但这其实也造成了一点隐患,如果你不了解jvm内存管理的机制,很可能会因一些错误的代码写法而导致内存泄漏或内存溢出。 注:所述内容取自Jdk1.6。 二.jvm内存结构 三.每部分存储了哪些数据 1.程序计数器 程序计数器是一块较小的内存空间,可以看作当前线程所执行字节码的行号指示器,即指向正在执行的字节码。在概念模型中,字节码解释器的工作就是通过改变这个程序计数器的值来选取下一条字节码的指令。 值得一提的是,因为java的多线程是通过线程轮流切换并分配处理器执行时间来实现的(即一个小的时间段内仍然只有一个线程处于运行状态),每个线程的执行指令都不一样,为了使线程切换后能正确执行到该线程的下一指令,每个线程都需要一个独立的程序计数器,所以程序计数器使线程私有的。 2.虚拟机栈