首页编程java编程初学java看什么书zhihu,java基础都有那些

初学java看什么书zhihu,java基础都有那些

编程之家2023-10-14112次浏览

大家好,初学java看什么书zhihu相信很多的网友都不是很明白,包括java基础都有那些也是一样,不过没有关系,接下来就来为大家分享关于初学java看什么书zhihu和java基础都有那些的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

初学java看什么书zhihu,java基础都有那些

如何从零开始学习Java

学习分为四个阶段

第一阶段一片迷茫,怀疑自己智商!

第二阶段入门后欣喜异常,自信心爆表,征服星辰大海貌似指日可待!

初学java看什么书zhihu,java基础都有那些

第三阶段需要掌握真功夫时倍感吃力,意志动摇!

第四阶段一座大桥横跨南北,天堑变通途!回头一望,往事如烟!

很多人在大学就开始考虑学一技之长,以便于将来在职业上有更多的选择。

初学java看什么书zhihu,java基础都有那些

有的人则是在社会上碰壁撞了南墙之后,毅然决然要学一门技术来安身立命。

或许是同学朋友的介绍,或许是看多了广告,或许仅仅是缘分,你选择了Java。

我不是推荐你要学Java,我是说那么多人总有人选择Java。

做出选择后,更大的麻烦就来了,Java要怎么学?学会了能不能找到工作?对学历要求高不高?Java的前景好不好?

本篇就来讲第一个问题:Java要怎么学

Java是一门编程语言,属于软件的范畴,软件是基于硬件来运行的,先了解计算机硬件系统。

柠檬学院李伟:萌新从零开始系统性获得电脑知识zhuanlan.zhihu.com

2.认识一下什么是Java。

柠檬学院李伟:什么是JAVAzhuanlan.zhihu.com

3. Java的学前准备。

联网电脑一台,台式机或者笔记本都行。配置建议:

4核(或以上)cpu+8g内存+SSD固态硬盘。

一份比较轻松的工作,或者直接不工作,白天工作不能太累,晚上要有时间学习。

要有点存款,有余粮心里才踏实,才不会轻易动摇。

4.学习Java的学历以及文化要求。

虽然无数人说学编程要求低,但也不是完全没有要求。

高中学历(或中专)以上。低于高中(中专)学历的真心不建议。

看到英语不要陌生,如果看到英语和看到下面这句话一样的陌生......

以上,都没有问题了,那就正式开始学习Java,零基础,那就来一次从零开始的挑战。

第一步,找一个入门视频,免费的一大把。

看视频学习的难度远远低于看书,学习Java毕竟是学习一种完全陌生的东西,不像读书看报那样,虽然知识和观念是新的,但是载体还是我们熟悉的汉语。开个好头是真的很重要,如果一开始就狗咬刺猬无从下嘴,精神上受到了打击,那就凶多吉少了。

入门的阶段首先知识点相对简单完全可以自学,并且在学习的过程中发现自己到底是否真的适合编程。

免费120集入门教学视频:

Java轻松入门经典教程(完整版)[柠檬学院]-学习视频教程-培训课程-腾讯课堂ke.qq.com

第二步,搭建好开发环境和写一个HelloWorld,这是最简单的Java程序,但却是从无到有质的突破。也是对自己初入江湖最好的鼓励。

跟着视频就能学会搭建开发环境和写HelloWorld,学习讲究“知其然而知其所以然”下面这篇文章会告诉你为什么要搭建开发环境。

柠檬学院李伟:详解Java开发环境配置原理zhuanlan.zhihu.com

第三步,跟着视频把JavaSE基础知识学完。

基础知识是枯燥乏味的,就像小时候学拼音、字、词、句、篇那样无趣,但是万丈高楼平地起,这些枯燥乏味的知识正是以后兴建高楼大厦的原材料。

第四步,了解Java学习路线。

是的,到这里开始,了解Java学习路线才有意义。就像我们读完了中学,再考虑选择专业才有意义。

学好了JavaSE基础,其实你什么都干不了,写的程序也没有任何用处,Java基础知识需要和JavaWeb、前端、数据库搭配再一起才能做出真正实用程序。

有谁刚入幼儿园就去考虑以后的发展路线的吗?

第五步:自学还是报班,线下还是线上。

自学:

1、学习周期:从零基础自学到能找工作,需要1到1.5年时间;

2、学习资源:买书,找视频,对新手来说初期的资源很重要,最好有认识的人给你,出现BUG要百度查,学习到了后期遇到问题会比较难搞,不要听别人说什么很简单很容易之类的,他们都学过了当然觉得很容易,我们要站在一个初学者的角度看问题。

3、个人能力:要求个人自制力非常强或者非常的感兴趣,否则大部分人都会在初学2个月左右放弃;

