参考链接: 使用Java计算文本文件txt中的行数/单词数/字符数和段落数 基础 1. String是基础数据类型么? 不是,String是一个类 而java的8大基本数据类型分别是: 逻辑类 boolean 文本类 char 整数类 byte, short, int, long 浮点类 double, float。
Java的每个对象中都有一个锁(monitor,也可以成为监视器) 并且wait(),notify()等方法用于等待对象的锁或者通知其他线程对象的监视器可用。 在Java的线程中并没有可供任何对象使用的锁和同步器。 这就是为什么这些方法是Object类的一部分,这样Java的每一个类都有用于线程间通信的基本方法 volatile关键字在Java中有什么作用?
自己经验有限,篇幅也有限,这里只是记录一些比较容易混淆或有难度和一些易忘的技术知识点,里面有一些也是面试阿里经常会被问到的问题,但是不保证答案全部正确,有错误的地方望大家指正 JVM相关 JVM内存是如何分配的 步骤其实很简单: 读取文件 排序 这里直接提供代码,分别是jdk 1.7和jdk 1.8的2个版本 1.7: import java.io.*; import java.util.*; import ; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; public class Main 乍一看这问题不要太简单,但是我挺佩服问这问题的面试官的,这问题向后衍生无论是广度还是深度都无可挑剔。
所有的 Java虚拟机实例必须在每个类或接口被 Java程序“首次主动使用”时才初始化它们。 如果你经常参加面试,一定会被问到这个 Map实现类,这个 Map实现类是在 jdk1.5中加入的,其在 jdk1.6/1.7中的主要实现原理是 segment段锁,而每个Segment 都继承了 ReentrantLock 八、java -> class -> 执行 ---- Java程序运行时,必须经过编译和运行两个步骤。首先将后缀名为.java的源文件进行编译,最终生成后缀名为.class的字节码文件。 Java.lang.ClassNotFoundException Java.lang.NoSuchMetodException Java.io.IOException Exception:一般分为 Checked 【1】Checked 异常:只有 java语言提供了 Checked异常,Java 认为 Checked异常都是可以被处理的异常,所以 Java程序必须显示处理 Checked异常。
本题要求给定二叉树的高度。 函数接口定义: int GetHeight( BinTree BT ); 其中BinTree结构定义如下: typedef struct TNode *Position; typedef Position BinTree; struct TNode{ ElementType Data; BinTree Left; BinTree Right; }; 要求函数返回给定二叉树BT的高度值。 裁判测试程序样例: #include <stdio.h> #inclu
package org.apache.ibatis.session; import java.io.Closeable; import java.sql.Connection; import java.util.List 【6】TypeHandler : 用于 Java 类型和 JDBC 类型之间的转换。 另一个功能是 JDBC类型与 Java 类型之间的转换,该功能在为 SQL 语句绑定实参以及映射查询结果集时都会涉及。 在为 SQL 语句绑定实参时,会将数据由 Java 类型转化成 JDBC 类型;而在映射结果集时,会将数据由 JDBC 类型转换成 Java 类型。 本文来源程序猿进阶,由javajgs_com转载发布,观点不代表Java架构师必看的立场,转载请标明来源出处
synchronized方法也可以进去,没有调wait,不能进去其他synchronized方法; 3.如果其他方法是静态的他用的同步锁和当前不同可以进去; 如何保证线程的安全性 保证可见性和原子性 java /lang/StringBuilder 14: dup 15: invokespecial #4 // Method java/lang /lang/String, int ] frame_type = 250 /* chop */ offset_delta = 30 } java 泛型实现的原理? 概念用法: Java中的泛型基本上都是在编译器这个层次来实现的。在生成的Java字节码中是不包含泛型中的类型信息的。使用泛型的时候加上的类型参数,会在编译器在编译的时候去掉。这个过程就称为类型擦除。 java是如何解决这个问题的呢?java编译器是通过先检查代码中泛型的类型,然后再进行类型擦除,在进行编译的。
java 的线程优先级调度会委托给操作系统去处理,所以与具体的操作系统优先级有关,如非特别需要,一般无需设置线程优先级。 8、线程wait()和sleep()的区别? 面试到现在不得不感叹,的确有公司就是这样不聊什么问题或者只是聊一些基础的问题就顺利那些offer了。不过我还是相信,有备无患,多准备点总是好的。
过完年了,好多学习JAVA的同学在忙着找工作,大家先预习下这些基础知识 ,说不定能面试的时候考到。 基础篇 1 什么是Java、Java2、JDK? 答:Java是一种通用的,并发的,强类型的,面向对象的编程语言(摘自Java规范第二版) JDK是Sun公司分发的免费Java开发工具,正式名称为J2SDK(Java2 Software Develop 答:J2RE是Java2 Runtime Environment,即Java运行环境,有时简称JRE。 如果你只需要运行Java程序或Applet,下载并安装它即可。 答:首先请将程序保存为xxx.java文件,然后在dos窗口下使用javac xxx.java命令,你会发现该目录下多了一个xxx.class文件,再使用java xxx命令,你的java程序就开始运行了 面试技巧 1、穿着得体 2、对自己的工资做好定位,对自己的工作目标做好定位。 3、准备一下好的简历(重要是开发经验、项目经验、管理经验等) 4、相信自己会成功找到一份好的工作。
老面试题了。但是需要注意的是其中懒汉式、饿汉式、双层锁式要做区分。 4、手写一个AOP切面方法。 这里咱们针对的可以写spring的几种通知。 5、进程间通信的方式有那些? 遇到的人事面试问题: 1、自我介绍; 2、最有成就感的事情; 3、面对的最大困难是什么; 4、为什么没有选择考研; 5、自我介绍; 6、平时看过什么书、博客、源码等; Java面试百分百.jpg
本博客 猫叔的博客,转载请申明出处 前言 本系列为猫叔综合整理的Java面试题系列,如有雷同不胜荣幸。 Java与C/C++的差异? 1、java为解释性语言、而C/C++为编译型语言。 2、java为面向对象语言,C++则兼具面向过程和面向过程编程的特点。 3、就垃圾回收而言,C++中有析构函数,而Java则是finalize()方法。 4、Java提供了JDBC、分布式对象的RMI等库。 Java程序初始化的顺序是怎么样的? 1、静态对象(变量)优先于非静态对象(变量)的初始化,其中,静态对象只初始化一次,而非静态变量可以初始化多次; 2、父类优先于子类进行初始化; 3、按照成员变量的定义顺序进行初始化 Java作用域 作用域与可见性
7、final 在 java 中有什么作用?
5中被引入所以该方法只能应用于java 5或更高的版本中。 如果你使用的语言版本低于java 5,或是打算在遍历时删除entries,必须使用方法三。否则使用方法一(键值都要)。 2、创建线程的方式有那些? 应用: 1、java8 hashmap中链表转红黑树。 优势:时间复杂度从O(n)-->O(logn) ,且自旋开销较其他树较低(不用整体平衡)。 3、Java的TreeMap实现 相对与hashMap优势,内部key保持有序,且支持自定义排序比较器。 适用场景,对数据需要排序统计。 (可以看看面试官还想问那些点) 2、用了哪些云服务?怎么用的? 这个问题就不做赘述了。 华为云、阿里云等的应用官网上都有具体的操作手册。 问这个问题估计是想要看我服务器方面了解多少。
beanFactory.getBean("helloService"); 3 helloService.sayHello(); 四、Spring Bean 的生命周期,如何被管理的 ---- 对于普通的 Java 【7】织入(weaving):织入是将增强添加到目标类具体连接点上的过程,AOP有三种织入方式:①编译时织入:需要特殊的Java编译器(例如AspectJ的ajc);②装载期织入:要求使用特殊的类加载器 【3】在 Controller 中使用 ThreadLocal 变量; 十五、说说你对 Spring 的认识 ---- 这个问题涉及的面比较广,你可以告诉面试官简单的说下,Spring 的两大核心 IOC 和 AOP 的思想: 【1】控制反转(IOC):传统的 Java 开发模式中,当需要一个对象时,我们会自己使用 new 或者 getInstance 等直接或者间接调用构造方法创建一个对象。
Java面试百分百.jpg
4.jpg 今日份其他面试问题: 哈希原理; 哈希结构和b+tree谁的速度更快; 如何分库分表; 分布式事务解决方案; kafka如何解决不能传送大于10k的消息; nacos和eruika如何选型
?
编译时,Java编译器也会提示,这称之为类型安全。这样就为程序设置了一道安全防护。同样的,使用泛型还可以省去使用普通对象时繁琐的强制类型转换。相反,使用普通对象,编译时并不会提示。 9、什么是 java 序列化?什么情况下需要序列化? 序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化,将数据分解成字节流,以便存储在文件中或在网络上传输。 2:java对象序列化不仅保留一个对象的数据,而且递归保存对象引用的每个对象的数据。可以将整个对象层次写入字节流中,可以保存在文件中或在网络连接上传递。 Java中用于常见算法有4种: 1. 标记-清除算法(mark and sweep) 分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成之后统一回收掉所有被标记的对象。 Java面试百分百.jpg
对于任意一个类,都需要由加载它的类加载器和这个类本身来一同确立其在Java虚拟机中的唯一性。 为什么需要双亲委派? 里无法获取,负责加载<JAVA_HOME>/lib下的类。 扩展类加载器(Extension ClassLoader):Java实现,可以在java里获取,负责加载<JAVA_HOME>/lib/ext下的类。 但又说volatile不能保证原子性(java程序员很熟悉这句话:volatile仅仅用来保证该变量对所有线程的可见性,但不保证原子性)。 其他面试内容: 1、Hashmap的底层实现,效率提升了多少(用时间复杂度表示)? 2、如何用两个栈实现一个队列,最大容量是多少? 3、讲一下OSI七层模型?
Java面试——Linux 一、如果知道一个文件名称,怎么查这个文件在 Linux下的哪个目录,如:要查找 tnsnames.ora文件 1 find / -name tnsnames.ora 2 # 还可以用locate 来查找 3 locate tnsnames.ora 二、Linux 中如何查看某个端口是否被占用 netstat -anp | grep 端口号 三、如何查看所有 Java进程 ps -ef | grep java 四、怎么对命令进行取别名 alias la='ls -a' 五、什么是交换空间:交换空间是 Linux使用的一定空间,用于临时保存一些并发运行的程序。