java知识点

来源:互联网 发布:淘宝商品怎么上橱窗 编辑:程序博客网 时间:2024/05/21 08:04
### java知识点

#### 第一条

  数组声明,时候,可以不用制定数组的长度,而且可以不停的往数组中存储自定义元素,在不知道数组长度和类型的情况下,可以采用数组声明的方式来做.

private Object[] arr;

#### 第二条

 1.list集合可以和数组并用,但是在使用的过程中,必须注意,数组中创建对象,必须单独拿出来写着一步骤.
ArrayList[] arr = new ArrayList[4];

 //先让集合数组存入名字
 for (int i = 0; i < arr.length; i++) {
  arr[i]=new ArrayList<>();
 }
 //往集合中存元素
 ArrayList<String> list = mySort();
 for (int i = 0; i < list.size(); i++) {
   int k = i/17;
    arr[k].add(list.get(i));
 }
#### 第三条

pollFirst();获取第一个元素,并将第一个元素并将第一个元素,从集合中删除掉.
枚举代码块里面写方法 返回值为这个类. 还要写一个抽象方法
or (int i = 0; i <10; i++) {

  My m = new My(num);//类变量的作用域,必须在变量发生变化的作用域中.
  Thread t = new Thread(m);
   t.setName("线程"+(i+1));
   num+=10;
  // System.out.println(num+"----------------------");
   t.start();
   t.join();
  
   把数组传入到String 中的空参构造,就不会打[] 号了.这里只能传入字节数组或者是字符数组.
### 泛型类,泛型接口和泛型方法的特点

 1.泛型类

​      在类的声明声明上定义泛型,他的属性和返回值和方法声明的类型,都必须是该泛型,允许使用void作为返回值.

2.泛型方法

​     在方法中定义泛型, 他的传入的参数必须与该泛型是一致的,如果该方法没有返回值,则这个方法不需要在上面加泛型.如果加了泛型,虽然不会报错,但是如果这个方法用来添加元素的话,是会报错的.

3.泛型接口

​      在接口中定义泛型,他的抽象方法,传入的参数也必须是和该声明的泛型是一致的.

### 数组转为字符串两种方式的区别

  通过String的空参构造,只能转化byte和char数组,不带括号,和逗号

通过Arrays.toString()的方式转化,转化的是它的内容

通过数组名,toString,转化的是它的地址值.

### 二维数组的拷贝

//二维数组的拷贝

  /*int[] ccc[] = {{1,2,3},{4,5,6},{73,32}};
  int[][] ddd = ccc.clone();
  ddd[1][1] = 100;  //深拷贝, 浅拷贝
  System.out.println(ccc[1][1]);*/

/printWriter 只有这个打印流,具备实时刷新功能. 其他输出流不具备这种功能

********************************************************************
####第五条,为什么socket编程,用BufferedWriter写数据,对方读不到数据?
    问题主要集中在,为什么客户端调用了write()和flush()后,服务器端依然read不到数据。
    因为socket.getOutputStream()取到的实现类是Java.NET.SocketOutputStream,这个类并没有覆写flush方法,
    它的父类java.io.FileOutputStream也没有覆写,于是最终就调到了最顶层java.io.OutputStream的flush()方法,这就恶心了,这个方法是空的。于是...

因此,还是使用Reader.readLine()和Writer.println()来处理socket吧,或者直接使用NIO
   最后还是使用printwriter来读取数据.
0 0
原创粉丝点击