如果能自学成功,那你真的很厉害,这么长时间的坚持,首先对基础的掌握比培训出来的人要好一些,自学需要一个一个知识点去查的话;可以养成很好的纠错自查习惯,对一般问题的处理能力比培训生高很多;

报班:

1、学习周期:零基础到能找工作,4-6个月时间。

2、培训机构会提供所有的学习资源,学习中遇到的问题也有老师和助教随时解答。

3、在系统性的学习下,大多数人是可以顺利毕业的,在1-3个月内找到工作。

4、由于是被动学习,没有养成纠错自查的习惯,自学能力相对不足,在工作中会有一段时间压力比较大。

5、学员年龄区间:16-30岁。

16-20岁。这个阶段要么是正在上高中或专科,要么已经工作了,部分同学可能是不喜欢自己的专业,或者专科毕业后出来找到的工作比较苦,或者家庭的原因,所以有想法的同学都想改变,培训可以给他们一条很好的入行道路,所以这部分学员占我们招收学员的一部分;

20-24岁。这个阶段的同学:一部分是大学即将毕业的学生,因为在学校没有很好的学习编程知识或者不是与IT相关的专业,找工作时,缺乏一个系统培训,无法独立做出项目或者什么都不会,又想提高自己,所以报名可以给他们一个快速提高自己的机会。

24-30岁。这部分同学大多数都已经工作,当然有博士生除外。这些同学,在经历了一段时间的工作后,会被IT行业的高薪所吸引,或者种种原因,想转行到IT行业来,但是苦于没有基础,或者基础很差,没有实战,加上自学又没有很好的定力。这样的同学,报名培训班就是一条非常好的路子,可以在短时间内培养出符合工作要求的技能。

线下培训:

1、学生的自觉性。对于缺乏学习自觉性的同学,不得不选择花比在线教育更多的金钱选择线下培训。因为老师可以起到监督作用。

2、感情的互动。人是社交动物,所以需要通过社交去和其他人建立信任,从而建立感情,有了这个基础,学生就比较容易对老师的要求做到言听计从。这方面,目前在线教育确实也难以做到。

3、学习到的专业性。面对面的教学,会比自己学习记忆更深刻,更系统、更专业。

4、学习成本高(直接经济成本约4万元左右),时间和空间上不自由。

线上培训:

1、经济上极大减轻了负担,直接经济成本甚至只有线下培训的1/3,这对于很多学习者来说,可以说是一件莫大的好事。

2、时间和空间上自由,甚至可以一边工作一边培训,只需一台电脑一根网线,就可以随时随地登陆在线教育平台学习。应该说提高了学习效率。

3、在线教育独有的录播课程,可以帮助学生节省大量时间,时间就是生命,这在快节奏的今天意义尤其重大。上培训班难免因为其他因素会被很多废话或者无意义的事情浪费很多时间,而对于录播视频,完全可以避免浪费时间的情况出现。

java基础都有那些

一、标识符

java对各种变量、方法和类等要素命名时使用的字符序列成为标识符;通俗点,凡是自己可以起名字的地方都叫标识符,都遵守标识符的规则

1.标识符命名规则:

1)标识符由字符、下划线、美元符或数字组成。

2)标识符应以字符、下划线、美元符开头

3)java标识符大小写敏感,长度无限制

4)约定俗成,java标识符选取应该注意“见名知意”且不能与java语言的关键字(eclipes中带颜色的基本都是关键字)重名

二、关键字

java中一些赋以特定含义,用作专门用途的关键的字符串成为关键字(keyword);且大多数编辑器都会将关键字用特殊方式标出所有java关键字都是小写英文

一些常用关键字:

三、java的基本数据类型

1.java常量

java的常量值用字符串表示,区分为不同的数据类型。如:整型常量:1234实型常量:3.14字符常量:’a’逻辑常量:true、false字符串常量:”HelloWorld”

注意:

1)区分字符常量和字符串常量

字符常量是单引号引起来的单个,字符串常量是双引号引起来的不限长度

由于java采用Unicode编码,每个字符占两个字节,因而可用天十六进制编码形式表示,当然也可以用一个中文表示(单个中文占用两个字节)

2)”常量”这个名次还会用在另外其他语境中表示值不可变的变量

2.java变量

java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。java程序中每一个变量都属于特定的数据类型,在使用前必需对其进行声明,声明格式为:type varName [=value]例如:int i=100;foloat f=12.3f;double d1,d2,d3=0.123;(声明了三个变量,其中d1,d2是默认值,d3=0.123)String s=”hello”

从本质上讲,变量其实是内存中的一小块区域,使用变量名来访问这块区域,因此,每一个变量使用前必需先声明,然后必需进行赋值,才能使用。

1)java变量分类

按被声明的位置划分:

局部变量:方法或语句块内部定义的变量,只能在被定义的方法或语句块内使用

