为什么说在企业级应用开发中,后端往往是效率杀手?

thbcm阅读(178)

曾经我会不由自主觉得前端,产品、测试老爱夸大其词,把责任都归结给后端。可能是我没有认真取证,掌握的资料不够多,根本就没有深入思考过这个问题,总觉得相互碰撞不见得是坏事,让他们在磨合中把事情收掉也是可以的。

Johnson 全源负权最短路径算法详解

thbcm阅读(199)

Johnson 算法被设计来解决此问题,其支持负权边(当然不能有负权环)。综合两个算法的优势,时间复杂度
\(O(nm + n² log n)\),在稀疏图中显著优于 Floyd-Warshall,结合了 Dijkstra 的高效性与 Bellman-Ford 的灵活性。

2021版JAVA十大面试题及答案

thbcm阅读(220)

  1、String是最基本的数据类型吗?

  答:NO。Java一共又8个基础的数据类型分别为:byte、short、int、long、float、double、char、boolean;除了基本类型(primitive type),其余的都是引用类型(reference type),Java 5以后引入的枚举类型也算是一种比较特殊的引用类型。

—————————————————————————————————————————————–

  2、Java有没有goto?

  答:没有。(根据James Gosling(Java之父)编写的《The Java Programming Language》一书的附录中给出了一个Java关键字列表,其中有goto和const,但是这两个是目前无法使用的关键字,因此有些地方将其称之为保留字,其实保留字这个词应该有更广泛的意义,因为熟悉C语言的程序员都知道,在系统类库中使用过的有特殊意义的单词或单词的组合都被视为保留字)

—————————————————————————————————————————————–

  3、&和&&的区别?

  答:&运算符有两种用法:(1)按位与;(2)逻辑与。&&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true整个表达式的值才是true。&&之所以称为短路运算是因为,如果&&左边的表达式的值是false,右边的表达式会被直接短路掉,不会进行运算。很多时候我们可能都需要用&&而不是&,例如在验证用户登录时判定用户名不是null而且不是空字符串,应当写为:username != null && !username.equals(“”),二者的顺序不能交换,更不能用&运算符,因为第一个条件如果不成立,根本不能进行字符串的equals比较,否则会产生NullPointerException异常。注意:逻辑或运算符(|)和短路或运算符(||)的差别也是如此。

—————————————————————————————————————————————–

  4、switch是否能作用在byte上,是否能作用在long上,是否能作用在String上?

  答:在Java 5以前,switch(expr)中,expr只能是byte、short、char、int;从Java 5开始,Java中引入了枚举类型,expr也可以是enum类型;从Java 7开始,expr还可以是字符串(String),但是长整型(long)在目前所有的版本中都是不可以的。

—————————————————————————————————————————————–

  5、数组有没有length()方法?String有没有length()方法?

  答:数组没有length()方法,有length的属性。

  String有length()方法。在JavaScript中,获得字符串的长度是通过length属性得到的,这一点容易和Java混淆。

—————————————————————————————————————————————–

  6、构造器(constructor)是否可被重写(override)?

  答:构造器不能被继承,因此不能被重写,但可以被重载。

—————————————————————————————————————————————–

  7、阐述静态变量和实例变量的区别。

  答:静态变量是被static修饰符修饰的变量,也称为类变量,它属于类,不属于类的任何一个对象,一个类不管创建多少个对象,静态变量在内存中有且仅有一个拷贝;实例变量必须依存于某一实例,需要先创建对象然后通过对象才能访问到它。静态变量可以实现让多个对象共享内存。

—————————————————————————————————————————————–

  8、内部类可以引用它的包含类(外部类)的成员吗?有没有什么限制?

  答:一个内部类对象可以访问创建它的外部类对象的成员,包括私有成员。

—————————————————————————————————————————————–

  9、Java 中的final关键字有哪些用法?

  答:(1)修饰类:表示该类不能被继承;

         (2)修饰方法:表示方法不能被重写;

         (3)修饰变量:表示变量只能一次赋值以后值不能被修改(常量)。

