自学java有一段时间,找一个可以做java开发web桌面应用程序程序的工具?

上市公司技术总监来回答一下

看视频的话,建议你按照推荐的视频来学习。

以下视频是我花了很长时间从b站整理出来的,都是播放量和点赞多的,评价好的视频。

而且,我写的这个顺序,就是一份学习路线,直接照着学就行了。有的一个内容里有多个视频课程,选择适合你的一个就行了。

1、动力节点Java零基础教程视频

1168万播放,16万赞。千万播放量!

适合零基础,Java视频中讲解了Java开发环境搭建、基础语法、面向对象。

2、宋红康的Java零基础入门教程

从0基础讲起,循序渐进。涉及JavaSE方方面面,融入数据结构、设计模式、JVM等。2万多行代码+3套课堂实战项目+2套课后实战项目+近百道企业面试真题。

3、老师的Java300集零基础适合初学者视频教程

37万播放,1.7万赞

基于JDK13、IDEA平台讲解的,视频中穿插多个实战项目。高淇老师讲解的非常细致,每一个知识点都讲解的通俗易懂,由浅入深。

4、求知讲堂Java视频 128天完整版

讲解同样的内容只需别套课程一半时间,而且老师讲的清晰,比较有条理,而且没啥废话。

5、刘意(风清扬)Java入门视频

写的是2019版,但是感觉像之前看的2015版。

6、韩顺平的零基础30天学会Java

韩老师毕业于清华大学,录制的视频课程质量都还可以。

韩顺平的Java设计模式(图解+框架源码剖析)

57万播放,1.1万赞

3、尚硅谷Spring5框架最新版教程(idea版)

4、spring注解驱动开发-源码版-雷丰阳

2、老杜带你学_mysql入门基础

2、尚硅谷MyBatis实战教程全套完整版

2、尚硅谷SSM实战演练丨ssm整合快速开发CRUD

3、狂神说SSM框架整合教学IDEA版最新

4、传智播客SSM框架视频整合

尚硅谷宋红康JVM全套教程

课程的内容分为 3 部分:内存与垃圾回收篇、字节码与类的加载篇、性能监控与调优篇。基本把 JVM 中重要的知识点都涵盖到了。

62万播放,1.7万赞

2、史上最牛的Linux视频教程—兄弟连

1、数据结构与算法基础(青岛大学-王卓)

189万播放,2.6万赞,点赞率很高

老师的声音很好听,听起来如沐春风,PPT做的也很好。

2、郝斌-数据结构入门

AVI转的MP4,网上源文件是swf格式的,帧率比较低,所以看着略有不流畅。

3、尚硅谷Java数据结构与java算法(Java数据结构与算法)

Java版本的数据结构很少,大部分是C语言。这个适合用Java语言的人看。

4、数据结构与算法基础-java版(罗召勇)

还是Java的,老师语言比较简单

5、清华大学邓俊辉数据结构与算法

12万播放,1.5千赞

6、(小甲鱼)数据结构与算法(全99讲完结版)

20万播放,2.3千赞

全99课。主讲内容基本是照着《》这本书念的,但也有不少可取之处。看过书的,可以开启1.25倍速。

7、数据结构-浙江大学

8、慕课+课堂实录 数据结构与算法Python版-北京大学-陈斌

适合Python语言基础的同学看

以上视频有些是培训机构的视频,一说到培训机构,很多人都会反感,我也一样,那我为什么还推荐?

1、适合零基础小白入门。

2、培训机构发布的公开视频,质量肯定是错不了的,相当于买东西之前先让你试吃、试用,肯定要用最好的对吧,否则会砸了自己的招牌。

至于你要选择听哪个?你可以根据我整理的播放、点赞数据判断,我更建议你去试听几节课,找一个自己听着舒服的,毕竟每个人的喜好不一样。

当然,我们也得明白这些视频质量好,不代表机构的培训质量。他们发布的视频最终还是为了赚钱,舍不得孩子套不着狼。

除了看视频,还得结合着看书,java的几本好书:

《Java编程思想》、《》、《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》、《Effective Java中文版(原书第3版)》

如果学完想进大厂,如果精力够、能学过来的话,再送你一套电子书,这里还包括很厉害的算法刷题笔记,这份资料已经帮很多人拿到了大厂offer

