首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏luoheng

    Java 编程问题

    本文为《Java Coding Problems》读书笔记。学习语言从解决问题开始,《Java Coding Problems》一书中包含了Java编程中常遇到的一些问题。 57Working With Date And Time 58-77Type Inference 78-98Arrays, Collections, And Data Structures 99-128Java I/O Paths, Files, Buffers, Scanning, And Formatting 129-148Java Reflection Classes, Interfaces, Constructors 书中以Java的方式解决诸多常见问题。后续文章中记录这些问题的解法,以此学习Java语言的常规技巧。 参考资料:https://learning.oreilly.com/library/view/java-coding-problems/9781789801415/。

    77200编辑于 2022-09-01
  • 来自专栏Java帮帮-微信公众号-技术文章全总结

    编程题】Java编程题一(10道)

    编程题】Java编程题一(10道) 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? //这是一个菲波拉契数列问题 public class lianxi01 { public static void main(String[] args) { System.out.println("第 例如6=1+2+3.编程 找出1000以内的所有完数。 】 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米? 第10次反弹多高?

    2.5K80发布于 2018-03-19
  • 来自专栏Java帮帮-微信公众号-技术文章全总结

    编程题】Java编程题二(10道)

    编程题】Java编程题二(10道) 【程序11】 题目:有1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5% import java.util.*; public class lianxi12 { public static void main(String[] args) { double x = ){System.out.print(" ");} } System.out.println(); } } } 【程序17】 题目:猴子吃桃问题:猴子第一天摘下若干个桃子 a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

    1.3K90发布于 2018-03-19
  • 来自专栏Java帮帮-微信公众号-技术文章全总结

    编程题】Java编程题五(10道)

    编程题】Java编程题六(10道) 【程序41】 题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。 public class lianxi42 { public static void main (String[] args) { int a=809,b,i; for(i=10;i<13;i++) ; //取百位的数字 a[2] = (num/10)%10; //取十位的数字 a[3] = num%10; //取个位的数字 for(int j=0;j<4;j++) { a[j]+=5; -str2.length();i++) { if(str2.equals(str1.substring(i, str2.length()+i))) //这种比法有问题 import java.io.*; import java.util.*; public class lianxi50 { public static void main(String[] args

    1.2K120发布于 2018-03-22
  • 来自专栏Java帮帮-微信公众号-技术文章全总结

    编程题】Java编程题四(10道)

    编程题】Java编程题四(10道) 【程序31】 题目:将一个数组逆序输出。 import java.util.*; public class lianxi31 { public static void main(String[] args) { Scanner s = new import java.util.*; public class lianxi32 { public static void main(String[] args) { Scanner s = a = new int[10][10]; for(int i=0; i<10; i++) { a[i][i] = 1; a[i][0] = 1; } for(int for(int i=0; i<10; i++) { for(int k=0; k<2*(10-i)-1; k++) { System.out.print(" "); }

    1.8K50发布于 2018-03-19
  • 来自专栏Java帮帮-微信公众号-技术文章全总结

    编程题】Java编程题三(10道)

    编程题】Java编程题三(10道) 【程序21】 题目:求1+2!+3!+...+20! 最后问第一个人,他说是10岁。请问第五个人多大? //使用了长整型最多输入18位 import java.util.*; public class lianxi24 { public static void main(String[] args) { s = new Scanner(System.in); int[] a = new int[10]; System.out.println("请输入10个整数:"); for(int i=0; i<10; i++) { a[i] = s.nextInt(); } for(int i=0; i<10; i++) { for(int j=i+1; j<10;

    1.1K60发布于 2018-03-19
  • 来自专栏信数据得永生

    Java 编程问题:十二、`Optional`

    原文:Java Coding Problems 协议:CC BY-NC-SA 4.0 贡献者:飞龙 本文来自【ApacheCN Java 译文集】,自豪地采用谷歌翻译。 本节介绍的问题和解决方案基于 Java 语言架构师 Brian Goetz 的定义: “Optional旨在为库方法返回类型提供一种有限的机制,在这种情况下,需要有一种明确的方式来表示无结果,并且使用null 问题 使用以下问题来测试你的Optional编程能力。 解决方案 以下各节介绍上述问题的解决方案。记住,通常没有一个正确的方法来解决一个特定的问题。另外,请记住,这里显示的解释仅包括解决问题所需的最有趣和最重要的细节。 本场景的候选对象是 Java 反射 APIMethod.invoke()(见第 7 章、“Java 反射类、接口、构造器、方法、字段”。

    1.6K20编辑于 2022-07-11
  • 来自专栏大数据钻研

    Java编程常见问题汇总

    ,而程序员思维经常被当做贬义词,因为多数情况下程序员思考问题像个计算机,并把这种思考模式带到了生活当中。 复杂到看不出问题还是简单到明显没有问题? 熟悉git吗?熟悉svn吗?他们的原理如何?最佳实践呢? 代码运行效率 统计过CPU/GPU/磁盘IO/网络IO/内存的消耗吗? 一次磁盘IO耗时多少? 耐性 中国社会由于种种问题,相对于西方发达国家来说社会整体比较浮躁、急于求成。无论一个人有多么的天才,总是需要一个积累的过程。 对于程序员的学习内容,我有几个建议(可能这需要花5年、8年、10年或者更多): 1. 至少一门静态编程语言,一门动态编程语言,一门函数性语言 2. 会web编程、app编程 3. 实践 其实这只是变为优秀程序员的一个步骤而已,根据我的观察,多数人学习编程时死在了这个山头。

    80870发布于 2018-04-18
  • 来自专栏信数据得永生

    Java 编程问题:四、类型推断

    本章包括 21 个涉及 JEP286 或 Java 局部变量类型推断(LVTI)的问题,也称为var类型。这些问题经过精心设计,以揭示最佳实践和使用var时所涉及的常见错误。 问题 使用以下问题来测试您的类型推断编程能力。 结合 LVTI 和面向接口编程技术:编写一个程序,通过面向接口编程技术来举例说明var的用法。 结合 LVTI 和菱形运算符:编写一个程序,举例说明var和菱形运算符的用法。 78 简单var示例 从版本 10 开始,Java 附带了 JEP286 或 JavaLVTI,也称为var类型。 var标识符不是 Java 关键字,而是保留类型名。 使用var而不考虑可能的清晰度损失会产生这些问题。像这样的一些问题和代码将成为一个真正的痛苦。 83 LVTI 与面向接口编程技术相结合 Java 最佳实践鼓励我们将代码绑定到抽象。

    1.6K40编辑于 2022-07-11
  • 来自专栏全栈程序员必看

    java并发编程实战_java解决并发问题

    Executors 在Java 5之后,并发编程引入了一堆新的启动、调度和管理线程的API。 Executor框架便是Java 5中引入的,其内部使用了线程池机制,它在java.util.cocurrent 包下,通过该框架来控制线程的启动、执行和关闭,可以简化并发编程的操作。 因此,在Java 5之后,通过Executor来启动线程比使用Thread的start方法更好,除了更易管理,效率更好(用线程池实现,节约开销)外,还有关键的一点:有助于避免this逃逸问题——如果我们在构造器中启动一个线程 (); List<Future<String>> resultList = new ArrayList<Future<String>>(); //创建10 个任务并执行 for (int i = 0; i < 10; i++){ //使用ExecutorService执行Callable类型的任务,并将结果保存在

    1K20编辑于 2022-10-01
  • 来自专栏信数据得永生

    Java 编程问题:九、函数式编程——深入研究

    本章包括 22 个涉及 Java 函数式编程问题。这里,我们将重点讨论在流中遇到的涉及经典操作的几个问题(例如,filter和map),并讨论无限流、空安全流和缺省方法。 一旦您涵盖了本章和上一章,您就可以在生产应用上释放函数式编程了。下面的问题将为您准备各种各样的用例,包括角落用例或陷阱。 问题 使用以下问题来测试您的函数式编程能力。 > 0 && value < 10 && value % 2 == 0; } 181 无限流、takeWhile()和dropWhile() 在这个问题的第一部分,我们将讨论无限流。 在流和函数式编程java8)之前,这样的任务是通过一堆繁琐、冗长且容易出错的意大利面代码应用于集合的。从 Java8 开始,我们有分组收集器。 在下一节中,我们来看看单级分组和多级分组。 从 JDK8 开始,java.util.Comparator类增加了几个新的比较器,包括用于链接比较器的thenComparing()口味。 此处的问题由应删除的选项表示。

    2.2K10编辑于 2022-07-11
  • 来自专栏java一日一条

    Java编程常见问题汇总2

    这里有一个问题,connect可以指定超时时间,但是read无法指定超时时间。但是可以设置阻塞(block)时间。 正确的写法: ? 为了解决这些问题,一般采用缓存和异步/消息队列处理。 频繁使用计时器 错误代码: ? 这个代码有两个问题, 一个是没有告诉调用者, 系统调用出错了. 第二个是日志没有出错原因, 很难跟踪定位问题。 正确的写法: ? 重复包装RuntimeException 错误的写法: ?

    56410发布于 2018-09-18
  • 来自专栏信数据得永生

    Java 编程问题:十一、并发-深入探索

    原文:Java Coding Problems 协议:CC BY-NC-SA 4.0 贡献者:飞龙 本文来自【ApacheCN Java 译文集】,自豪地采用谷歌翻译。 本章包括涉及 Java 并发的 13 个问题,涉及 Fork/Join 框架、CompletableFuture、ReentrantLock、ReentrantReadWriteLock、StampedLock 读完本章,您将对并发性有相当的了解,这是每个 Java 开发人员都需要的。 问题 使用以下问题来测试您的并发编程能力。 JDK8 通过用CompletableFuture增强Future,在异步编程领域迈出了重要的一步。 我们可以通过同步来修复问题,或者通过原子变量来更好地解决问题。 原子变量类在java.util.concurrent.atomic中可用。

    1.3K20编辑于 2022-07-11
  • 来自专栏java一日一条

    Java编程常见问题汇总1

    每天在写Java程序,其实里面有一些细节大家可能没怎么注意,这不,有人总结了一个我们编程中常见的问题。虽然一般没有什么大问题,但是最好别这样做。 另外这里提到的很多问题其实可以通过Findbugs( http://findbugs.sourceforge.net/ )来帮我们进行检查出来。 字符串连接误用 错误的写法: ? 正确的写法: ? 问题在第三行,append char比String性能要好,另外就是初始化StringBuffer没有指定size,导致中间append时可能重新调整内部数组大小。 另外一个问题不能一次就将一个xml文件用String保存,这样对内存会造成不必要的浪费,正确的做法用InputStream来边读取边处理。为了解决编码的问题, 最好使用XML解析器来处理。

    73020发布于 2018-09-18
  • 来自专栏程序员IT圈

    Java编程常见问题汇总(一)

    另外一个问题不能一次就将一个xml文件用String保存,这样对内存会造成不必要的浪费,正确的做法用InputStream来边读取边处理。为了解决编码的问题, 最好使用XML解析器来处理。 为了解决这些问题,一般采用缓存和异步/消息队列处理。 ); // granularity 10ms for (E entity : entities) { entity.doSomething(); entity.setUpdated(new 第二个是日志没有出错原因, 很难跟踪定位问题。 Exception e) { throw new MyRuntimeException("Could not do stuff because: "+ e.getMessage, e); } 作者:java

    1.1K90发布于 2018-03-05
  • 来自专栏java一日一条

    Java编程常见问题汇总3

    这里本意是希望用当前类来加载希望的对象, 但是这里的getClass()可能抛出异常, 特别在一些受管理的环境中, 比如应用服务器, web容器, Java WebStart环境中, 最好的做法是使用当前应用上下文的类加载器来加载 这里有两个错误, 一个是没有没有将毫秒归零, 不过最大的错误是没有指定TimeZone, 不过一般的桌面应用没有问题, 但是如果是服务器端应用则会有一些问题, 比如同一时刻在上海和伦敦就不一样, 因此需要指定的 关于时间的问题可以参考这篇文章: http://www.odi.ch/prog/design/datetime.php 这里主要的问题是Date对象并不包含Time Zone信息. 当然这里又涉及到另外一个OO设计的问题, 对外暴露Date实例本身就是不好的做法(一般的做法是在setter方法中设置Date引用参数的clone对象). 如果java编译器能针对这种情况给出警告. 或者在java语言规范中不支持浮点数类型的==操作就最好了。 正确的写法: ? 用浮点数来保存money 错误的写法: ? 这个也是一个老生常谈的错误.

    64720发布于 2018-09-18
  • 来自专栏站长的编程笔记

    用于日常编程问题10 个 Python 代码片段

    Python 已成为最受欢迎的编程语言之一,由于其灵活性、用户友好性和广泛的库。无论您是初学者还是有准备的开发人员,拥有一组方便的代码部分都可以为您节省大量时间和精力。 在本文中,我们将深入研究十个可用于解决日常编程挑战的 Python 代码片段。我们将指导您完成每个片段,以简单的步骤阐明其运作方式。 交换两个变量 切换两个变量的值是编程中的常见任务。 在 Python 中,这可以在不利用临时变量的情况下实现 - 例 a = 5 b = 10 a, b = b, a print(a) print(b) 输出 10 5 在这里,a 和 b 的值通过将它们捆绑到一个元组中并随后以相反的顺序解压缩来切换 反转字符串 反转字符串是编程任务中的常见要求。这是一个简单的单行代码来修改 Python 中的字符串 - 例 input_string = "Hello, World!"  结论 这十个 Python 代码片段可以帮助您更有效地解决常见的编程挑战。通过理解和利用这些片段,您可以节省时间并提高编码能力。请记住,实践会带来完美,所以不要犹豫,在日常编程任务中应用这些片段。

    84720编辑于 2023-08-11
  • 来自专栏Java技术栈

    国外大神总结的 10Java 编程技巧!

    原文: http://www.javacodegeeks.com/2015/08/top-10-useful-yet-paranoid-java-programming-techniques.html 下面是我列出的的个人感觉最有用而又偏执的 10Java 编程技巧。请看: 1. 不要相信早期的JDK APIs Java刚出现的时候,编程一定是件很痛苦的事。那时的API仍然不够成熟,你可能曾经遇到过这样一段代码: ? 看起来很奇怪对吗? 前者违反了 Java 编码中 10 个微妙的最佳实践的规则#5和#6。因此一定要记得判 null检查! 3. ,但是正如我所说的,在经历了20年左右的编程生涯后,你不会想要再去修正那些只是因为编程语言的古老和固有缺陷而导致的愚蠢而不必要的bug了。因为你知道….. 现在,轮到你了! 你在编程时有哪些强迫症呢?

    2.5K20发布于 2018-06-04
  • 来自专栏平凡文摘

    国外大神总结的 10Java 编程技巧!

    下面是我列出的的个人感觉最有用而又偏执的 10Java 编程技巧。请看: 1. 不要相信早期的JDK APIs Java刚出现的时候,编程一定是件很痛苦的事。那时的API仍然不够成熟,你可能曾经遇到过这样一段代码: ? 看起来很奇怪对吗? 前者违反了 Java 编码中 10 个微妙的最佳实践的规则#5和#6。因此一定要记得判 null检查! 3. 10. 用大括号隔开 switch 的每一个 case 块 事实上,switch是最坑爹的语句,任何喝醉了或是赌输了的人都可以在某种语言中使用它。看看下面这个例子: ? ,但是正如我所说的,在经历了20年左右的编程生涯后,你不会想要再去修正那些只是因为编程语言的古老和固有缺陷而导致的愚蠢而不必要的bug了。因为你知道….. 现在,轮到你了! 你在编程时有哪些强迫症呢?

    84120发布于 2018-07-03
  • 来自专栏藏经阁

    Java】函数式编程与JUC编程问题?函数式编程如何解决线程安全问题

    在实际开发中,两者可以结合使用,以便更好地解决问题 函数式编程之所以突然兴起,是因为它具有以下优点: 易于并行处理: 由于函数式编程中的函数没有副作用,即对同样的输入始终产生相同的输出,因此可以很容易地将一个大问题分解成多个小问题 同时,在Java 8中引入了lambda表达式和Stream API等特性,使得函数式编程Java中得到了更好的支持。 在实际开发中,我们通常会使用多线程来实现并发编程 4. 函数式编程如何解决线程安全问题? 函数式编程可以通过使用不可变数据和纯函数来解决线程安全问题。 在函数式编程中,由于数据全部都是不可变的,并且纯函数没有副作用,所以没有并发编程问题,是多线程安全的。每一个纯函数都是线程安全,更容易被并行执行。 总之,在函数式编程中使用不可变数据和纯函数可以有效地解决线程安全问题,并且使得程序更加容易被并行执行

    68020编辑于 2023-03-08
领券