—————————————————————————————————————————————–

  10、数据类型之间的转换

  如何将字符串转换为基本数据类型?

  答:调用基本数据类型对应的包装类中的方法parseXXX(String)或valueOf(String)即可返回相应基本数据类型。

  如何将基本数据类型转换为字符串?

  答:一种方法是将基本数据类型与空字符串(””)连接(+)即可获得其所对应的字符串;另一种方法是调用String 类中的valueOf()方法返回相应字符串。

  相关阅读推荐:

  java web开发你需要学习哪些内容?

  Java语言哪里好?为什么那么多人选择Java后端开发

  javascript是什么语言?它是干什么的

最新的WEB开发编程语言排行如何?

thbcm阅读(236)

        编程语言作用是定义计算机的语言,可以理解是一类人和计算机都能识别的语言。编程语言让程序员能快速正确定义所需数据,并在各种情况下应该采取的行动。

        随着互联网时代的发展,编程已经成为现今技术的核心,很多时期编程能力直接影响了构建信息化时代高新技术的潜力,在未来的几十年内,将会对编程有更大的需求,同时编程人才也会更值钱,那么你知道编程语言都有什么嘛?他们的排行是怎样的呢?

以下是小编给大家带来的编程语言2020最新排行榜,这份榜单针对各个编程语言的功能、受欢迎程度、社会需求进行综合排名,一起来看看吧。

1. C语言

  • 难度:高
  • 应用领域:嵌入式开发
  • 职业机会: 软件开发人员,应用程序开发人员,测试人员

        C语言可以说是最古老的编程语言之一,而且仍处在顶级的编程语言之一,而且有良好的可移植性,所以也被Microsoft,Oracle和Apple在内的多个科技巨头公司沿用,几乎可以与所有系统一同使用,非常适合于操作系统和嵌入式系统。由于对运行环境要求很低,因此C是使此类系统保持精简的理想选择。强烈建议初学者学习,C本质上是编程语言的通用语言,并且催生了C ++和C#等衍生产品,它们也很受欢迎。

2. JAVA

  • 难度:中
  • 应用领域:服务器开发,Web开发,应用软件开发
  • 职业机会: Web开发人员,应用程序开发人员,EJB程序员,软件开发人员,测试人员等。

        多年以来,Java始终高居最受欢迎的编程语言榜首,许多知名科技公司都是使用Java来开发软件和应用程序,所以社会需求很大,并且这门编程语言的功能强大、简单易用,还具有很好的延展性,能够熟练掌握了这门语言,基本上找工作也不用愁了。

3. Python

  • 难度:低
  • 应用领域:服务器开发,Web开发,工具开发
  • 职业机会: 软件工程师,软件开发人员,Web开发人员,质量保证工程师,数据科学

        在过去的15年中,Python的普及率稳步增长。同样在今年,Python的学习和使用者,并被认为是最受欢迎的编程语言之一。在过去的几年中,它已经能够在TIOBE指数的前五名之中。它是现今诸如AI,机器学习,大数据和机器人技术等一些最有前途的技术背后的主要语言,Python在近几年积累了庞大的支持者。但其实是有编程语言基础之后学习Python并不难,这就是许多经验丰富的开发人员选择Python作为第二或第三语言的原因。

4. C++

  • 难度:高
  • 应用领域:服务器开发,应用软件开发,游戏开发
  • 职业机会: 操作系统和编译器,数据库引擎,游戏行业,金融平台,嵌入式系统

        这是1980年开发的面向对象的编程语言,适用于桌面Web应用软件到服务器基础结构的众多系统的程序设计。由于C ++的灵活性,有效性以及便于移植等特点,因此仍然对C ++仍然有需求。C ++的职业通常涉及开发桌面应用程序,这些应用程序往往还是性能密集型任务。精通C ++可以更深入地了解编程语言,并有助于掌握底层的内存操作技能和工作原理。

5. C#

  • 难度:中
  • 应用领域:服务器开发,应用软件开发,游戏开发,Web开发
  • 职业机会:游戏开发,应用工程师

        C#是一种现代的面向对象的程序设计语言,当时Java被商务软件开发人员大量使用,Microsoft开发时的初衷是与Java竞争。它旨在用于在Microsoft平台上开发应用程序,并且需要Windows上的.NET框架才能正常工作。您可以使用C#开发几乎所有内容,但是对于Windows桌面应用程序和游戏开发而言,它尤其强大。在过去两年中,C#的受欢迎程度不断下降之后,C#似乎终于获得了关注,因为它在今年已将一个位置上移,从而推开了Visual Basic .NET。

