java 错误: java找不到或无法加载主类类 Array3

java创建3维的数组_百度知道
java创建3维的数组
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
public class SearchArray {
public static void main(String[] args) {
String[][] arrayOfSring =
new String[][] { {&abc&, &de&, &gong&}, {&De&, &abc&}, {&Foo&, &gong&},
{&hello&, &java&, &world&}};
String target = &abc&;
endPoint: for (int i = 0; i & arrayOfSring. i++) {
for (int j = 0; j & arrayOfSring[i]. j++) {
String arrayElement = arrayOfSring[i][j];
if (arrayElement.equals(target)) {
System.out.println(target + &第一次出现在arrayOfSring数组中的位置:&);
System.out.println(target + &arrayOfSring[& + i + &][& + j + &]&);
break endP
java真的基础很差 请问这个是什么语言 是JAva语言吗
为你推荐:
其他类似问题
您可能关注的内容
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Exception in thread &main& java.lang.ArrayIndexOutOfBoundsException: 3_百度知道
Exception in thread &main& java.lang.ArrayIndexOutOfBoundsException: 3
importjava.util.Spublicclassmultiplication{publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);inta[][]=newint[2][3];intb[][]={{1,5,2,8},{5,9,10,...
import java.util.Spublic class multiplication { public static void main (String[] args){ Scanner input=new Scanner(System.in); int a[][]=new int[2][3];
int b[][]={ {1,5,2,8},{5,9,10,-3},{2,7,-5,-18} }; int c[][]=new int[2][4];
int i,j,k; System.out.println(&Build Array a! &); for( i=0;i&=a.i++){
for ( j=0;j&=a[i].j++){
a[i][j]=input.nextInt();
} }//给a赋值 for( i=0; i&=c. i++ ){
j=0; j&=c[i]. j++ ){
c[i][j]=0; }}//初始化数组C
for ( i=0;i&=a.length-1;i++){
for (k=0; k&=b[0].length-1; k++){
for (j=0;j&=b.length-1;j++){
c[i][k]=c[i][k]+a[i][j]*b[j][k];
System.out.println(&*** Matrix A ***&); output(a); System.out.println(&*** Matrix B ***&); output(b); System.out.println(&*** Matrix C ***&); output(c); } public static void output(int array[][]){
//loop through array's row
for(int row=0; row&array. row++){
//loop through array's columns
for(int column=0; column&array[row]. column++)
System.out.print(array[row][column]+& &);
System.out.println();
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
xiaojianhx
xiaojianhx
采纳数:1019
获赞数:3493
数组越界了注意数组的下标是从0开始,如:定义数组int []a = new int[3]
那么元素为 a[0],a[1],a[2] ,访问a[3],即数组越界循环的时候for (i = 0; i & a. i++) { // 不能&=a.length...}
来自电脑网络类芝麻团
采纳数:510
获赞数:2105
参与团队:
import java.util.Spublic class multiplication { public static void main (String[] args){ Scanner input=new Scanner(System.in); int a[][]=new int[2][3]; int b[][]={ {1,5,2,8},{5,9,10,-3},{2,7,-5,-18} }; int c[][]=new int[2][4]; int i,j,k; System.out.println(&Build Array a! &); for( i=0;i&=a.length-1;i++){
for ( j=0;j&=a[i].length-1;j++){
a[i][j]=input.nextInt();
} }//给a赋值 for( i=0; i&=c.length-1; i++ ){
j=0; j&=c[i].length-1; j++ ){
c[i][j]=0; }}//初始化数组Cfor ( i=0;i&=a.length-1;i++){
for (k=0; k&=b[0].length-1; k++){
for (j=0;j&=b.length-1;j++){
c[i][k]=c[i][k]+a[i][j]*b[j][k];
} }System.out.println(&*** Matrix A ***&); output(a); System.out.println(&*** Matrix B ***&); output(b); System.out.println(&*** Matrix C ***&); output(c); } public static void output(int array[][]){
//loop through array's row
for(int row=0; row&array. row++){
//loop through array's columns
for(int column=0; column&array[row]. column++)
System.out.print(array[row][column]+& &);
System.out.println();
} }}以上是修改后的代码.错误在于给a还有c赋值的时候for循环条件写错了,导致数组越界了.
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。如果你发现在一个接口使用有如下定义方法:
public String[] getParameters();
那么你应该认真反思。数组不仅仅老式,而且我们有合理的理由避免暴露它们。在这篇文章中,我将试图总结在Java API中使用数组的缺陷。首先从最出人意料的一个例子开始。
你可能认为使用数组是最快速的,因为数组是大多数collection实现的底层数据结构。使用一个纯数组怎么会比使用一个包含数组的对象性能更低?
让我们先从这个看起来很熟悉的普遍的习惯用法开始:
public String[] getNames() {
return namesList.toArray( new String[ namesList.size() ] );
这个方法从一个用来在其内部保存数据的可变集合处创建了一个数据. 它通过提供一个确切大小的数组来尝试优化数组的创建. 有趣的是,这一“优化”使得其比下面的更简单的版本速度还要慢(请看图表中绿色VS橘色条):
public String[] getNames() {
return namesList.toArray( new String[ 0 ] );
不过,如果方法返回的是一个List, 创建防御式的副本又更加的快了 (红条):
public List&String& getNames() {
return new ArrayList( namesList );
不同之处在于一个ArrayList将它的数据项放在一个Object[]数组中,并且使用的是无类型的toArray方法,其比有类型的方法要快很多(蓝条). 这是类型安全的,因为无类型的数组时封装在由编译器检查的泛型类型ArrayList&T&中的.
这个图标展示了一个在Java 7上n=5的参考标准. 不过,更多的数据项或者是另外一个VM情况系啊,这幅图片并不会改变太多. CPU的开销可能并不会太剧烈,但是会有增长. 机会有一个数组的使用者应该将其转换到一个集合中去,以便利用它做任何事情, 然后将结果转换回一个数组,来送进另外一个接口的方法中,诸如此类做法.
是用一个简单的ArrayList,而不是一个数组来提升性能,无需再动太多的手脚. ArrayList 为封装的数组增加了32字节的恒定开销. 例如,一个有十个对象的数组需要104字节,一个ArrayList 136字节.
使用 集合,你甚至可能决定返回内部列表的一个不可修改的版本:
public List&String& getNames() {
return Collections.unmodifiableList( namesList );
此操作会在固定的市价运行,因此他比任何上述其它的方法都要快很多(黄条). 其同一个防御式的拷贝不同。一个不可修改的集合将会在你的内部数据变化时跟着变化。如果变化发生了,客户端会在迭代数据项时运行到一个ConcurrentModificationException中. 可以认为它是一个糟糕的设计,接口提供了一个在运行时抛出一个UnsupportedOperationException. 不过,至少对于内部的使用,这个方法对于一个防御式的拷贝而言,会是一个高性能的选择 – 一些不可能使用数组实现的东西.
Java 是一门面向对象的语言。面向对象的核心概念就是提供一些方法来访问和操作它们的数据,而不是直接对数据域进行操作. 这些方法创建一个接口来描述你可以在对象上面做的事情.
由于java已经对性能做了设计,原生类型和数组已经被融合进了类型系统之中. 对象可以使用数组来在内容高效地存储数据. 然而,即使通过数组来呈现一个可变集合的元素,它们也不会提供任何方法来访问和操作这些元素. 事实上,除了直接访问的替换元素之外,在数组上你没有多少其它事情可以做. 数组甚至连toString 和 equals 都没有一个有意义的实现, 而集合却有:
String[] array = { “foo”, “bar” };
List&String& list = Arrays.asList( array );
System.out.println( list );
// -& [foo, bar]
System.out.println( array );
// -& [Ljava.lang.S@6f548414
list.equals( Arrays.asList( "foo", "bar" ) )
// -& true
array.equals( new String[] { “foo”, “bar” } )
// -& false
不同于数组,集合的 API 提供了许多有用的方法来访问元素. 用户可以检查包含的元素,提取子列表或者计算交集. 集合可以向数据层添加特定的特性, 诸如线程安全,同时将实现原理保持在内部可见.
通过使用一个数据,你定义了数据被保存在内存中的哪个地方. 通过使用一个集合,你定义了用户可以在数据上做的操作.
如果你依赖于编译器检查的类型安全,小心对象数组. 下面的代码会在运行时奔溃,但是编译器找不出问题所在:
Number[] numbers = new Integer[10];
numbers[0] = Long.valueOf( 0 ); // throws ArrayStoreException
原因是数组是“协变式”的, 比如,如果 T 是S 的一个子类型, 那么 T[] 就会是 S[] 的一个子类型. Joshua Bloch 在其著作
涵盖了所有的理论, 每一个Java开发者必读.
归因于这个行为,暴露数组类型的接口允许返回声明数组类型的一个子类型, 导致了一个怪异的运行时异常.
Bloch 同时也解释说,数组与泛型类型不兼容. 因为数组会在运行时强制要求有类型信息,而泛型则会在编译时被检查,泛型类型不能被放到数组中.
一般而言,数组和泛型不能很好的融合。如果你发现自己在融合它们而得到了一个编译时错误或者警告,那你的第一反应应该是用list去替换数组.
- Joshua Bloch, Effective Java (第二版), 第29条
数组底层的语言构造、它们会被用在实现中,但是它们不应该想其它的类暴露. 在一个接口方法中使用数组违背了面向对象的原则,它会导致违和的API,并且它也可能给类型安全和性能造成短板.
接口测试传递数组参数
Java数组优缺点
Java接口定义规范,摘自晓风轻专栏
JAVA HTTP POST参数为一个对象或数组
没有更多推荐了,这种错误是我在浏览一篇博文上看到的,具体原因是:在linux环境UTF8下每个汉字的字节数为3位(Windows中是2位)的缘故,出现了上诉的奇异现象。
这种错误是我在浏览一篇博文上看到的,具体原因是:在linux环境UTF8下每个汉字的字节数为3位(Windows中是2位)的缘故,出现了上诉的奇异现象。
错误信息如下:
java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at jxl.biff.StringHelper.getBytes(StringHelper.java:127)
at jxl.write.biff.WriteAccessRecord.&init&(WriteAccessRecord.java:59)
at jxl.write.biff.WritableWorkbookImpl.write(WritableWorkbookImpl.java:726)
神奇的是,在项目中发现该现象只有在Linux环境下才发生而Window下则正常运行。
根据错误信息的提示,发现问题出在WriteAccessRecord文件里,其源代码如下所示:
view plain
1.package jxl.write.
3.import jxl.W
4.import jxl.biff.StringH
5.import jxl.biff.T
6.import jxl.biff.WritableRecordD
9. * The name used when Excel was installed.
10. * When writing worksheets, it uses the value from the WorkbookSettings object,
11. * if this is not set (null) this is hard coded as
12. * Java Excel API + Version number
14.class WriteAccessRecord extends WritableRecordData
* The data to output to file
private byte[]
// String of length 112 characters
* The author of this workbook (ie. the Java Excel API)
private final static String authorString = "Java Excel API";
private String userN
* Constructor
public WriteAccessRecord(String userName)
super(Type.WRITEACCESS);
data = new byte[112];
String astring = userName != null ?
userName :
authorString + " v" + Workbook.getVersion();
StringHelper.getBytes(astring, data, 0);
// Pad out the record with space characters
for (int i = astring.length() ; i & data.i++)
data[i] = 0x20;
* Gets the data for output to file
* @return the binary data
public byte[] getData()
分析上诉代码发现,byte数组data的最大长度被定义为112,当被传入的参数userName达到一定长度时就会抛错。
跟踪代码WritableWorkbookImpl发现,userName实际就是WorkbookSettings类中的writeAccess字段,亦即生成Excel是的用户信息。可能在linux环境UTF8下每个汉字的字节数为3位(Windows中是2位)的缘故,出现了上诉的奇异现象。
解决的办法如下:
1.修改JXL源代码中WriteAccessRecord文件代码,重新设置变量data的长度,例如:data = new byte[astring.getBytes().length];
2.一般我们在读取模板文件生成新的Excel时往往使用如下代码:
view plain
1.import java.io.F
3.import jxl.W
4.import jxl.write.WritableS
5.import jxl.write.WritableW
7.public class Test {
public static void main(String[] args) throws Exception {
Workbook wb = Workbook.getWorkbook(new File("C:/data_template.xls"));
WritableWorkbook workbook = Workbook.createWorkbook(new File("C:/data_output.xls"), wb);
WritableSheet sheet = workbook.getSheet(3);
sheet.getSettings().setSelected(true);
workbook.write();
workbook.close();
只要在代码中强制设置变量WorkbookSettings.writeAccess的值即可,例如:
Workbook wb = Workbook.getWorkbook(new File("C:/data_template.xls"));
WorkbookSettings settings = new WorkbookSettings ();
settings.setWriteAccess(null);
WritableWorkbook workbook = Workbook.createWorkbook(new File("C:/data_output.xls"), wb, settings);
WritableSheet sheet = workbook.getSheet(3);
sheet.getSettings().setSelected(true);
workbook.write();
workbook.close();
转自:http://lzqdll.blog.163.com/blog/static//
java.lang.ArrayIndexOutOfBoundsException异常分析及解决
使用JXL生成Excel时发生java.lang.ArrayIndexOutOfBoundsException错误
Tomcat 或JBOSS java.lang.ArrayIndexOutOfBoundsException: 8192原因及其解决方法
jetty 启动项目报错:java.lang.ArrayIndexOutOfBoundsException: 52264
maven编译时java.lang.ArrayIndexOutOfBoundsException
jetty启动报错:java.lang.ArrayIndexOutOfBoundsException: 24879
eclipse用maven运行项目报错java.lang.ArrayIndexOutOfBoundsException: 28054
java.lang.ArrayIndexOutOfBoundsException: 160
没有更多推荐了,}

我要回帖

更多关于 java找不到或无法加载 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信