成员变量:方法外部、类的内部定义的变量,可以在整个类中使用,包括类里的方法或语句块内也可以使用

注意:类外面是不能有变量的声明的

按所属的数据类型划分:

基本数据类型变量

引用数据类型变量

四、运算符

java语言支持如下运算符:

算术运算符:+-*/%++--

关系运算符:><>=<===!=

逻辑运算符:!&| ^&&||

位运算符:&| ^~>><<>>>

赋值运算符:=

拓展赋值运算符:+=-=*=/=

字符串链接运算符:+

三目条件运算符?:

1.算数运算符

注意:

1)

位运算符中的!、&、|、^跟罗技运算符相同,只是位运算符是对变量的二进制进行操作,我个人是用不到的,所以不在这里多做介绍

2)

++(—)

在前时先运算再取值

在后时先取值再运算

2.逻辑运算符

例如:

3.扩展赋值运算符

4.字符串连接符

“+”运算符两侧的操作数中只要有一个是字符串类型,系统会自动将另一个操作数转换为字符串然后进行连接,例如:

4+ 5= 94+“ab”=“4ab”

5.三目条件运算符

语法格式: x? y: z其中x为boolean类型表达式,先计算x的值,若为true,则整个三目运算的结果为表达式y的值,否则整个运算结果为表达式z的值。

五、表达式和语句

1.表达式

表达式是符合一定语法规则的运算符和操作数的序列,例如:a5.0+ a(a– b)* c– 4i< 30&& i%10!=0

1)表达式的类型和值

表达式中的操作数进行运算得到的结果称为表达式的值

表达式值的数据类型即为表达式的类型

2)表达式的运算顺序

应按照运算符的优先级从高到低的顺序进行

优先级相同的运算符按照实现约定的结合方式进行

我个人觉得运算顺序这块是可以忽略的,首先我的逻辑思维能力不是特别强,另外我的记性也不是特别好,所以如果我需要在表达式中区分优先级的话我会选择加括号。但是我觉得对于一些比较复杂且关键的逻辑运算,如果个人逻辑运算能力加记忆都比较好可以保证不出错的话,善用罗技运算符优先级未尝不是一种不让别人看懂你代码copy的手段。算是一种小小的防护吧,反正我这种人是不会去尝试分析这种代码的,太累

2.分支(条件)语句

ifif… elseif… else if… else ifif… else if… else if…else

switch(){case xx:

……………case xx:

……………default:

……………}

1.java中switch语句只能探测int类型的值(char类型的值也可以,因为他可以转换城int类型)

2.小心case穿透,所以最好与break连用

3.多个case可以连用,如下的示例代码也可以这样写(当i=1,2,18都会输出18):

3.循环语句

for(…;…;…){……}while(…){……}先判断再执行大括号里面的内容,然后再判断是否要继续执行do{……} whille(…);先执行大括号里面的内容再判断是否要继续执行

4.break& continue语句

break语句用于终止某个语句块的执行。用在循环体语句中么可以强行退出循环continue语句用在循环体语句中,用于终止某次循环过程,跳过循环中continue语句下面未执行的循环,开始下一次循环过程

八、方法

java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,声明格式:[修饰符1修饰符2…]返回值类型方法名(形式参数列表){

java语句}

形式参数:在方法被调用时用于接受外界输入的数据

实参:调用方法时实际纯给方法的数据

返回值:方法在执行完毕后返回给调用他的环境的数据

返回值类型:实现约定的返回值的数据类型,如无返回值,必需给出返回值类型void

java语言中调用方法:对象名.方法名(实参列表)

实参的数目、数据类型和次序必需和所调用方法声明的形参列表匹配

return语句终止方法的运行并指定要返回的数据

java中进行函数调用传递参数时,遵循值传递的原则:

基本类型传递的是该数据值本身,引用累心美国传递的是对对象的引用,而不是对象本身

例子中的方法1,前面定义的数据类型为void,所以方法中不能有return返回值,方法4中因为有return返回值,所以前面必需定义为返回值的类型,也就是m4前面那个int

九、递归调用

递归调用是指在方法执行过程中出现该方法本身的调用

先看一个例子,这是一个简单的递归调用:

简单分析下:

1.首先main主方法中输出字符串,内容是test方法当参数等于5的时候的返回值2.然后将参数5传入test方法,返回值是:5* test(4)3.再次将参数4传入test方法中,返回值是:4* test(3)4.再将参数3传入test方法中,返回值是:3* test(2)5.再讲参数2传入test方法中:返回值是:2* test(1)6.再将参数1传入到方法中:返回值是:1然后程序开始往回走,返回值传入test(1)中得到2*1再往回走,将刚刚得到的2*1传入到test(2)中得到3*2*1还要往回走,将刚刚得到的3*2*1传入到test(3)中得到4*3*2*1还要往回走,将刚刚得到的4*3*2*1传入到test(4)中也就是test(5)的返回值,得到5*4*3*2*1最后将test5的返回值传入到我们的主方法输出于语句中5*4*3*2*1=120,那么我们的输出语句输出的应该为120