6. Visual Basic

  • 难度:中
  • 应用领域:应用软件开发,Web开发
  • 职业机会:高级工程师,软件开发人员,DevOps工程师,QA自动化工程师

        尽管Visual Basic .NET在十大编程语言排行榜2020中排名第六,但该语言的评级总体上还是下降了。它是Microsoft的OOP语言之一,结合了基于.NET Framework的类和运行时环境的功能。它源于VB6,以GUI应用程序的开发而闻名,它使程序员的工作变得更加轻松,并提高了生产力。对于编码人员,VB .NET提供了一种快速简便的方法来为Windows平台以及Web服务和Web开发创建桌面应用程序。

 

7. JavaScript

 

  • 难度:低
  • 应用领域:服务器开发,Web开发
  • 职业机会:Web开发人员,软件开发人员,App开发人员,UI / UX工程师

        JavaScript不仅成功地在顶级编程语言中排名第七,而且在评分方面也有了积极的变化。如今,所有软件开发人员几乎或多或少都会使用到JavaScript。与HTML和CSS一起使用,对于前端Web开发(创建交互式Web页并向用户动态显示内容)而言至关重要。超过90%的网站都使用这种语言,并且它是十大编程语言排行榜2020中从一开始就对学习者最友好的编程语言之一。因此,如果您精通JavaScript,就不会缺少机会。但是,您将需要学习其他支持语言和框架,才能从事台式机,移动应用程序或游戏开发的前端开发人员的职业

 

8. PHP

  • 难度:低
  • 应用领域:Web开发
  • 职业机会:Web开发人员,App开发人员

  根据TIOBE的说法,PHP已被JavaScript取代,并在十大编程语言排行榜2020中排名下降到第八位。PHP主要用于服务器端的Web开发,约占Internet网站的80%。Facebook从PHP开始,并且在WordPress内容管理系统中的作用使其非常流行。PHP提供了Laravel和Drupal等几种框架,以帮助开发人员更快地构建应用程序,并具有更大的可伸缩性。因此,如果您正在寻找从事Web开发的职业,那么PHP并不是一个不错的选择。

9. R语言

  • 难度:中
  • 应用领域:工具开发
  • 职业机会:数据处理人员、统计分析人员

        R语言是主要用于统计分析、绘图的语言和操作环境。 R本来是由来自新西兰奥克兰大学的Ross Ihaka和Robert Gentleman 开发。 (也因此称为R)现在由“R开发核心团队”负责开发。 R是基于S语言的一个GNU项目,所以也可以当作S语言的一种实现,通常用S语言编写的代码都可以不作修改的在R环境下运行。 R的语法是来自Scheme。

10. SQL

 

  • 难度:低
  • 应用领域:数据库
  • 职业机会:数据库管理员,数据库开发人员,数据库测试人员,数据科学家,应用程序开发人员,Web开发人员

  SQL的名次上升到第九位。曾在一段时间内,这种编程语言在TIOBE索引的前20种编程语言中热度很高。值得注意的是,尽管存在其他数据库技术,但在过去的40年中,这种用于管理数据库的标准查询语言一直占据主导地位。原因是它的简单性,可靠性,普遍性以及活跃的社区,为使这种开源语言不遗余力。与其他语言相比,SQL对于初学者而言通常更容易学习,就职业发展而言,诸如Data Analyst之类的高薪工作是必须要掌握的。

2021年HTML WEB前端面试题及答案

thbcm阅读(256)

  hello 大家好,我是w3cschool编程狮,今天跟大家分享10个HTML WEB前端面试题及答案。

—————————————————————————————————————————————–

  1、什么是 HTML

  HTML是HTML(超文本标记语言)。它是一种为万维网构建和显示内容的语言,万维网是互联网的核心技术。

  WHATWG(Web超文本应用技术工作组)另一次W3C个人聚会认为,W3C没有认真考虑当前方言的现实改进需求,它已经开始处理HTML-HTML5的新确定。因此,HTML5是HTML 4.01和XHTML 1.0的另一种改编,它集中于Web应用程序设计者的必要性上,并且还倾向于在当前细节中发现的问题。

