Java数组总结
转至:http://sllereak.blog.163.com/blog
--java里面的数组不能这样写int a[5];
*为什么呢?如果这样写的话一般情况下会将五个内存空间分配到栈上,但是java的数据是放在堆上的,栈上只能分配一个指针地址而已
*数组的神明有两种方式int[] a;或者int a[];
--数据的问题
方法中int[] a=new int[5];由于使用了new关键字,那么数组中的值(堆中已经分配内存)都被初始化成了0(初始化规则和类的成员变量一致);如果只值类型就能直接使用里面元素了,如果是引用类型,由于初始化成null所以不能使用
如果不需要系统默认的给数组给初始值,而是我们手动给值,那么就不能显示的制定数据的长度,比如int[] a=new int[3]{1,2,3}这样的写法是错误的
--初始化的方式
第一种:动态初始化.int[] i=new int[3];i[0]=1;i[1]=2;i[2]=3;
第二种:静态初始化.int[] i={1,2,3}内存执行过程和动态初始化完全一致,只是编译器层面的一次封装而已
第三种:int[] k=new int[]{1,2,3};也只是编译层面的封装,和动态初始化的内存执行过程一致
--注意字符串到基本数据类型的转换不能用(int)类似的方式强转,而必须使用Interger.parseInt()这种对应的封装类型做转换
--java里面的多维数组在内存中是树状形式分配的
所以必须要有了根再有干再有叶子
这也是为什么int[][] i=new int[3][4]正确
int[][] i=new int[3][]正确
int[][] i=new int[][4]错误
int[][] i=new int[][]{{1,2},{1,2,3},{4,5,6}};正确(也是如果手动分配的时候不能写任何长度)
int[][] i={{1,2},{3,4}}正确
由于是树状的那么i[0]也是一个数组哦,是一个引用类型指针变量,掌握了这个就掌握了一切
所以分析这样的问题(注意理解内存分配过程)
int[][] i=new int[3][4];其中i[0]不为空
int[][] i=new int[3][];其中i[0]为空
相关文档:
今天想读取src下的配置文件,以前一直没找到方法,今天研究了下终于OK了
System.out.println("path1:" + getClass().getResource("config.xml").getPath());
System.out.println("path2:" + getClass().getClassLoader().getResource("config.xml").getPath());
path1:/D:/DJ/workspace/.metadata ......
1.1.1. 集合框架中的接口
所谓框架就是一个类库的集合。集合框架就是一个用来表示和操作集合的统一的架构,包含了实现集合的接口与类。
* Collection:集合层次中的根接口,JDK没有提供这个接口直接的实现类。
* Se ......
如果你想对java加载类的机制有比较深入的理解的话,请你花点时间好好阅读一下这篇东西.
这里从三个方面讲述java classloader
1,将从web应用出发模拟一下web应用的classloader(这节是重点)
2,通过测试2实现的classloader来加深理解
& ......
实现一个RMI应用程序(实验报告)
㈠实验内容
实现一个简单的实时聊天系统。
㈡处理流程
1、系统设计
① 创建回调接口
定义一个回调接口,服务器端可以回调此接口中声明的方法。该接口必须继承远程接口即Remote。
② 创建一个本地接口
在该接口中添加本接口的实现类中的 ......
安装选择GBK,使用选择UTF-8。
解决方法一:(最重要的一种方法)
打开mysql目录下的bin文件夹,找到my.ini,使用记事本找开,分别找“[mysql]、[client]、[mysqld]”,添加(或改成)“default-character ......