×

从零开始学编程需要学什么 学java java

想学java编程,前提是要学会哪些东西?javascript数组有没有indexOf方法

admin admin 发表于2022-05-25 00:06:24 浏览237 评论0

抢沙发发表评论

想学java编程,前提是要学会哪些东西


有要先下载jdk安装环境

想学Java的话,要经历这几个阶段

阶段一Java基础:具备Java语言编程基础和IO、多线程、网络编程等开发能力,但还不符合企业用人标准,可为后期学习打下坚实基础

阶段二JavaWeb:掌握服务器的基本概念,掌握JavaWeb开发基础知识,掌握数据库的基本使用和Java操作数据库,满足Java软件开发行业的初级需求

阶段三Java开发框架:掌握SpringBoot开发基本流程,MybatisPlus数据库端操作,前端框架vue,可应对Java开发初中级岗位,薪资可达9000-12000元/月

阶段四中间件&服务框架:本阶段符合Java开发市场发展趋势,学员可轻松应对Java互联网开发大部分岗位,根据市场反馈,薪资可达15000-18000元/月

阶段五项目实战:模拟企业真实项目场景,提高技术应用能力和项目解决能力

阶段六大厂面试专题:围绕大厂高频面试题,给出详尽解答,针对JVM、数据库优化、Spring系列、分布式系列等专题精心设计,圆你大厂梦!

下面是详细的学习路线图,大家可以照着学习路线图找资源学习


javascript数组有没有indexOf方法


在js最新标准ECMA5中数组是支持的indexOf方法的(目前的主流浏览器均支持ECMA5)


ECMA5新增的方法:

			/**
 * ECMA5数组新增方法
 */

// 1.indexOf 比较的是 ’===’
// var arr = [1, 2, 3, 4, 5, 4, 3, 2, 1];
// // 一个参数: 返回3在数组arr的索引
// var index1 = arr.indexOf(3);
// alert(index1); // 2
// // 两个参数: 从第5个位置查找3, 返回3在arr的索引
// var index2 = arr.indexOf(3, 5);
// alert(index2); // 6

// 2.lastIndexOf (从后面查找)

// 3.五个迭代方法(不改变原数组)
// var arr2 = [1, 2, 3, 4, 5, 4, 3, 2, 1];
// 3.1.every对数组的每一元素,调用回调函数运行, 如果回调函数都返回true,结果返回true; 如果回调函数有一个返回false, 返回false
// 当every回调函数返回false时, 函数直接返回
// var r1 = arr2.every(function(item, index, array) {
// document.write(item);
// return item 》 2;
// });
// alert(r1);
// alert(arr2);

// 3.2.filter对于数组的每一个元素, 调用回调函数进行过滤, 返回过滤后的结果
// var r2 = arr2.filter(function(item, index, array) {
// return item 》 3;
// });
// alert(r2);

// 3.3.foreach对于数组的每一个元素, 调用回调函数(没有返回值)
// var r3 = arr2.forEach(function(item, index, array) {
// document.write(item);
// });
// alert(r3); // undefined

// 3.4.map对于数组的每一个元素, 调用回调函数, 返回一个新数组
// var r4 = arr2.map(function(item, index, array) {
// return item*2;
// });
// alert(r4);
// alert(arr2);

// 3.5.some对数组的每一元素,调用回调函数运行, 如果回调函数任意一个返回true,结果返回true; 如果回调函数都返回false, 返回false
//  当some回调函数返回true时, 函数直接返回
// var r5 = arr2.some(function(item, index, array) {
// document.write(item);
// return item 》 2;
// });
// alert(r5);
// alert(arr2);

//4.reduce, reduceRight (遍历的起始位置不同)
// var arr3 = [1, 2, 3, 4, 5, 4, 3, 2, 1];
// // prev: 前一个值
// // cur: 当前值
// var r6 = arr3.reduce(function(prev, cur, index, array) {
// return prev + cur; 
// });
// alert(r6); // 求数组和

var arr3 = [1, 2, 3, 4, 5, 4, 3, 2, 1];
var r7 = arr3.reduceRight(function(prev, cur, index, array) {
return prev + cur; 
});
alert(r7); // 求数组和


数组其他方法:

/**
* js中的数组类似与java中的map, 长度可任意改变, 元素类型任意
 */