—————————————————————————————————————————————–

  2、什么是HTML语义化,有什么好处

  有助于构架良好的HTML结构

  有助于搜索引擎建立索引、抓取,有利于SEO

  有利于不同设备的解析

  有利于团队的开发维护

—————————————————————————————————————————————–

  3、为什么要在html文件开头加上一个<!DOCTYPE html>

  告诉浏览器使用哪个版本的HTML规范来渲染文档。DOCTYPE不存在或形式不正确会导致HTML文档以混杂模式呈现。

—————————————————————————————————————————————–

  4、HTML5为什么只需要写 <!DOCTYPE html>

  (1)HTML5 不基于 SGML,因此不需要对 DTD 进行引用,但是需要 DOCTYPE 来规

  范浏览器的行为(让浏览器按照它们应该的方式来运行);

  (2)HTML4.01 基于 SGML,所以需要对 DTD 进行引用,才能让浏览器知道该文档所使用的文档类型。

—————————————————————————————————————————————–

  5、HTML5的新特性

  内容元素:article(独立结构)、footer(底部)、header(头部)、nav(导航)、section(分段)。

  表单控件:calendar、date、time、email、url、search。

  控件元素:webworker, websockt, Geolocation。

  表单属性:placehoder, required, min ,max

  移出的元素有下列这些:

  显现层元素:basefont,big,center,font, s,strike,tt,u。

  性能较差元素:frame,frameset,noframe

  新增的元素有绘画 canvas ,用于媒介回放的 video(视频) 和 audio(音频) 元素,本地离线存储

  localStorage 长期存储数据,浏览器关闭后数据不丢失,而 sessionStorage 的数据在浏

  览器关闭后自动删除。

  新的技术:canvas,svg,webworker, websocket, Geolocation

—————————————————————————————————————————————–

  6、div模拟textarea

  contenteditable属性,值为布尔值,为true时可以编辑。反之

—————————————————————————————————————————————–

  7、web标准及w3c的理解和认识

  标签闭合、标签小写、不乱嵌套、提高搜索机器人搜索几率、使用外链 css 和 js 脚本、结构行为表现的分离,

  文件下载与页面速度更快、内容能被更多的用户所访问、内容能被更广泛的设备所访问、更少的代码和组件,

  容易维护、改版方便,不需要变动页面内容、提供打印版本而不需要复制内容、提高网站易用性。

—————————————————————————————————————————————–

  8、XHTML和HTML的区别

  文档顶部doctype声明不同,xhtml的doctype顶部声明中明确规定了xhtml DTD的写法;

  html元素必须正确嵌套,不能乱;

  属性必须是小写的;

  属性值必须加引号;

  标签必须有结束,单标签也应该用 “/” 来结束掉;

—————————————————————————————————————————————–

  9、Iframe的作用

  用法:在网页中插入第三方页面,在切换页面时避免重复下载

  优点:便于修改,模块分离

  缺点:(1)iframe 的创建比一般的 DOM 元素慢了 1-2 个数量级

  (2)会阻塞页面的加载

  (3)对SEO不友好

—————————————————————————————————————————————–

  10、web标准及w3c的理解和认识

  标签闭合、标签小写、不乱嵌套、提高搜索机器人搜索几率、使用外链 css 和 js 脚本、结构行为表现的分离,

  文件下载与页面速度更快、内容能被更多的用户所访问、内容能被更广泛的设备所访问、更少的代码和组件,

  容易维护、改版方便,不需要变动页面内容、提供打印版本而不需要复制内容、提高网站易用性。

Bootstrap是用来做什么的?

thbcm阅读(252)

一.Bootstrap介绍

        Bootstrap 是现在为止最受程序员喜爱的前端框架,。它是由 Twitter(推特)公司的两名技术工程师研发的一个基于HTML、CSS、JavaScript 的开源框架。该框架代码简洁明了、视觉优美,可用于快速、简单地构建基于 PC 及移动端设备的 Web 页面需求。

        2010 年 6 月,Twitter 内部的工程师为了解决前端开发任务中的协作统一问题。经历各种方案后,Bootstrap 最终被确定下来,并于 2011 年 8 月发布。经过很长时间的迭代升级,由最初的 CSS 驱动项目发展成为内置很多 JavaScript 插件和图标的多功能 Web 前端的开源框架。

        Bootstrap 最为重要的部分就是它的响应式布局,通过这种布局可以兼容 PC 端、PAD以及手机移动端的页面访问。

