牛客网Java错题总结(10)

目录

一、Socket通信

二、package

三、内部类

四、static类变量

五、取反运算符“~”

六、变量


 

一、Socket通信

解析:

Socket套接字,就是源Ip地址+目标IP地址+源端口号和目标端口号

  • 服务器端:ServerSocket提供的实例
    • ServerSocket server= new ServerSocket(port)
    • Socket socket=server.accept();
  • 客户端:Socket提供的实例
    • Socket soc=new Socket(ip, port)
//server
ServerSocket server = new ServerSocket(port);
Socket socket = server.accept();
InputStream inputStream = socket.getInputStream();
inputStream.close();
socket.close();
server.close();

//client
Socket socket = new Socket(host, port);//server hostip,ort
socket.getOutputStream();
outputStream.close();
socket.close();

参考网址:https://blog.csdn.net/weixin_39478524/article/details/113566466

 

二、package

解析:

包的作用

  1. 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
  2. 如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。
  3. 包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。

Java 使用包(package)这种机制是为了防止命名冲突,访问控制,提供搜索和定位类、接口、枚举和注释等。

 

三、内部类

解析:

  • 1、静态内部类:
    • 可以访问外部的静态资源,包括静态私有资源
    • 不能访问非静态资源,可以不依赖外部类实例而实例化
  • 2、成员内部类:
    • 可以访问外部的所有资源
    • 不能定义静态资源,因为实例化本身依赖外部类
  • 3、局部内部类:
    • 不能被访问修饰符修饰,也不能被static修饰
    • 只能访问所在代码块或者方法中被定义为final的局部变量
  • 4、匿名内部类:
    • 没有类名的内部类,不能使用class,extends和implements,没有构造方法。
    • 多用于GUI中的事件处理。
    • 不能定义静态资源
    • 只能创建一个匿名内部类实例。
    • 一个匿名内部类一定是在new后面的,这个匿名类必须继承一个父类或者实现一个接口。
    • 匿名内部类是局部内部类的特殊形式,所以局部内部类的所有限制对匿名内部类也有效。

 

四、static类变量

解析:

x的修饰符为 static,所以x为类变量,

对于所有的实例来说,他们访问的x为同一个x,类变量存储在方法区,不属于每个实例的私有

  • 刚开始x=100

  • 调用hs1.x++,x为101;

  • 调用hs2.x++,x为102;

  • 调用hs1.x++,x为103 (此时hs1指向了一个新的HasStatic实例,但是依然访问的是同一个X)

  • 调用HasStatic.x--  x为102

 

五、取反运算符“~”

解析:

“~”代表按位取反,~j 表示 对 j 按位取反,

取反公式:~i= -(i+1)

推导过程:-n = ~n + 1      →    ~n = -n -1 

~j:~10 =  - 10 - 1 = -11

i + j = 5 + -11 = -6 

 

二进制推导

计算机本身储存的就是补码:

那么10的补码就是10的原码:0000 0000 0000 1010

~10的补码就是:1111 1111 1111 0101

~10的反码就是:1111 1111 1111 0100——补码减1

~10的原码就是:1000 0000 0000 1011——反码取反

换算为整数为-11,所以未5-11=-6

 

六、变量

解析:

类变量:独立于方法之外的变量,用 static 修饰

实例变量(全局变量):独立于方法之外的变量,不过没有 static 修饰

局部变量:类的方法中的变量

  • A:类的成员变量包括实例变量和类变量(静态变量),成员方法包括实例方法和类方法(静态方法)。 A正确
  • B:类变量(静态变量)用关键字static声明,B错误
  • C:方法中的局部变量在方法被调用加载时开始入栈时创建,方法入栈创建栈帧,包括局部变量表操作数栈,局部变量表存放局部变量,并非在执行该方法时被创建,C错误
  • D:局部变量被使用前必须初始化,否则程序报错。D正确
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值