想学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