// 一.创建数组
// 方法1.
// var arr1 = new Array();
// // 方法2.
// var arr2 = [1, 2.2, true, “hello“];
// alert(arr2.length);
// arr2.length = 3; // 小于实际长度, 会进行截断; 大于实际长度, arr2[length-1]返回的是undefined
// alert(arr2); // 隐式的调用了arr2.toString()方法

// 二.数组常用方法
// 1.pop , push
// var arr3 = ;
// arr3.push(1);
// arr3.push(2, 3); // 可以推入多个值, 返回数组的长度
// alert(arr3.push(4, 5)); // 返回数组的长度 5
// alert(arr3);
// arr3.pop(); // 从数组的尾部移除一个元素, 返回移除的元素
// alert(arr3.pop()); // 返回移除的元素 4
// alert(arr3);

// 2.shitf, unshitf
// var arr4 = [1, 2, 3, 4, 5];
// alert(arr4.shift()); // 从数组首部移除元素, 返回移除的元素
// alert(arr4);
// arr4.unshift(“a“); // 从头部插入元素, 返回数组的长度
// alert(arr4.unshift(“b“, “c“)); // 返回数组的长度 7
// alert(arr4);

// 3. splice, slice 
/**
 * splice: 改变数组本身
 * slice: 不改变数组
 */
// var arr5 = [1, 2, 3, 4, 5];
// // splice: 
// //        第一个参数: 表示从哪个位置进行删除
// //        第二个参数: 表示删除的个数
// //        第三个参数及以后: 表示从截取的位置插入的元素
//          //        返回值: 原数组被删除的元素
// var r = arr5.splice(1, 2, 3, 4, 5); // splice(1)==》 1 | splice(1, 2)==》 1, 4, 5
// alert(r); // 被删除的元素
// alert(arr5); // 1, 3, 4, 5, 4, 5
// var arr6 = [1, 2, 3, 4, 5];
// var r2 = arr6.slice(2, 4); // 左闭右开区间, 返回被截取的元素
// alert(r2); // 3, 4
// alert(arr6); // 1, 2, 3, 4, 5 

//4. contact, join
/**
 * contact 和 join 均不改变数组本身
 * 
 */
// var arr7 = [1, 2, 3];
// var arr8 = [4, 5, 6, 7];
// var r3 = arr7.concat(arr8);
// alert(“arr7: “ + arr7);
// alert(“arr8: “ + arr8);
// alert(“concat: “ + r3);

// var r4 = arr7.join(“-“); // 每个元素间加-, 返回的是一个字符串
// alert(“arr7: “ + arr7);
// alert(“join: “ + r4);

// 5. sort, reverse
/**
 * sort, reverse均改变数组本身
 * sort: 默认将每个元素变为字符串,进行比较
 */
// var arr9 = [8, 4, 3, 9, 5, 9, 0, 1, 10, true];
// var r5 = arr9.sort(); // 正序排序, 返回排序后的数组
// alert(r5); // 返回排序后的数组
// alert(arr9); // 数组的序列已经被改变(正序)
//
// arr9 = [8, 4, 3, 9, 5, 9, 0, 1]; 
// var r6 = arr9.reverse(); // 逆序输出, 返回逆序的数组
// alert(r6); // 返回逆序的数组
// alert(arr9); // 数组元素已经被改变

var arr = [8, 4, 3, 9, 5, 9, 10, 1]; 
function compare(v1, v2) {
if (v1 》 v2)
return 1;
else if (v1 《 v2)
return -1;
else
return 0;
}
alert(arr.sort()); // 转换为字符串排序
alert(arr.sort(compare)); // 自定义排序

java 是什么语言写的


JAVA中就虚拟机是其它语言开发的,用的是C语言+汇编语言 基于此之上就是JAVA本身了 虚拟机只起到解析作用

另外,JAVA并不比C语言慢,说JAVA慢一般是九十年代那时候的JAVA, 而现在 在一段优秀的JAVA程序和C程序执行效率上来比较是没有多大差距的 并且现在JAVA已经可以像C语言那样,直接编译为可执行文件(不用虚拟机,跨平台为代价)了
不知道你看过 卓越编程之道二(运用底层思维编写高级代码) 没有,那里面详细的讲述了高级语言从编写到编译执行的过程,通过目标文件的反汇编对比,发现C,C++,JAVA,dephi等语言在同等质量下的目标文件长度上基本上没多大区别,一门语言的运行速度快慢,与你编写代码过程中是否符合编译器规则息息相关。 有空你可以去看看这本书。
-学java