二.Bootstrap特点

Bootstrap 非常流行,得益于它非常实用的功能和特点。主要核心功能特点如下:

(1).跨设备、跨浏览器

     可以兼容所有现代浏览器,包括比较诟病的 IE7、8。当然,本课程不再考虑 IE9 以下浏览器。

(2).响应式布局

    不但可以支持 PC 端的各种分辨率的显示,还支持移动端 PAD、手机等屏幕的响应式切换显示。

(3).提供的全面的组件

    Bootstrap 提供了实用性很强的组件,包括:导航、标签、工具条、按钮等一系列组件,方便开发者调用。

(4).内置 jQuery 插件

    Bootstrap 提供了很多实用性的 jquery 插件,这些插件方便开发者实现 Web 中各种常规特效。

(5).支持 HTML5、CSS3

    HTML5 语义化标签和 CSS3 属性,都得到很好的支持。

(6).支持 LESS 动态样式

    LESS 使用变量、嵌套、操作混合编码,编写更快、更灵活的 CSS。它和 Bootstrap 能很好的配合开发。

三.Bootstrap结构

首先,想要了解 Boostrap 的文档结构,需要在官网先把它下载到本地。Bootstrap下载地址如下:

Bootstrap 下载地址:Bootstrap最新版本 (选择生产环境即可,v3.3.4)

解压后,目录呈现这样的结构:

 bootstrap/

├── css/

│├── bootstrap.css

│├── bootstrap.css.map

│├── bootstrap.min.css

│├── bootstrap-theme.css

├── js/

│├── bootstrap.js

│└── bootstrap.min.js

└── fonts/

├── glyphicons-halflings-regular.eot

├── glyphicons-halflings-regular.svg

├── glyphicons-halflings-regular.ttf

├── glyphicons-halflings-regular.woff

主要分为三大核心目录:css(样式)、js(脚本)、fonts(字体)。

  1. css 目录中有四个 css 后缀的文件,其中包含 min 字样的,是压缩版本,一般使用这个;不包含的属于没有压缩的,可以学习了解 css 代码的文件;而 map 后缀的文件则是css 源码映射表,在一些特定的浏览器工具中使用。
  2. js 目录包含两个文件,是未压缩和压缩的 js 文件。
  3. fonts 目录包含了不同后缀的字体文件。

四.创建第一个页面

我们创建一个 HTML5 的页面,并且将 Bootstrap 的核心文件引入,然后测试是否正常显示。

  1. <!DOCTYPE html>
  2. <html lang=”zh-cn”>
  3. <head>
  4.   <meta charset=”UTF-8″>
  5.   <title>Bootstrap 介绍</title>
  6.   <link rel=”stylesheet” href=”css/bootstrap.min.css”>
  7. </head>
  8. <body>
  9.   <button class=”btn btn-info”>Bootstrap</button>
  10.   <script src=”js/jquery.min.js”></script>
  11.   <script src=”js/bootstrap.min.js”></script>
  12. </body>
  13. </html>

五.学习的各项准备

  1. 开发工具, 我们使用Sublime Text3作为Bootstrap的开发工具, 并且安装了Emmet代码生成插件;
  2. 测试工具,除了常规的现代浏览器,其次就是作为移动端的测试工具,我们这里采用的是 Opera Mobile Emulator,和 Chrome 的移动 Web 测试工具。
  3. 所需基础,至少有 HTML5 第一季课程的基础,Bootstrap 内置了很多 jQuery 插件,虽然使用起来比 jQuery 或 JS 本身要简单的多,但如果有 jQuery课程JS 课程的基础,那学习理解力就更加深入;
  4. 课程分辨率:基础课程,我们使用 1024 x 768 来录制,但某些特殊部分,比如响应式和项目课程,需要大分辨率录制,会采用 1440 x 900 来录制。

六.更多学习资源

联系我们