java编程中遇到的部分问题【点击文中参考解答】

简介: java编程中遇到的部分问题【点击文中参考解答】

版权声明:本文为博主原创文章,未经博主允许不得转载。    https://blog.csdn.net/qq_41570658

0 、最大公约数 ,2300年前的欧几里得发明的算法,我还不太清楚  

参考解答

1 、java 中的java.util.* 和 java.awt.* 使用时有什么区别?  

参考解答

2 、Syntax error, insert “Dimensions” to complete ReferenceType Listclass,报错,为啥?  

参考解答:java的泛型中的参数是不允许使用原始类型的。都需要用引用类型。如Integer  

                   泛形要求能包容的是对象类型,而基本类型在java里不属于对象  

3 、编程小建议  

参考解答

4、 为什么有这个错误呢(Syntax error on token “;”, @ expected)  

参考解答 [语句要写在方法体里面]

5 、剩余内容  

参考解答:IO输出;反射;枚举类型与泛型;多线程;网络通信;连接数据库

6 、在java输入流中,字节与字符有什么区别?  

     1) 参考解答

在读写文件,需要对内容按行处理,比如比较特定字符,处理某一行数据的时候一般会选择字符流。只是读写文件,和文件内容无关的,一般选择字节流。  

     2)参考解答

以下文字解释讲的更详细些

                     ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

(1)字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件 
(2)以两个写文件的操作进行比较,在操作时,字节流和字符流的操作完成之后都不关闭输出流。首先使用字节流不关闭执行,在文件中也仍然存在了输出内容,证明字节流是直接操作文件本身的;而使用字符流完成下,发现程序运行后在文件中没有任何内容,这是因为字符流操作时使用了缓冲区,而关闭字符流时会强制性地将缓冲区中的内容进行输出,但是如果程序没有关闭,则缓冲区中的内容时无法输出的。 
(3)缓冲区可以理解为一段内存区域。某些情况下,一个程序频繁地操作一个资源,则性能会很低,此时为了提升性能,就可以将一部分数据暂时读入到内存的一块区域之中,以后直接从此区域中读取数据即可;在字符流操作中,所有的字符都是在内存中形成的,在输出前会将所有的内容暂时保存在内存之中,所以使用了缓冲区暂存数据。 
(4)如果想在不关闭时也可以将字符流的内容全部输出,则可以使用Writer类中的flush()完成 
(5)所有的文件在硬盘或者传输时都是以字节的方式进行的,包括图片都是按照字节的方式存储的,而字符是只有在内存中才会形成,因此开发中,字节流使用较为广泛 
(6)InputStream,OutputStream,Reader,Writer都是抽象类,所以不能直接new 
(7)字节流是最基本的,所有的InputStream和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的, 
但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化 
这两个之间通过 InputStreamReader, OutputStreamWriter来关联,实际上是通过byte[]和String来关联 
在实际开发中出现的汉字问题实际上都是在字符流和字节流之间转化不统一而造成的 

7 、关于JAVA.IO中的flush()方法  

参考解答 :flush()方法是输出储存在内存中全部的内容(批量输出)。 常用比如FileWriter类中就是一个典型,除了可以使用flush输出,最后调用close方法也会批量输出  

8 、Java NIO和IO的主要区别  

参考解答

9 、关于Java的File.separator  

参考解答

在Windows下的路径分隔符(\)和在Linux下的路径分隔符(/)是不一样的,当直接使用绝对路径时,跨平台会报No Such file or diretory异常  

File中还有几个与separator类似的静态常量,与系统有关,在编程中应尽量使用。  

ps:File file = new File(“G:”+ File.separator +”demo.txt”);

部分自我练习

1、 Java中String类的构造方法  

参考解答

public String (byte[] byte,int index,int length):从字节数组的第index位将字符串的length个字节转化为字符串  

要注意它这里其实是将字节数组进行了转码,将字节数组转码成字符  

2、 InputStream read()方法详解  

参考解答