这就是简单的递归调用的例子了

再来看一个例子:

非递归的写法:

请自行领悟

最后奉上java基础语法完整学习路线图,除此之外还有精心整理的其他java学习路线图,学习书籍电子书,阿里巴巴手册,视频教程等即可点此领取:

https://zhuanlan.zhihu.com/p/6

零基础如何系统学习Java Web

如果你之前没有接触过Java的话你可以先从JavaSE开始学起,毕竟JavaWeb前面还有数据库以及web前端。

如果你是零基础的话,可以看书开始学起也可以看视频教程开始学,当然每个人的学习方法都是不一样的。

零基础如果学习Java,你可以看看这套学习路线:

第一:先学习Java的核心库(JavaSE)

JavaSE的内容包括:环境搭建、基础语法、面向对象、数组、集合、常用类、IO流、反射机制、网络编程……..

第二:MySQL数据库

搞定一门数据库相关的课程,例如:MySQL、Oracle,搞定一个就可以了,目前互联网公司,例如:京东、阿里等,他们都在使用MySQL,所以建议大家学习MySQL数据库,小巧轻盈,免费,由于互联网公司的项目访问量比较大,所以一般会搭建数据库的集群,可以一个数据库不够,所以需要搭建数据库集群,为了应付高并发。(搭建的比较多的时候,免费就很重要了。)

第三:WEB前端

以后从事Java开发,从事JavaEE开发,主要开发的系统结构是B/S结构的,B指的是Browser,S指的是Server。要开发这种系统,B端要会,S端也要精通。WEB前端的学习就是学习B端技术。包括:HTML、CSS、JavaScript(JS)、jQuery框架(底层对JS进行了封装)…

第四:WEB后端(JavaWEB)

WEB后端其实可以是很多种不同的编程语言,例如:PHP、C、C++、Java,他们都可以进行WEB后端的开发,我们既然选择了比较火爆的Java,那么我们学习的后端一定是基于Java语言实现的,包括:Servlet、Filter、Jsp、EL、JSTL、MVC架构模式、数据库连接池(阿里巴巴的Druid连接池)、代理模式(动态代理)。另外后端学习了之后,还要学习一个异步编程技术AJAX。(完成网页的局部刷新,AJAX其实不属于后端,是前端浏览器上的程序。)

学习到这里为止,表示Java基本/基础的技术已经学完了。但是这些最基层的技术在实际的开发中不会使用的,一般为了开发效率,都会使用大量的提前封装好的框架。

第五:最好能够停留下来,做一个项目。

这个项目最好能将之前所学全部串起来。(对以前的知识点进行巩固。)

这个项目最好是基于:Servlet+ Jsp+AJAX+jQuery+MySQL….

在这个项目的开发过程中:大家一定要记住,目前比较好的项目自动构建工具:Maven是一定要精通的。还有一个就是团队协作开发:Git/SVN是一定要会用的。(目前使用Git比较多一些。)

第六:学习高级框架

Spring、SpringMVC、MyBatis(持久层框架,这个框架互联网公司使用比较多,因为互联网项目需要进行SQL优化,MyBatis的SQL优化很方便,所以大部分都是使用MyBatis)

Struts2(很少使用了,使用这个的肯定是很老的项目)、Hibernate(传统企业,还有政府等可能会使用Hibernate。)

SpringBoot(新项目大部分使用的都是boot了。所以在项目中遇到还在使用SSM的一般都是遗留项目。)

当你走到这里之后,基本上你可以出山了。(去找工作,8K的薪资应该问题不大,但前提是你学的好。学习的深度够了,广度够了。)

第七:最好能有一个大型项目是使用框架来完成的。

SpringBoot做一个项目。

Spring SpringMVC MyBatis做一个项目。

这个项目最好是找几个人搭伙做一下。体验一下团队协作。(尤其是使用一些协作的工具。怎么沟通,怎么写日报,怎么开会,怎么使用Git,等等….)

第八:如果你的薪资想达到15K的话,你可能需要还要学习一些分布式相关的一些技术。

能够应付高并发的一些技术,例如:分布式框架Dubbo、SpringCloud、MQ、Nginx、Redis…..

你可以根据这套学习路线进行学习。更多学习资料免费拿全新精讲视频/面试题,初学者电子书籍等等免费领取看这里

OK,关于初学java看什么书zhihu和java基础都有那些的内容到此结束了,希望对大家有所帮助。

java刚工作什么都不会,程序员实习什么都不会,要如何走下去java op是什么?java中的op运算符怎么理解!