每天一道Java题[11]】的更多相关文章

题目 synchronized怎么实现线程同步?请修改<每天一道Java题[10]>中的MyRunnableThread类以解决三个线程都获取到10的问题. 解答 方法一: 采用synchronized关键字包裹需要保证线程安全的代码块,来实现线程同步.语法格式为: Synchronized(expression){ //需同步的代码 } <每天一道Java题[10]>中的MyRunnableThread类修改为: package me.huangzijian; public cl…
问题 为什么在重写equals()方法的同时,必须重写hashCode()方法? 解答 在<每天一道Java题[2]>中,已经对hashCode()能否判断两个对象是否相等做出了解释.equals()方法与hashCode()方法的关系如下: 如果两个对象的hashCode()返回值不一样,则equals()返回的结果必为false. 如果两个对象的hashCode()返回值一样的时候,equals()返回的结果未知. 如果两个对象的equals()返回的结果为true,则两个对象的hashC…
问题 怎么将字符串转换为int? 解答 此题看似简单,但经常出现在笔试等地方,由于大家习惯了用IDE,有什么还真未必能写出来.通常都是parseInt()方法进行转换,如下: Int n = Integer.parseInt("123"); 发散思考 1.除了parseInt()方法外,还有什么其它方法可以让String转换为int吗?float.double.long.short那些又是怎么从String转换的? 解答:除了parseInt()方法以外,还可以用valueOf()方法…
题目 String字符串怎么转换为Date,Date又怎么转换成String字符串 解答 String->Date 主要用到类SimpleDateFormat及其抽象父类DateFormat中的方法parse(). 如下: String dateStr = "2017-05-18 16:00:00"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date =…
题目 native关键字的作用是什么? 解答 首先,需了解JNI(Java Native Interface),它是连接Java平台与本地C代码的一个API. 其次,用native关键字声明的方法,是告诉JVM调用的方法是一个外部定义的方法,也就是本地C代码定义的一个方法. 总结来说,native关键字的具体作用是,用它声明的方法,并不需要Java代码自己实现.而是JVM通过JNI来加载本地系统C/C++的DLL,然后调用其中的方法来实现. 发散思维 1.说一下,我们平时用到的哪个方法,是用na…
问题:char[]与String相比,有什么优胜的地方? 回答: 针对安全保密高的信息,char[]比String做得更好.因为String是不可变得,即使你修改原先的变量,实际上也是在内存中新建一个对象,原数据还是保留在内存中,等待回收.而char[]中的元素是可以更改的.这就意味着,如密码等保密信息用完之后,你可以马上修改它而不能痕迹.从而相对于String有更好的安全性.可从下面例子中看出,char[]变更内容后,仍是那个对象.而String已经不是原来的String了. 引用: 这个对比…
问题 可以直接根据hashCode()方法产生的值判断两个对象是否相等吗? 解答 不能!根据Wikipedia(https://en.wikipedia.org/wiki/Java_hashCode())上对hashCode()方法的解释,它会根据这个对象内存储的数据及对象的一些特征来做散列,并返回一个有符号的32位哈希值.从这解释我们就可以看到,hashCode()方法返回的是一个散列值,而对于一个散列来说,不同的内容也是可能会出现相同的散列值的.所以即使两个对象的hashCode()返回的值…
题目 String.StringBuilder.StringBuffer有什么异同? 解答 相同点:String.StringBuilder.StringBuffer都可以用来存储字符串. 不同点: 1.String与StringBuilder.StringBuffer的不同点主要在于,String对象创建之后,是不可改变的,平时我们对同一个String变量赋值,实际上是创建了个新的对象.而后两者是可变的,这意思就是说,他们可以在同一内存地址上更改它的值,而无需创建新的对象. 2.StringB…
题目 什么是REST原则,请解释RESTful架构,以及其设计思想? 解答 REST,全称为Representation State Transfer,是一种互联网软件的架构原则.凡是满足REST原则的,我们都称它为RESTful架构. 对RESTful架构的理解,有以下几点: 资源,网络上的一个实体,或者是一个具体的信息.通常使用一个URI来表示一种资源. Representation,可理解为资源的表现层,资源的具体表现形式.在http请求的头信息Accept和Content-Type字段指…
题目 阐述创建线程最常用的两种方法及其对比. 解答 方法一:继承Thread类实现 步骤: 创建Thread类的子类,如MyThread. 重写Thread类的run()方法. 实例化MyThread类,对象名如myThread. 运用Thread类的start()方法启动线程,如myThread.start(). 方法二:实现Runnable接口 步骤: 创建一个类,如MyRunnableThread,实现Runnable接口. 创建MyRunnableThread类的对象. 实例化Threa…
题目:输入两个整数序列.其中一个序列表示栈的push 顺序,判断另一个序列有没有可能是对应的pop 顺序.为了简单起见,我们假设push 序列的任意两个整数都是不相等的. 例如:输入的push 序列是1.2.3.4.5,那么4.5.3.2.1 就有可能是一个pop 系列 1.思路 (1)假设栈顶元素等于输出指针指向元素,弹出栈顶元素并后移输出指针: (2)倘若不满足(1),则压栈输入指针元素,直到输入指针元素等于输出指针元素或者输出指针已经指向空.是前者情况,则分别省略压栈出栈操作,直接后移输入…
以下题目及解答属于个人见解,欢迎大家也分享和补充一下解答的内容,互相促进,共同进步! 题目 RESTful WebService与SOAP WebService有什么异同? 解答 SOAP是一个协议,而REST实际上是一个互联网软件的架构原则,并不是一个协议.它更像是对Http协议的设计初衷作诠释. SOAP发展到现在,相对REST来说,已经有相当的成熟度. SOAP WebService对于消息体.消息头等内容有统一的规范,通用性相对更强.而RESTful WebSerivce实际上只是一个设…
最近在面试中遇到这样的一道算法题:       求100!的结果的各位数之和为多少?       如:5!=5*4*3*2*1=120,那么他们的和为1+2+0=3这道题不算难,不过倒是注意的细节也有一些:1.数据的越界问题 如果求的是171的阶乘的话,就会超出double类型的存储范围,这时候就要处理了,不然得到的结果是:Infinity1.可以通过java的BigInteger类来进行处理:2.可以将结果中的每一位数存在一个int类型的数组中,不过这个方法还没有想出来 代码如下: packa…
Ladygod Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Status 有一天人诹Lee在随手帮女神做题,突然女神发现了自己演算纸上的一个式子,但是式子只有两个加数却没有结果,最近在学不同进制加减法的女神忘了这个两个数字是多少进制了(只记得是小于等于1010),但是她很好奇在可能的多少进制下这个式子得到的答案长度最长,为了从人赢Lee手中抢走女神,你需要快速…
一道大水题 时间限制: C/C++ 2000ms; Java 4000ms 内存限制: 65535KB 通过次数: 44 总提交次数: 1020 问题描述 Dr. Pan作为上兰帝国ACM的总负责人,对队员的队员的训练也是日常关心,他要求每周要有一位队员出一道题目.不知过了多少年,终于轮到Shiyiliang出题了,他费尽脑汁,终于出了一道大水题 给定一个偶数n,n的取值范围为[-1e18,1e18],要求一对整数x,y满足以下条件: 1.x*y==n 2.x与n必须同号,即如果n>0则x>0…
)What is the output of running class Test? public class Test { public static void main(String[ ] args) { new Circle9(); } } public abstract class GeometricObject { protected GeometricObject() { System.out.print("A"); } protected GeometricObject(…
有关Java虚拟机类加载机制相关的文章一搜一大把,笔者这儿也不必再赘述一遍了.笔者这儿捞出一道code题要各位大佬来把玩把玩,假定你一眼就看出了端倪,那么祝贺你,你可以下山了:​ public class StaticTest {    public static void main(String[] args)    {        staticFunction();    }    static StaticTest st = new StaticTest();    static    …
前文 的最后给出了玉伯的一道课后题,今天我们来讲讲这题的思路. 题目是这样的: Number.MAX_VALUE + 1 == Number.MAX_VALUE; Number.MAX_VALUE + 2 == Number.MAX_VALUE; ... Number.MAX_VALUE + x == Number.MAX_VALUE; Number.MAX_VALUE + x + 1 == Infinity; ... Number.MAX_VALUE + Number.MAX_VALUE ==…
<script> var a = 5; function test(){ this.a = 10; a = 15 this.func = function(){ var a = 20 ; alert(this.a); } } var tt = new test(); tt.func(); setTimeout(tt.func, 1000); </script> 这是之前看到的一道js题,其中有a出现了五次,那么到底输出什么呢,我想看了我上一个随笔你应该就明白了. 这个题主要考察两个…
java基础(11) -JDBC jdbc 1.装载驱动 载入跟数据库建立连接的驱动 /* sql server: String className ="com.microsoft.sqlserver.jdbc.SQLServerDriver"; mysql: String className = "com.mysql.jdbc.Driver"; */ Class.forName(className); 2.获取连接 获取数据库服务器的一个开放连接集 /* sql…
一道水题时间限制:1000 ms  |  内存限制:65535 KB 难度:2描述 今天LZQ在玩一种小游戏,但是这游戏数有一点点的大,他一个人玩的累,想多拉一些人进来帮帮他,你能写一个程序帮帮他吗?这个游戏是这样的:有一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0).你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出,大家赶紧写个程…
Java复习11. 单例编程 1.最简单的写法,那个方式是线程不安全的 public class Singleton {     private static Singleton instance;     private Singleton(){}     public static Singleton getInstance(){          if(instance == null){              instance = new Singleton();         }…
在这一专辑(最小生成树)中的上一期讲到了prim算法,但是prim算法比较难懂,为了避免看不懂,就先用kruskal算法写题吧,下面将会将三道例题,加一道变形,以及一道大水题,水到不用高级数据结构,建树,画图,最短路径什么的,统统不需要.废话不多说,直接看题: 1.例题精讲 T1: 1348:[例4-9]城市公交网建设问题 时间限制: 1000 ms         内存限制: 65536 KB提交数: 2094     通过数: 650 [题目描述] 有一张城市地图,图中的顶点为城市,无向边代…
这是一道水题,实际考察的是你会不会写强连通分量...(在BZOJ上又水了一道题) Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这 种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也认为牛C受欢迎.你的任务是求出有多少头 牛被所有的牛认为是受欢迎的. Input 第一行两个数N,M. 接下来M行,每行两个数A,B,意思是A认为B是受欢迎的(给出的信息有可能重复,即有可 能出现多个A,B) Outp…
1.思路 假设链表......---A--B--C--D....,要删除B.一般的做法是遍历链表并记录前驱节点,修改指针,时间为O(n).删除节点的实质为更改后驱指针指向.这里,复制C的内容至B(此时B,C同时指向D),删除节点C,即达到间接删除节点B的目的. 倘若B是链尾节点.则需要线性遍历寻找前驱节点. 以上思路,时间复杂度为O(1). 2.代码 struct ListNode { int m_nKey; ListNode* m_pNext; }; void DeleteNode(ListN…
1785: 又一道简单题 Submit Page   Summary   Time Limit: 5 Sec     Memory Limit: 128 Mb     Submitted: 602     Solved: 234 Description 输入一个四个数字组成的整数 n,你的任务是数一数有多少种方法,恰好修改一个数字,把它 变成一个完全平方数(不能把首位修改成 0).比如 n=7844,有两种方法:3844=62^2和 7744=88^2. Input 输入第一行为整数 T (1<…
                                                    Crazy Search 真是不容易啊,人生第一道hash题竟然是搜博客看题解来的. 题意:给你一个包含m种字符的字符串,求长度为n的不同子串有多少个. 将每个字串化为一个具体的数然后存入数组标记即可,如果重复出现肯定不用再加了.那么怎么化为一个数呢,这里用的方法是先将每个字符对应一个数,然后每个长度为n的子串就有了一个连续的数,将这个数段转化为m进制下的数即可,时间复杂度是O(len).注意…
一道水题 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 今天LZQ在玩一种小游戏,但是这游戏数有一点点的大,他一个人玩的累,想多拉一些人进来帮帮他,你能写一个程序帮帮他吗?这个游戏是这样的:有一行数字,如果我们把这行数字中的'5'都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以'0'开头,这些头部的'0'应该被忽略掉,除非这个整数就是由若干个'0'组成的,这时这个整数就是0). 你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出,大家赶紧…
以下11个特性来自于著名的"java白皮书"中,博主会针对这些特性一一进行粗略的解释.相信看完博主的这篇文章,以后在和小伙伴们吹牛逼,可就有了切实可靠的理论依据了. 11个特性分别是: (1)简单性      (2)面向对象      (3)分布式 (4)健壮性      (5)安全性        (6)体系结构中立 (7)可移植性    (8)解释型        (9)高性能 (10)多线程     (11)动态性 一.简单性 java 语法可以说是 C++ 语法的一个"…
Preface 又自己开了场CF/Atcoder杂题,比昨天的稍难,题目也更有趣了 昨晚炉石检验血统果然是非洲人... 希望这是给NOIP2018续点rp吧 A.CF1068C-Colored Rooks 现在还没理解题意... B. CF1070K-VideoPosts 一道模拟,没什么好说的. 不过一开始还是WA了...一个智障的坑,感觉做题还是不细心 const int maxn=100005; const int inf=0x7fffffff; int a[maxn],ave,n,k,c…