哦对了,突然想到很重要的一点:

Java 的知识体系繁冗复杂,但是有很多知识在实际工作中几乎没有人用。很多人在学习过程中,却经常把有限的时间和精力花在了这些“没有用”的知识上,事倍功半。

所以呢,我接下要说说Java 中那些不建议学习的知识点,这些知识工作中很少用到,面试很少问到。

以上这些,大家在看视频、看书的时候,可以先跳过,以后用的到的时候,再学也来得及。

不建议学的原因,不展开说了,否则篇幅太长了,想知道详细原因的看这个

嗯,先写这些,后面想到再补充。

程序员这行,要学的内容太多了。我一直推崇精准学习,我见过许许多多的优秀程序员,并不是他们学习能力有多强,只是他们非常聪明,他们可以准确找到他们需要学习的知识点。

学习,请精准学习,要学会放弃,知道舍得。

如果看完觉得有帮助,给我点个赞。

在深入学习 Java 语言之前,你是否想知道 Java 可以用来做什么?现实世界中 Java 有哪些真正的用途呢?在这篇文章中,我将给你展示现实世界中的顶级 Java 应用程序。

现在,Java 是全球最流行的编程语言之一,几乎在所有领域都能发现 Java 应用程序,比如 PC 客户端、Web 开发、大数据、Android APP 等。

下面我们从 9 个方面罗列一下 Java 可以做什么。

桌面 GUI 程序也叫客户端程序,就是类似于 QQ、迅雷、360 的电脑软件。

除了强大的基础类库,Java 还附带了 AWT、Swing 和 JavaFx 模块,它们都是用来开发 GUI 程序的。这些模块提供了丰富的 API,能够让我们开发出复杂炫酷的界面,比如选项卡、表格、颜色拾取器、树形菜单、3D图形等。

使用 Java 开发 GUI 程序的真实案例:

2. Web 开发(网站后台开发)

使用 Java 开发的著名网站真是太多了,Google、Facebook、Amazon、淘宝、百度、携程等国内外巨头无一不在使用 Java。

3. 嵌入式开发/功能手机开发

嵌入式系统是完整工业产品的一部分,由微型芯片、微处理器等构成,它们往往比较廉价,性能不高,所以一般被当做低级系统。

Java 能够有效且快速地处理程序异常,因此它也可以开发运行在低级系统上的应用程序,比如 SIM 卡、蓝光 DVD 播放机、机顶盒上的控制程序。

早期的功能手机也可以看成一个嵌入式系统,在智能机还没有大行其道之前,还记得摩托罗拉、诺基亚手机上的小游戏吗?这些就是使用 Java J2ME 开发的。另外,诺基亚上流行的 WhatsApp 也是用 J2ME 开发。

Java 是企业级应用开发的首选语言,因为它不但功能强大,性能出众,而且安全性好,易于扩展。

Java 拥有专门的企业级开发版本 Java EE(Java Enterprise Edition),它提供了丰富了 API 和专门的运行时环境,让用户在开发大型软件、网络工具以及 Web 服务时更加容易。根据 Oracle 统计,将近 97% 的企业计算机都在运行 Java 程序。

使用 Java 开发的典型企业级应用程序:

银行、交易所等金融机构需要各种各样的软件来处理日常事务,比如电子交易系统、结算系统、数据处理系统等,它们统称为“金融软件”。Java 主要用来开发金融软件的后台部分,也即运行在服务器端的程序。

金融机构往往需要服务器集群来应对频繁且实时的交易,Java 可以从一台服务器接收数据,并对它进行处理,然后将处理结果发送给另一台服务器或者另一个进程。

Java 语言性能高、健壮、安全,天生适合金融机构,大多数头部的金融机构都基于 Java 来开展业务,比如花旗银行、高盛、巴克莱银行等。

大数据技术是当今最流行最热门的话题,它也是未来的发展趋势。大数据技术用来从不规则、大规模的数据集中分析和提取出有用信息。

开源软件 Hadoop 是大数据处理的热门框架之一,它就使用 Java 编写。

相比其它编程语言,Java 在垃圾自动回收、堆内存和栈内存分配方面拥有更大的优势,这使用 Java 更加适合处理大数据集。

基于 Java 的大数据工具有:

正如我们在本文中看到的,Java 是当今最流行的编程语言之一,它可以应用在很多领域,这包括传统的 GUI 开发、嵌入式开发、Web 开发、Android APP 开发,以及目前如火如荼的大数据技术。

本文较长,建议放进收藏夹慢慢看,觉得有用的同学记得点赞+评论+转发哦,以防之后丢失。

另外,有关于字节内推的疑问可以加微信bytedance_neitui 免费咨询,还可以拉你进内推群,不定期更新字节各个岗位的精选面经以及最新的 岗 位 招 聘

以下内容难免有错误或者疏忽的地方,还希望各位大佬指点,在此感激不尽

编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程。

为了使计算机能够理解人的意图,人类就必须要将需解决的问题的思路、方法、和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算机之间交流的过程就是编程。

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。


:这里面是与网络有关的类;
java.util:这个是系统辅助类,特别是集合类;
java.sql:这个是数据库操作的类。

刚开始的时候 JavaAPI 所必需的包是 java 开头的包,javax 当时只是扩展 API 包来说使用。然而随着时间的推移,javax 逐渐的扩展成为 Java API 的组成部分。但是,将扩展从 javax 包移动到 java 包将是太麻烦了,最终会破坏一堆现有的代码。因此,最终决定 javax 包将成为标准API的一部分。

所以,实际上java和javax没有区别。这都是一个名字。

按照流的流向分,可以分为输入流和输出流;
按照操作单元划分,可以划分为字节流和字符流;
按照流的角色划分为节点流和处理流。
Java Io流共涉及40多个类,这些类看上去很杂乱,但实际上很有规则,而且彼此之间存在非常紧密的联系, Java I0流的40多个类都是从如下4个抽象类基类中派生出来的。

InputStream/Reader: 所有的输入流的基类,前者是字节输入流,后者是字符输入流。
OutputStream/Writer: 所有输出流的基类,前者是字节输出流,后者是字符输出流。

BIO:Block IO 同步阻塞式 IO,就是我们平常使用的传统 IO,它的特点是模式简单使用方便,并发处理能力低。
NIO:Non IO 同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端通过 Channel(通道)通讯,实现了多路复用。

BIO (Blocking I/O): 同步阻塞I/O模式,数据的读取写入必须阻塞在一个线程内等待其完成。在活动连接数不是特别高(小于单机1000)的情况下,这种模型是比较不错的,可以让每一个连接专注于自己的 I/O 并且编程模型简单,也不用过多考虑系统的过载、限流等问题。线程池本身就是一个天然的漏斗,可以缓冲一些系统处理不了的连接或请求。但是,当面对十万甚至百万级连接的时候,传统的 相对应的 SocketChannel 和 ServerSocketChannel 两种不同的套接字通道实现,两种通道都支持阻塞和非阻塞两种模式。阻塞模式使用就像传统中的支持一样,比较简单,但是性能和可靠性都不好;非阻塞模式正好与之相反。对于低负载、低并发的应用程序,可以使用同步阻塞I/O来提升开发速率和更好的维护性;对于高负载、高并发的(网络)应用,应使用 NIO 的非阻塞模式来开发
AIO (Asynchronous I/O): AIO 也就是 NIO 2。在 Java 7 中引入了 NIO 的改进版 NIO 2,它是异步非阻塞的IO模型。异步 IO 是基于事件和回调机制实现的,也就是应用操作之后会直接返回,不会堵塞在那里,当后台处理完成,操作系统会通知相应的线程进行后续


Files的常用方法都有哪些?

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。

**静态编译:**在编译时确定类型,绑定对象
**动态编译:**运行时确定类型,绑定对象

优点: 运行期类型的判断,动态加载类,提高代码灵活度。
缺点: 性能瓶颈:反射相当于一系列解释操作,通知 JVM 要做的事情,性能比直接的java代码要慢很多。


反射机制的应用场景有哪些?

反射是框架设计的灵魂。

在我们平时的项目开发过程中,基本上很少会直接使用到反射机制,但这不能说明反射机制没有用,实际上有很多设计、开发都与反射机制有关,例如模块化的开发,通过反射去调用对应的字节码;动态代理设计模式也采用了反射机制,还有我们日常使用的 Spring/Hibernate 等框架也大量使用到了反射机制。

