** Java开发入门 ** 废话不多说,我今天主要讲的是Sun公司将Java划分的三个技术平台,他们分别是Java Se、Java EE、Java ME,接下来针对这三个平台分别进行详细介绍。...Java SE(Java Platform Standard Edition)标准版,是为开发普通桌面和商务应用程序提供的解决方案。...Java SE平台包括了java最核心的部分,Java EE和Java ME都是从Java SE的基础上发展而来的,Java SE平台包括了Java最核心的类库,如集合、io,数据库连接以及网络编程等。...Java EE 可以被看作一个技术平台,该平台用于开发,装配以及部署企业级应用程序,其主要包括Servlet、JSP 、JavaBean、JDBC、EJB、WebService等技术。...Java ME 主要用于小型数字电子设备上软件程序的开发,例如,为家用电器增加智能化控制和联网功能,为手机增加新的游戏和通讯录管理功能。
跨平台开发从本质上讲是为了增加业务代码的复用率,减少因为要适配多个平台带来的工作量,从而降低开发成本。在提高业务专注度的同时,能够为用户提供一致的用户体验,实现“多快好省”的效果。...跨平台是跨哪些平台?怎么样的跨平台逻辑?从当前的实际情况来看,移动端跨平台需求主要集中在以下3点:桌面端跨移动端:桌面向移动端过渡的早期,希望 PC Web 与移动 Web 复用同一套代码。...而放眼未来,我们预见可能还会有这些跨平台需求:跨小程序/轻应用:即用即走的轻量级应用,如各平台的小程序、 Android 快应用、iOS App Clips。...移动跨平台方案的发展不仅是移动应用的开发模式在持续的演变,跨平台开发方案也紧紧的跟随着开发模式的变化持续的演进,按照技术的发展,跨平台方案可以分为三个时代。...编辑移动跨平台技术方案的对比对比现有的跨平台技术和解决方案也可以分为三类,分别是 Web 跨端、容器跨端、小程序跨端。
二、Java 三大平台及其应用场景 JavaSE(Java Platform Standard Edition):Java 标准平台,所有的Java项目都需要JavaSE的支持,包括JavaEE 和JavaME...亦是如此;如JavaWeb、Android、Java桌面软件,JavaFX 等; JavaEE(Java Platform Enterprise Edition):Java企业平台,用于开发和部署可移植...,如阿里巴巴的大部分应用都是基于Java开发的,不仅如此,阿里巴巴也基于Java封装了众多的Java中间件; JavaME(Java Platform Micro Edition): Java微型平台,...也叫K-JAVA,用于开发移动设备、嵌入式设备(比如手机、PDA、电视机顶盒和打印机等,Java原本就是为了电视机顶盒而设计的),不过现在市场份额并不是很高了; 三、跨平台实现 Java源代码需要编译为....class字节码文件(在安卓中是.dex文件)才能被JVM执行,Java号称一次编写,到处运行,也就是可以跨平台运行,那他是如何实现的呢,请看下图: 四、JDK 介绍 bin: Java的可执行命令
Java SE是基础包,但是也包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础。...Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture...Java ME 包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。...基于 Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。 总结起来就是: Java SE 是做电脑上运行的软件。...Java EE 是用来做网站的-(我们常见的JSP技术) Java ME 是做手机软件的。
企业在过去的一年对云计算的态度发生了巨大的变化,他们终于明白,在公共云中运行应用程序要便宜得多,向公共云的迁移越来越普遍。 随着企业IT正在认真迁移应用程序到云中,一些最佳实践不断涌现。...更糟的是,云服务提供商本身似乎并不知道如何使用自己的技术,恰如盲人引领盲人。 这些最佳实践是什么?这里是三个关键的最佳实践。 1、在应用程序开始运行在云平台之前,获取它的安全设计和技术。...这样做意味着为应用程序选择了正确的安全模式,并以正确的技术来支持这种模式。在测试之前和重构云平台优化之后,这两项工作都要做好。...先迁移到云平台之后才计算数据问题的企业,往往会发现他们向前已经走出的10步,只是去碰壁,他们不得不返回原处,重新走完这15个步骤。 3、有一个云应用程序的移植计划。...是的,应用程序应为目标云平台进行优化和本地化。但应对云供应商可能消失,或者云变得过于昂贵等变故,企业也应该做好移植计划,或者需要快速移动到另一个云服务供应商,或者回归企业内部。
大家好,又见面了,我是你们的朋友全栈君。 1 java都有哪些开发平台 Java编程语言是流行的开发语言,也是IT行业非常火的就业方向,当然难度也是相对较大的。...即使那些有计算机基础的小伙们参加java培训,不认真的学习,也会显得吃力。下面小编给大家说说java都有哪些开发平台,希望能对你有些帮助。...Eclipse是最有名也最广泛使用的Java集成开发环境(IDE),允许开发者结合语言支持和其他功能到任何的默认包中,而且Eclipse市场有许多定制和扩展的插件。...IntelliJ为众多Java EE框架提供了针对框架的编码帮助和提升生产效率的功能,还有大多数应用服务器的部署工具。...它由多种内置任务而成,允许开发者编写、装配、测试和运行java应用程序。它的特点是高度灵活,不会严格限制Java项目的编码惯例或目录布局。
大家好,又见面了,我是你们的朋友全栈君。...朋友给我发了一道有意思的题目,如下 为什么用.class的方式加载类和以Class.forName()的方式加载的结果不同呢,原因很简单,就是类加载过程的不同。...这就扯到基础理解上了,就是Java是如何加载一个类的呢? 上图是我绘制的整个Java类加载过程。...首先是编译期,将Java源文件也就是敲好的代码通过编译,转换成.class文件,也就是字节码文件(byte),然后经过传输传给类加载器,传输的是刚转换好的字节码文件,也可以是通过网络传输过来的字节码文件...然后就是运行期,运行期一开始,类加载器初始化字节码文件,通过本地类库来验证字节码文件的正确性,然后交给JVM的解释器和即时编译器,最后汇合给JVM内部的Java运行系统,都ok了后传给PC的操作系统,最后就是物理硬件层面
Java为我们提供了三个同步工具类: CountDownLatch(闭锁) CyclicBarrier(栅栏) Semaphore(信号量) 这几个工具类其实说白了就是为了能够更好控制线程之间的通讯问题...这些"许可证"的个数其实就是一个count变量罢了~ 3.2Semaphore例子 3y女朋友开了一间卖酸奶的小店,小店一次只能容纳5个顾客挑选购买,超过5个就需要排队啦~~~ import java.util.concurrent.Semaphore...为我们提供了三个同步工具类: CountDownLatch(闭锁) 某个线程等待其他线程执行完毕后,它才执行(其他线程等待某个线程执行完毕后,它才执行) CyclicBarrier(栅栏) 一组线程互相等待至某个状态...本文简单的介绍了一下这三个同步工具类是干嘛用的,要深入还得看源码或者借鉴其他的资料。 最后补充一下之前的思维导图知识点: ?...习惯在微信看技术文章,想要获取更多的Java资源的同学,可以关注微信公众号:Java3y。为了大家方便,刚新建了一下qq群:742919422,大家也可以去交流交流。谢谢支持了!
相信对于很多Java开发来说,在刚刚接触Java语言的时候,就听说过Java是一门跨平台的语言,Java是平台无关性的,这也是Java语言可以迅速崛起并风光无限的一个重要原因。...2 平台无关性的实现 对于Java的平台无关性的支持,就像对安全性和网络移动性的支持一样,是分布在整个Java体系结构中的。...因为Java Class文件可以在任何平台创建,也可以被任何平台的Java虚拟机装载并执行,所以才有了Java的平台无关性。...通过保证基本数据类型在所有平台的一致性,Java语言为平台无关性提供强了有力的支持。 3 小结 对于Java的平台无关性的支持是分布在整个Java体系结构中的。...Java的平台无关性是建立在Java虚拟机的平台有关性基础之上的,是因为Java虚拟机屏蔽了底层操作系统和硬件的差异。
花了三个月的时间,我手写了个短信平台服务 platform-sms,今天开源出来 Beta 版本。写这个开源项目的初心其实很简单:"帮助初中级研发工程师入门架构设计,提升他们的技术认知"。...2018年,作为架构师,我参与一个短信平台的重构。发送短信的场景包括还款业务、CRM、促销业务等。...短信平台需要提供业务服务的appKey 和appSecret , SDK 与服务端之间通过固定协议交互。短信平台支持模版的管理 。...短信平台当前提供了手工绑定的短信模版的功能,也就是我们需要先在阿里云或者腾讯云先申请签名和模版,然后绑定到我们在平台创建的模版。适配器模式维护三方短信渠道。...所以,我将短信平台设计成单体应用的模式,架构图如下:短信平台分为两个部分,这两部分可以独立部署,也可以将前端文件放置在后端中,生成单部署包。
深度学习技术往往比较复杂,从头开发的难度较大,但现在有一些公司提供了能帮助开发者轻松使用深度学习的自动化深度学习(ADL)平台,比如微软的 CustomVision.AI、谷歌的 Cloud AutoML...Data Science Central 近日发文对这三个平台进行了比较和盘点,机器之心对该文做了编译介绍。 阻碍我们使用深度学习方法的原因有很多,其中最主要的是深度学习方法很复杂和困难。...这个平台只是图像分类器,并且还向用户承诺只需少量图像就能使用微软的巨大的已有大型、复杂、多图像分类器库创建稳健的 CNN 迁移模型。 使用这个平台非常简单。只需将你的图像拖放到这个平台上然后继续即可。...零售(紧凑) 尽管所有这些模型都可以在训练后通过 restful API 运行,但最后三个类别(标记有「紧凑」)可以导出到任何 iOS 或安卓边缘设备上离线运行。...对于这样一个提供了如此复杂的工具和技术的平台而言,它保持了「一键出模型」的简单易用性——我认为这是自动化机器学习的最低要求,但也包括自动化深度学习。
需要一 个跨平台的语言。 Java核心优势: 跨平台 ?...”将Java字节码文件解释为对应机器语言并执行 总结2:Java跨平台和C跨平台的区别 Java:一次编译,到处运行 C:多次编译,到处运行 在互联网情况下,平台各异,Java的跨平台更具有优势 Java...JVM就是一个虚拟的用于执行bytecodes字节码的计算机 Java虚拟机是Java最核心技术,也是跨平台的基础。...Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在 Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。...Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。
当我们在Java中使用List时,有时候需要从列表中删除重复的元素。这可以通过以下几种方法来实现:图片方法1: 使用HashSetHashSet是一种无序的集合,它不允许重复元素存在。...然后,我们将该List传递给一个新的HashSet实例,这将自动删除重复项。最后,我们将HashSet转换回List以获得没有重复项的列表。...方法2: 使用LinkedHashSetLinkedHashSet是一种有序的集合,它不允许重复元素存在。与HashSet不同,它可以保留元素的插入顺序。...方法3: 使用Java 8 Stream APIJava 8引入了Stream API,它提供了一种简单的方法来操作集合。我们可以使用Stream API来删除List中的重复元素。...接着,我们调用distinct()方法来删除重复项,并将结果收集到一个新的List中。这些是从Java List中删除重复项的三种方法。根据你的需求和偏好,你可以选择其中一种来实现。
Java中异常提供了一种识别及响应错误情况的一致性机制,有效地异常处理能使程序更加健壮、易于调试。异常之所以是一种强大的调试手段,在于其回答了以下三个问题: 什么出了错? 在哪出的错?...有三个原则可以帮助你在调试过程中最大限度地使用好异常,这三个原则是: 具体明确 提早抛出 延迟捕获 为了阐述有效异常处理的这三个原则,本文通过杜撰个人财务管理器类JCheckbook进行讨论,JCheckbook...Java已经提供了大量异常子类,如需更加具体,你也可以定义自己的异常类。...不过注意 FileInputStream.close()是标准Java类库的一部分,很可能导致这个异常的问题原因在于我们的代码本身而不是Java API。...只要遵循本文的三个原则,就能让你的异常协助你跟踪和消灭缺陷,使你的程序更加健壮,对用户更加友好。
JRE(Java Runtime Environment)即java运行环境,它包含了JVM及java的核心类库。抛开JVM不谈,它主要提供一些必要的运行文件。...JVM(Java Virtual Machine)即Java虚拟机,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java的解释器就包含在JVM中。...JVM有自己完善的硬件架构,如处理器、堆栈(Stack)、寄存器等,还具有相应的指令系统(字节码就是一种指令格式)。 它的主要功能是,将字节码文件class文件解释成对应平台机器码并执行。...所以他们的关系就可以用下图来表示: 2、Java程序运行机制 Java的运行主要分两步:先编译再解释执行 (1)先通过“编译器”将Java源程序(.java)编译成Java字节码文件(.class)(...字节码文件采用结构中立的中间文件格式) (2)通过不同的虚拟机(JVM)将字节码文件解释为机器语言并执行 用图来表示就是: 3、Java跨平台原理 因为程序都需要编译生成字节码文件(.class),而字节码文件生成后是结构中立的中间文件格式
Cookie Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。Cookie存储的数据量有限,且都是保存在客户端浏览器中。...Session Session是另一种记录客户状态的机制,它是在服务端保存的一个数据结构(主要存储的的SessionID和Session内容,同时也包含了很多自定义的内容如:用户基础信息、权限信息、用户机构信息...当用户再次发送请求时,浏览器会自动的把上次请求存储的Cookie数据自动的携带给服务器。...这样,就导致客户端频繁向服务端发出请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否。而Session的存储是需要空间的,频繁的查询数据库给服务器造成很大的压力。...最简单的Token组成:uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,由Token的前几位+盐以哈希算法压缩成一定长的十六进制字符串,可以防止恶意第三方拼接Token请求服务器
来源:jianshu.com/p/8ef0c5a551d3 整编:Java技术栈(公众号ID:javastack) 在Web应用中,HTTP请求是无状态的。...这个时候用到的一个机制就是Cookie。更多请在Java技术栈微信公众号后台回复关键字:Java。推荐阅读:Java管理Cookie增删改查操作。...当用户再次发送请求时,浏览器会自动的把上次请求存储的Cookie数据自动的携带给服务器。...这个时间就是Session的超时时间。如果超过了超时时间没访问过服务器,Session就自动失效了。更多请在Java技术栈微信公众号后台回复关键字:Java。 ?...更多请在Java技术栈微信公众号后台回复关键字:Java。 使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录。
功能介绍平台采用B/S结构,后端采用主流的Springboot框架进行开发,前端采用主流的Vue.js进行开发。整个平台包括前台和后台两个部分。前台功能包括:首页、家政详情、家政入驻、用户中心模块。...适合人群大学生、系统设计人员、课程作业、毕业设计源码地址https://github.com/geeeeeeeek/java_jiazheng演示地址前台地址: http://jiazheng.gitapp.cn
这里整理了基于java平台的常用资源 翻译 from :akullpp | awesome-java 大家一起学习,共同进步。 如果大家觉得有用,就mark一下,赞一下,或评论一下,让更多的人知道。...---- 发布 使用本机格式分发Java应用程序的工具。 Bintray:对二进制发布进行版本控制,可与Maven或Gradle配合使用。 IzPack:为跨平台部署建立授权工具。...Arquillian:集成测试和功能行测试平台,集成Java EE容器。 AssertJ:支持流式断言提高测试的可读性。 JMH:JVM微基准测试工具。 JUnit:通用测试框架。...---- 资源 社区 活跃的讨论区。 r/java:Java社区的Subreddit。 stackoverflow:问答平台。...Mark Reinhold:Oracle首席架构师、Java平台开发组。 Martijn Verburg:London JUG co-leader、演讲者、作家、Java Champion等。
领取专属 10元无门槛券
手把手带您无忧上云