目录
相关文章
|
22天前
|
Java 程序员
Java编程中的异常处理:从基础到高级
在Java的世界中,异常处理是代码健壮性的守护神。本文将带你从异常的基本概念出发,逐步深入到高级用法,探索如何优雅地处理程序中的错误和异常情况。通过实际案例,我们将一起学习如何编写更可靠、更易于维护的Java代码。准备好了吗?让我们一起踏上这段旅程,解锁Java异常处理的秘密!
|
2天前
|
存储 缓存 Java
Java 并发编程——volatile 关键字解析
本文介绍了Java线程中的`volatile`关键字及其与`synchronized`锁的区别。`volatile`保证了变量的可见性和一定的有序性,但不能保证原子性。它通过内存屏障实现,避免指令重排序,确保线程间数据一致。相比`synchronized`,`volatile`性能更优,适用于简单状态标记和某些特定场景,如单例模式中的双重检查锁定。文中还解释了Java内存模型的基本概念,包括主内存、工作内存及并发编程中的原子性、可见性和有序性。
Java 并发编程——volatile 关键字解析
|
6天前
|
算法 Java 调度
java并发编程中Monitor里的waitSet和EntryList都是做什么的
在Java并发编程中,Monitor内部包含两个重要队列:等待集(Wait Set)和入口列表(Entry List)。Wait Set用于线程的条件等待和协作,线程调用`wait()`后进入此集合,通过`notify()`或`notifyAll()`唤醒。Entry List则管理锁的竞争,未能获取锁的线程在此排队,等待锁释放后重新竞争。理解两者区别有助于设计高效的多线程程序。 - **Wait Set**:线程调用`wait()`后进入,等待条件满足被唤醒,需重新竞争锁。 - **Entry List**:多个线程竞争锁时,未获锁的线程在此排队,等待锁释放后获取锁继续执行。
33 12
|
3天前
|
存储 安全 Java
Java多线程编程秘籍:各种方案一网打尽,不要错过!
Java 中实现多线程的方式主要有四种:继承 Thread 类、实现 Runnable 接口、实现 Callable 接口和使用线程池。每种方式各有优缺点,适用于不同的场景。继承 Thread 类最简单,实现 Runnable 接口更灵活,Callable 接口支持返回结果,线程池则便于管理和复用线程。实际应用中可根据需求选择合适的方式。此外,还介绍了多线程相关的常见面试问题及答案,涵盖线程概念、线程安全、线程池等知识点。
27 2
|
26天前
|
设计模式 Java 开发者
Java多线程编程的陷阱与解决方案####
本文深入探讨了Java多线程编程中常见的问题及其解决策略。通过分析竞态条件、死锁、活锁等典型场景,并结合代码示例和实用技巧,帮助开发者有效避免这些陷阱,提升并发程序的稳定性和性能。 ####
|
26天前
|
缓存 Java 开发者
Java多线程编程的陷阱与最佳实践####
本文深入探讨了Java多线程编程中常见的陷阱,如竞态条件、死锁和内存一致性错误,并提供了实用的避免策略。通过分析典型错误案例,本文旨在帮助开发者更好地理解和掌握多线程环境下的编程技巧,从而提升并发程序的稳定性和性能。 ####
|
19天前
|
安全 算法 Java
Java多线程编程中的陷阱与最佳实践####
本文探讨了Java多线程编程中常见的陷阱,并介绍了如何通过最佳实践来避免这些问题。我们将从基础概念入手,逐步深入到具体的代码示例,帮助开发者更好地理解和应用多线程技术。无论是初学者还是有经验的开发者,都能从中获得有价值的见解和建议。 ####
|
19天前
|
Java 调度
Java中的多线程编程与并发控制
本文深入探讨了Java编程语言中多线程编程的基础知识和并发控制机制。文章首先介绍了多线程的基本概念,包括线程的定义、生命周期以及在Java中创建和管理线程的方法。接着,详细讲解了Java提供的同步机制,如synchronized关键字、wait()和notify()方法等,以及如何通过这些机制实现线程间的协调与通信。最后,本文还讨论了一些常见的并发问题,例如死锁、竞态条件等,并提供了相应的解决策略。
43 3
|
24天前
|
开发框架 安全 Java
Java 反射机制:动态编程的强大利器
Java反射机制允许程序在运行时检查类、接口、字段和方法的信息,并能操作对象。它提供了一种动态编程的方式,使得代码更加灵活,能够适应未知的或变化的需求,是开发框架和库的重要工具。
38 2
|
25天前
|
安全 Java 开发者
Java中的多线程编程:从基础到实践
本文深入探讨了Java多线程编程的核心概念和实践技巧,旨在帮助读者理解多线程的工作原理,掌握线程的创建、管理和同步机制。通过具体示例和最佳实践,本文展示了如何在Java应用中有效地利用多线程技术,提高程序性能和响应速度。
59 1