举例:①我们在使用JDBC连接数据库时使用Class.forName()通过反射加载数据库的驱动程序;②Spring框架也用到很多反射机制,最经典的就是xml的配置模式。Spring 通过 XML 配置模式装载 Bean 的过程:1) 将程序内所有 XML 或 Properties 配置文件加载入内存中; 2)Java类里面解析xml或properties里面的内容,得到对应实体类的字节码字符串以及相关的属性信息; 3)使用反射机制,根据这个字符串获得某个类的Class实例; 4)动态配置实例的属性


Java获取反射的三种方法

1.通过new对象实现反射机制 2.通过路径实现反射机制 3.通过类名实现反射机制


字符型常量和字符串常量的区别

形式上: 字符常量是单引号引起的一个字符 字符串常量是双引号引起的若干个字符
含义上: 字符常量相当于一个整形值(ASCII值),可以参加表达式运算 字符串常量代表一个地址值(该字符串在内存中存放位置)
占内存大小 字符常量只占一个字节 字符串常量占若干个字节(至少一个字符结束标志)

字符串常量池位于堆内存中,专门用来存储字符串常量,可以提高内存的使用率,避免开辟多块空间存储相同的字符串,在创建字符串时 JVM 会首先检查字符串常量池,如果该字符串已经存在池中,则返回它的引用,如果不存在,则实例化一个字符串放到池中,并返回其引用。

但是使用数组过于麻烦,所以就有了 String,String 底层就是一个 char 类型的数组,只是使用的时候开发者不需要直接操作底层数组,用更加简便的方式即可完成对字符串的使用。

不变性:String 是只读字符串,是一个典型的 immutable 对象,对它进行任何操作,其实都是创建一个新的对象,再把引用指向该对象。不变模式的主要作用在于当一个对象需要被多线程共享并频繁访问时,可以保证数据的一致性。

常量池优化:String 对象创建之后,会在字符串常量池中进行缓存,如果下次创建同样的对象时,会直接返回缓存的引用。


String为什么是不可变的吗?

简单来说就是String类利用了final修饰的char类型数组存储字符

两个对象,一个是静态区的"xyz",一个是用new创建在堆上的对象。

indexOf():返回指定字符的索引。
charAt():返回指定索引处的字符。
trim():去除字符串两端空白。
split():分割字符串,返回一个分割后的字符串数组。
length():返回字符串长度。

String中的对象是不可变的,也就可以理解为常量,线程安全。AbstractStringBuilder是StringBuilder与StringBuffer的公共父类,定义了一些字符串的基本操作,如expandCapacity、append、insert、indexOf等公共方法。StringBuffer对方法加了同步锁或者对调用的方法加了同步锁,所以是线程安全的。StringBuilder并没有对方法进行加同步锁,所以是非线程安全的。

装箱:将基本类型用它们对应的引用类型包装起来;

拆箱:将包装类型转换为基本数据类型;

Java 是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入了基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java 为每一个基本数据类型都引入了对应的包装类型(wrapper class),int 的包装类就是 Integer,从 Java 5 开始引入了自动装箱/拆箱机制,使得二者可以相互转换。

Java 为每个原始类型提供了包装类型:

对于对象引用类型:==比较的是对象的内存地址。
对于基本数据类型:==比较的是值。

如果整型字面量的值在-128到127之间,那么自动装箱时不会new新的Integer对象,而是直接引用常量池中的Integer对象,超过范围 a1==b1的结果是false

  • 有关于字节内推任何疑问可以加微信bytedance_neitui免费咨询关于内推可以拉群讨论&催查内推进度哦。在某个流程停留超过七个工作日,可帮助联系对应HR解决问题,避免简历石沉大海!
  • 有关于字节内推任何疑问可以加微信bytedance_neitui免费咨询关于内推可以拉群讨论&催查内推进度哦。在某个流程停留超过七个工作日,可帮助联系对应HR解决问题,避免简历石沉大海!
  • 有关于字节内推任何疑问可以加微信bytedance_neitui免费咨询关于内推可以拉群讨论&催查内推进度哦。在某个流程停留超过七个工作日,可帮助联系对应HR解决问题,避免简历石沉大海!

最后祝大家都能斩获心仪的offer哦~

我要回帖

更多关于 java开发web桌面应用程序 的文章

 

随机推荐