java遇到的一些问题及解决方案(持续更新)

问题1:

 错误:编码GBK的不可映射字符

解决办法:(修改编码)

输入javac  -encoding utf-8  文件名.java 

2、问题public static void main(String[] args)解释

这里要对main函数讲解一下,参数String[] args是一个字符串数组,接收来自程序执行时传进来的参数
如果是在控制台,可以通过编译执行将参数传进来,命令行如下:
javac HashMapTest.java 
java HashMapTest  a b c   // 字符串以空格的方式隔开
这样传进main函数的就是一个字符串数组, args[0] =a; args[1]=b;args[2]=c,  如果不传参数进来,args为空

 但是在eclipse中可以这样把参数传进来,Run ---- RunComfigurations----找到要运行的主类 ------ 有一个arguments 可以配置main函数的参数 Programmer arguments和VM(虚拟机)的参数(可以定义项目占据的空间内存等等),

3、ava toCharArray() 方法

toCharArray() 方法将字符串转换为字符数组。

语法

public char[] toCharArray()

实例:

public class Test {
    public static void main(String args[]) {
        String Str = new String("www.runoob.com");

        System.out.print("返回值 :" );
        System.out.println( Str.toCharArray() );
    }
}


//返回值 :www.runoob.com

4、ava Character 类

Character 类用于对单个字符进行操作。

Character 类在对象中包装一个基本类型 char 的值

面是Character类的方法:

序号 方法与描述
1 isLetter()
是否是一个字母
2 isDigit()
是否是一个数字字符
3 isWhitespace()
是否是一个空白字符
4 isUpperCase()
是否是大写字母
5 isLowerCase()
是否是小写字母
6 toUpperCase()
指定字母的大写形式
7 toLowerCase()
指定字母的小写形式
8 toString()
返回字符的字符串形式,字符串的长度仅为1

5、表达式1&3&5&7的值为什么是1?

答: 他们的末位都是1,这是一个 位与运算 即 0001 & 0011 & 0101 & 0111 = 0001 也就是 1

6、Java语言为什么不支持多重继承

这个要先从多重继承概念说起
c++首先引入的多重继承带来了诸如菱形继承一类的问题,而后为了解决这个问题又不得不引入了虚继承这种概念。然而在实际的应用中人们发现继承更多的只被用在两种场合:扩充/改善基类,以及实现多态。对于前者,单继承足以;而对于后者,则真正需要的其实是纯抽象类,即只包含纯虚函数的基类。而对于这一种基类,由于其目的和普通的实例类已经有所不同,因此在java中将其改称为interface,即接口加以明确区分。
因此,java或者c#所谓的不支持多重继承,只是不支持对实例类的多重继承——因为这种继承所带来的一点点代码上的缩减远比不上其引入的麻烦,但是对于用于实现多态的多重继承,即implement interface依然是很好的支持了的。

7、@Override这个标签作用 


1)可以给你当作注释用,感觉这个也不能说明什么,注释也没什么用。 
2)可以告诉读你代码的人,这是对它父类方法的重写,其实很多代码规范没有为什么,规范就是规范;
3)编译器可以给你验证@Override下面的方法名称是否是你父类中所有的,如果没有就会报错。

比如当你想要在子类中重写父类的一个方法,但是你把名字打错了,当你写了@Override编译器会提示你,你写的这个方法父类中没有;但是如果你没有写@Override编译器就会觉得这个是你子类中写的新的方法,并不会报错,到时候你debug还是很麻烦的一件事。

8、java extend 和 implements 的区别 

1. 在类的声明中,通过关键字extends来创建一个类的子类。一个类通过关键字implements声明自己使用一个或者多个接口。
extends 是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法; implements 是实现多个接口, 接口的方法一般为空的, 必须重写才能使用
2.extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,JAVA中不支持多重继承,但是可以用接口 来实现,这样就要用到implements,继承只能继承一个类,但implements可以实现多个接口,用逗号分开就行了
比如 class A extends B implements C,D,E

猜你喜欢

转载自blog.csdn.net/weixin_40449300/article/details/83744229