Java趋势:脚本语言引领风骚

SpringBoot+Vue+MySQL 高校学科竞赛平台 完整可运行版(源码+文档) 本项目基于SpringBoot+Vue+MySQL构建高校学科竞赛管理平台,覆盖学生、教师、领队教师、管理员四大角色,实现竞赛发布、报名、刷题、评分、公示等全流程闭环管理。系统架构清晰,技术主流,配套完整源码、数据库脚本、万字论文、开题报告、答辩PPT及部署文档,支持一键运行,适用于毕业设计、课程设计及院系二次开发,真正实现“开箱即用”。 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 张惠敏   只用了短短的8年时间,却好像已经成长了35年,Java已经迅速在广泛的领域中找到了自己的位置:P2P、开放源代码、无线应用、嵌入式应用程序以及将要命名的某些应用。很难追踪Java的具体方向,因为它在每个领域都正处于领导地位。   现在,让我们看看Java领域中日益增长的脚本语言的影响。   关于快速开发   毋庸置疑,脚本语言,比如Jython、Python、Perl和PHP正越来越流行。Jython实际上是Python编程语言的一个完整实现。它由100%的纯Java语言写成,并且可以很方便地访问Java类库。   这种脚本趋势正由于快速应用程序开发(RAD,Rapid Application Development)的发展而越来越扩大化。RAD是一种开发风格,如今它正吸引着越来越多的拥护者。销售部经理给IT部门施加了巨大的压力以便加速生产,IT经理就不得不寻找更高效的方法来缩短研发生产时间。因此,RAD自然成了最好的推动力。   Infravio公司作为一个Java和Web服务的集成商,CTO Mukund Balasubramanian 说:“通过某些脚本语言,你可以变得非常聪明并且能够完成常规Java无法完成的很多事情。如果你知道如何利用一个好的脚本语言,你可以在开发中节省大量的时间和金钱。”   脚本语言的优势   Balasubramanian说,脚本语言具有以下优势:   · 快速开发。它们大大缩短了“开发、部署、测试、调试”周期。   · 部署简便。大多提供即时部署能力,而无需花费大量时间在编译和打包周期上。   · 与已有技术集成。它们大都构建在已有的组件技术,诸如Java或者COM上,以便有效重复利用现有代码。   · 易于学习和使用。技术门槛很低,可以轻松找到大量的使用者。   · 动态代码。脚本语言能够被即时生成和执行,这在某些应用程序中是非常必要和有用的高级特性(比如说,JavaScript中的动态类型)。   当然,Java脚本语言也存在着一些缺点:   · 凡事没有十全十美。它假定存在着一个“现实”的编程语言,比如说,找到内建在脚本语言中的数据库驱动器是件非常困难的事情。   · 对于软件工程和代码结构领域的熟练开发者来说,这不太有利。比如说面向对象和基于组件的开发环境。   · 它们通常都不具有“一般性”,而是为某种特定的应用程序所产生,比如说PHP和互联网。    “尽管如此,脚本语言可以加速软件开发的进程,并且将其扩展到一个巨大的领域。但是必须要注意的是选择特定的应用程序,比如说动态页面或者完成一个‘真实’的编程语言(如对于Java而言就是Jython)。”Balasubramanian如是说。   第三方实用程序   通过基本框架帮助网格脚本   IBM的 Bean Scripting Framework的应用程序使得将 Tcl、Python、Perl和其他脚本语言嵌入Java应用程序相当简单。Sun、Borland、BEA和其他厂商也提供类似应用程序。但是熟练的Java开发者,比如Mentro Graphics公司的David Kearns指出,支持一个脚本语言会有时间和费用上的风险,更不要说支持六个这样的语言了。   在最近《Java World》的一篇文章中,Kearns描述了在Java应用程序中支持脚本会有的潜在风险。   “Jython具有最快的脚本解释能力,同时具有强大的编程特性。”他说,“我最关注的其实是Jython的控制流语法,对你来说也许重要,也许不重要。因为有新的领域要涵盖,为Jython编写脚本或许比JavaScript和BeanShell需要更长的学习周期。如果需要用Python编写高级应用的脚本,我推荐去买本书。Python是一个很流行的编程语言,所以书店中会有大量的书籍可供选购。”   其他Java脚本语言   这里简单介绍一些其他被广泛使用的、与Java相关的脚本语言。   · Beanshell。Beanshell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性。BeanShell执行标准Java语句和表达式,另外包括一些脚本命令和语法。它将脚本化对象看作简单闭包方法(simple method closure)来支持,就如同在Perl和JavaScript中的一样。   可以将BeanShell交互地用于Java试验和调试,或者也可以将其当作简单的脚本引擎以用于你的应用程序。简言之,BeanShell是一个动态的解释型Java,加上了一些有用的特性和功能。还有另外一种描述BeanShell的方式:在很多方面,BeanShell之于Java就像Tcl/TK之于C。BeanShell是嵌入式的——你可以从Java应用程序中调用BeanShell,以便实时、动态地执行Java代码,或者为应用程序提供扩展的脚本能力。当然,也可以在BeanShell中调用Java应用程序和对象,动态地与Java对象和API协同工作。既然BeanShell是用Java写成,并且在应用程序中的某处运行,那么就可以随意传送参数到脚本中的“实时”对象,并且将结果作为参数返回。   它具有以下的一些特点:使用Java反射API以提供Java语句和表达式的实时解释执行;可以透明地访问任何Java对象和API;可以在命令行模式、控制台模式、小程序模式和远程线程服务器模式等四种模式下面运行;与在应用程序中一样,可以在小程序中(Applet)正常运行(无需编译器或者类装载器); 解释器非常精简——jar文件大小为175k(如果去掉某些实用程序,那么就只剩下135k);纯Java写成,并且是免费的!   · Jess。Jess是完全用Java写成的规则引擎和脚本环境。Jess的产生是受到CLIPS专家系统的启发,但是其本身正逐渐成长为一个完备的、独特的、动态环境。使用Jess,你可以构建Java小应用程序,这些程序具有根据你以规则声明的形式所提供的知识来“推理”的能力。   Jess非常小巧、灵活,并且是已知规则引擎中最快的。核心Jess语言与CLIPS依然兼容,许多Jess脚本也是有效的CLIPS脚本。与CLIPS一样,Jess使用Rete运算法则来处理规则。Rete是一个非常高效的算法,用于解决复杂、艰深的多对多匹配问题。在CLIPS的基础上,Jess添加了许多特性:后向链表、运行内存查询以及操作和直接推理Java对象的能力。Jess同时也是一个强有力的Java脚本环境。通过它你能够创建Java对象、调用Java方法而无需编译任何Java代码。   Jess可以被授权用于商业应用,可以被免费用于学术研究。   · JudoScript。JudoScript是一种Java类型的脚本,具有一系列特性:HTTP客户端和服务器端编程、文件系统和归档、XML和XSLT脚本、JDBC脚本以及HTML代码优化。它同时带有以下功能:有监视器的调度程序、sendmail、可运行调试、Java GUI的创建、FTP、SSH和SCP、Windows注册表等等。该软件可被自由下载,并且包括源代码在内都是免费的。   JudoScript是一种通用的、应用广泛的、Java脚本语言。JudoScript包括三个紧密联系的部分:一种通用脚本语言;完备的Java脚本工具;支持特定领域的特性。   它由纯Java设计和实现。它的设计包含了第三代和第四代语言的思想,不仅提供强大的编程支持,同时提供一种特殊的机制,被称之为“WYSIWYG(所见即所得)”的编程方法。该机制如今已经非常流行,它使得编程工具的使用更加方便、高效,质量优异。这是一种高层次的语言,被集成进了一个健壮的、通用的Java脚本环境中。   JudoScript由LGPL(Lesser GNU Public License)发布,因此你可以随意使用它以及它的代码。当用于商业目的或者其他目的时,只要保留其最初的版权信息就可以。它会始终与最新的Java开发保持同步,并且与更多LGPL或者GPL开发源代码Java工程继承。原理很简单:如果有什么是有用和有效的,那么JudoScript就力图使得它更加容易使用,并且很乐意使得它们具有脚本能力。   · Rhino。Rhino是用纯Java写成的JavaScript的开放源代码实现。它最常被用于嵌入Java应用程序,以便为终端用户提供脚本的能力。   相关链接   脚本语言的定义   当谈论到脚本的时候,我们的意思是说更快、更简便地去做某件事情。下面是有关脚本和脚本语言的定义:   · 脚本(从编程的角度)就是为了简便、直观、清楚和准确地去完成某件事情。脚本是如此的神奇以至于任何熟悉编程知识的人都可以在见到这样一大段代码的同时,不用丝毫犹豫和思考就可以理解程序代码的意义。   · 脚本支持意味着极高抽象级别的语言结构或者说是特定领域的语言。   · 脚本语言通常是通用编程语言,具有对一个或多个脚本支持的能力。他们通常是可以编辑和运行,并且,作为可选项,它们提供编译工具,目的在于提高性能、安全性等。这些都是典型的应用,以便将应用程序和组件连接起来从而达到更加简便、快速和高效地完成任务的目的。   下面就是一些关于脚本以及脚本定义的资料:   · 游戏脚本语言是最完美的例子。它们也许基于某种通用编程语言发展而来,但是他们具有很高的抽象性,因此,一系列的动作可以被轻松地组合和嵌入以实现扭曲和旋转。   · JudoScript是被广泛应用的脚本语言,用于操作系统级的脚本、JDBC脚本、XML和SGML脚本、ActiveX脚本等等。   · Unix Shells是一种专项应用的脚本语言,用于操作系统级的脚本。   · C、C++、Java、Perl、Python、Jython、Beanshell、JavaScript、Visual Basic、 JudoScript都是通用的编程语言。   · Jython、Beanshell、JudoScript、Rhino是用于Java领域的脚本语言(任何优秀的Java程序员都应该意识到代码中无需过多麻烦Java的好处)。   · Vusyak Basic(包括VBA)是用于COM/ActiveX领域的脚本语言。   · Prolog,不能确定它的分类……可能还有其他的分类可以适合(逻辑编程语言或者其他什么)。
Geant4学习——入门(基本概念、Geant4工具包的结构、强制类、可选类) Geant4是由欧洲核子研究组织基于C++面向对象技术开发的蒙特卡罗应用软件包,用于模拟粒子在物质中输运的物理过程。由于具有良好的通用性和扩展能力,Geant4在涉及微观粒子与物质相互作用的诸多领域获得了广泛应用。 第一部分 Geant4的基本概念 HEP中的模拟是“虚拟现实”。仿真既可用于在研发阶段帮助设计探测器,又可用于物理研究中了解探测器的响应。为了创建这样的虚拟现实,我们需要对粒子间的相互作用,几何形状和材料进行建模,以便将基本粒子传播到检测器中。我们还需要描述检测器生成原始数据的灵敏度。 Gea 阅读详情

相关推荐

CUDA 12.1环境下的动态库链接修复:从libcusparse.so.12的undefined symbol错误到libnvJitLink.so.12的正确加载

本文详细解析了在CUDA 12.1环境下,PyTorch因libcusparse.so.12找不到libnvJitLink.so.12中的__nvJitLinkAddData_12_1符号而报错的根本原因。通过诊断动态链接过程,提供了创建符号链接、修改环境变量等三种解决方案,并深入探讨了nvJitLink组件的作用及环境配置的最佳实践,帮助开发者彻底解决此类动态库链接问题。

c8d9e0f1的博客 206

Groovy

Groovy 是 用于Java虚拟机的一种敏捷的动态语言,它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。使用该种语言不必编写过多的代码,同时又具有闭包和动态语言中的其他特性。   Groovy是 JVM的一个替代语言(替代是指可以用 Groovy 在 Java 平台上进行 Java 编程),使用方式基本与使用 Java 代码的方式相同,该语言特别适合与 S

semon19的专栏 881

Camera mipi通信协议

MIPI(移动行业处理器接口),是的缩写。MIPI移动行业处理器接口)是MIPI联盟发起的为移动应用处理器制定的开放标准。分别定义了一系列的手机内部接口标准,比如摄像头接口CSI、显示接口DSI,其中是由MIPI联盟下Camera工作组指定的接口标准。CSI-2是MIPI CSI第二版,主要由应用层、协议层、物理层组成,最大支持4通道数据传输、单线传输速度高达1Gb/s。

arvin_xiong的博客 3731

java开发 五大基于jvm的脚本语言_基于JVM的五大脚本语言

【IT168 评论】Groovy和JRuby二将领衔JVM脚本语言,Scala、Fantom和Jython三位亦是JVM脚本中的好汉。很多人都知道,在过去很长一段时间里,Java技术是指Java编程语言和Java虚拟机(JVM)。把Java语言被编译成字节码在JVM上运行,而通过这样的技术,Java也被认为是可以在任何环境、操作系统中都可以运行万能语言。但是,Java和JVM的发展轨迹却不相同:J...

weixin_31859675的博客 1143

Flotherm XT学习历程

大家好,通过半年的热仿真软件学习使用,最终发现最好用,最好上手的软件就是Flotherm XT,对新手非常友好,但由于软件近几年才发布,网上教程非常少,后面我将在这里持续分析软件使用心得,和大家一起学习。

xiaoredred的博客 6268

逆向工程师必备:用MDL绕过游戏保护读取内存数据的完整流程(附POC代码)

本文深入探讨了内核级内存访问技术,重点介绍了如何利用MDL(Memory Descriptor List)机制稳定、隐蔽地绕过游戏反作弊系统读取进程内存。通过对比MmCopyVirtualMemory等方法的优劣,提供了完整的MDL映射实战代码与反检测策略,为逆向工程师在内核态进行安全内存操作提供了专业指导。

weixin_29227425的博客 626

四种Java脚本语言之评测

一、脚本解释器概述 在一些Java应用的需求中,集成某种脚本语言的支持能够带来很大的方便。例如,用户可能想要编写脚本程序驱动应用、扩展应用,或为了简化操作而编写循环和其他流程控制逻辑。在这些情况下,一种理想的解决方案是在Java应用中提供对脚本语言解释器的支持,让脚本语言解释器读取用户编写的脚本并在应用提供的类上运行这些脚本。为了实现这个

socoolfj的专栏 3255

TBOX(Telematics Box)在智能网联汽车中的核心功能与应用场景解析

TBOX(Telematics Box)是智能网联汽车的“中枢神经”,基于Android或Linux操作系统,并通过CAN总线与车辆深度交互。它实现了远程控制、车辆状态监控、OTA升级及紧急呼叫(E-CALL)等核心功能,是提升用车安全、便利性与实现车辆持续进化的关键技术组件。

weixin_29158413的博客 805

java开发 五大基于jvm的脚本语言_Java基础:五大基于JVM的脚本语言介绍

【IT168技术】JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。能运行在Java的虚拟机JVM上的程序意味着有天然的跨平台性,现在JVM并不单单只能运行Java程序,在JVM上出现了若干使用Java虚拟机运行的脚本程序,比如什么PHP, Python, Ru...

weixin_27918373的博客 1600

Ubuntu22.04如何安装cuDNN8.9.7

本文详细介绍了在Ubuntu 22.04系统上为CUDA 12.2安装适配cuDNN 8.9.7的完整流程,特别针对RTX A6000显卡。主要内容包括:1)选择与CUDA 12.2兼容的cuDNN版本;2)使用deb包方式的安装步骤(添加仓库、导入密钥、安装组件);3)通过MNIST示例验证安装;4)版本锁定、卸载旧版等补充说明;5)性能测试方法。文中强调了版本匹配的重要性,并提供了多卡配置建议,为搭建深度学习开发环境提供完整指导。

2501_93651177的博客 1845

第18章:Ingestion Pipeline 数据摄取流水线

本文介绍了LlamaIndex的IngestionPipeline如何解决合同文档处理中的四大核心问题:不可重复、无追溯、无容错和无法缓存。通过标准化数据处理流程,将手工操作升级为工厂流水线模式,实现数据的可复用、可追踪和高效处理。文章详细阐述了Pipeline的设计原理,包括Transformation的串行编排、缓存机制(基于输入和Transformation的哈希值)以及数据血缘追踪(通过Node的metadata记录处理过程)。

davidwang456的专栏 65

JAVA中脚本语言的使用

JAVA中脚本语言使用 2016年7月18日 下午 3:22 脚本语言的优势 描述应用中复杂多变的业务逻辑,并在应用运行过程中进行动态修改 为应用提供一种领域特定语言(DSL),供没有技术背景的普通用户使用 快速进行组件之间的整合 快速开发出原型系统 快速编写测试用例等 【摘自《深入理解Java7:核心技术与最佳实践》】 JVM中可以运行多种流行

jasonware 1万+

OTFS 消息传递算法信号检测【附matlab代码详解】

OTFS 消息传递算法方面的一些浅浅理解。

Cuby的博客 4013

突发!Python 登顶了。。。

Python 登顶! 栈长在上一篇《卧槽!最新编程语言排名,Java 沦为老三。。》文章中预测 Python 很快就要新王登基: 没想到这一天来的这么快,TIOBE 最新编程语言排行榜出来了: Python 终于打败 C 语言成为新王者,这也是这 20 多年来,继 C 和 Java 语言之后,首次出现的新的王者语言,Java 和 C 语言长期霸榜的时代已经结束了。。。 Python 领导的新的编程语言排行榜的时代已经到来! 再来看一下 2002 - 2021 期间的编程语言流行指数图: Python

Java技术栈,分享最主流的Java技术 427

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

十年(三)续之语言进化论

语言进化论 相比较开发工具的世界大战, 计算机语言之间的竞争要显得安静和优雅的多。 从语言看, 80年代之前,PC没有流行, 计算机语言只是被用来工业用、商用和军用大型机以及科学计算中。成名的是Fortune, Cobol, Ada等等。直到苹果和PC的出现,计算机语言,才和普通程序员有了关系。 汇编 其 实不能算一种语言, 因为它只是机器语言的符号化。就像我的毕业设计,...

cto_juweihua的博客 424

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

2011中国软件开发者年度调查

记者 / 常政 由优快云和《程序员》杂志举办的“中国软件开发者年度调查”,已经历时7个年头。这段时间内,世界在变、产业在变,开发者也在变,而我们的调查无论是调研方式、数据采集渠道,还是样本处理方法等也顺应时代和技术发展,进行了相应革新。本次年度调查广泛涉及开发者社区、技术、工具、厂商等各个层面,除了延续以往的规范化、全面深入的特性,今年最大的特性是根据2010~2011年的技术趋势和热点,以及...

《程序员》官方BLOG 300

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

InnoDB 内存结构总览:Change Buffer、AHI 与 Log Buffer

本文系统梳理InnoDB内存结构中的ChangeBuffer、Adaptive Hash Index(AHI)与LogBuffer。ChangeBuffer缓存二级索引页不在内存时的变更,减少随机IO,仅在页加载时合并;聚簇索引修改立即执行,因数据本身不可延后。AHI基于高频等值查询自动构建哈希索引,加速定位,仅支持等值操作。LogBuffer为redo log内存缓冲,配合磁盘日志实现崩溃恢复。三者均服务于性能优化,其中ChangeBuffer与AHI共享BufferPool空间,而LogBuffer独立

bksczm的博客 301

第三篇 第 6 课

前置:第三篇第 1 课(stdx 引入),第二篇第 1 课(std.regex)。环境:仓颉 SDK 1.2.0。本文所有代码与输出均逐行实测。

weixin_41618057的博客 517

V8 机制、手写核心函数与 TypeScript 类型体操

或固定初始化(如数组先定长、对象先给全字段)保持类型与形状稳定;这些都比"换框架"更基础。只能处理纯数据(丢函数、Date、RegExp、循环引用报错)。生产级深拷贝要处理:原始值短路、循环引用、V8(Chrome / Node 的 JS 引擎)不是"解释一行跑一行"那么简单,它用。图:V8 执行流程——解释执行 + 热点优化,优化失败会 Deopt 回退。JS 内存自动管理,但"自动"不等于"不会漏"。是"固定间隔最多执行一次"。手写 Promise 是"懂异步"的试金石。是"停下后才执行最后一次",

qq_38468358的博客 351

信创环境下PageOffice文档控件适配与实践

信创适配做到文档控件这一层,拼的已经不是"有没有国产版本",而是同一个功能在两类终端上是否真的等价。等价的标准很具体:同一次点击能得到同样的结果,同一份公文能得到同样的版式,同一个项目不需要维护两套代码。这背后是三件并不轻松的工作:服务端用一套接口同时支撑两类终端,客户端把两种系统与四种芯片的安装包分发清楚,文档内核层由产品侧跟着 WPS 的版本走。浏览器这一层的压力,则被收进了产品自己的窗口里——升级节奏由产品掌握,不再交给运气。

zi_wu_xian的专栏 327

【从零理解 Spring AI · 12】MCP 的两种角色:做客户端还是做服务端

上一篇讲了 MCP 的概念:标准协议、三大角色、M+N 替代 M×N。

nice_lcj520的博客 551

Java 集合容器高频面试题全解:HashMap 树化阈值、1.7 死循环与 ConcurrentHashMap 演进(2026 招聘 JD 真题复盘)

HashMap 树化阈值 8 的泊松分布依据、退化阈值 6 的防抖设计、JDK 1.7 头插成环死循环的排查与修复、1.8 尾插后为何仍线程不安全、ConcurrentHashMap 放弃分段锁的原因与 ForwardingNode 协作扩容、computeIfAbsent 死锁陷阱、大集合找重复的场景题选型,附三层追问链自测。题目来源为 38 期公开招聘 JD 样本与字节、拼多多、建行、美团、快手公开面经。

蒙眼过河 421

spdlog 同步日志库使用详解

spdlog是一个轻量级 C++ 日志库,支持同步日志、异步日志、多线程日志、日志文件轮转和自定义日志格式。对于嵌入式 Linux 应用开发,我建议先使用。它可以帮我们完成:日志级别过滤。时间戳和线程 ID 输出。日志格式化。终端和文件输出。多线程安全写入。日志文件按大小或时间轮转。我们不需要自己实现互斥锁、文件写入、日志格式化和轮转等底层功能。

zengjiajun2006的博客 1121

JavaSE通关手册:数据类型与变量

代码无需额外处理,编译时编译器自动完成转换。

xys_678的博客 231

Java 多态 学习笔记

多态是面向对象编程的重要特性,指同一操作作用于不同对象时产生不同行为。其核心在于“父类引用指向子类对象”,结合方法重写实现运行时动态绑定。多态使代码更灵活、可扩展,如用Person p = new Student();统一处理各类人员注册,无需修改调用逻辑。但多态无法直接调用子类特有方法,需通过instanceof判断并强制转换。编译时看左边(类型),运行时看右边(实际对象),实现解耦与维护便利。

AA_AA114514的博客 367

IDEA 简介:从零认识 IntelliJ IDEA

IDEA 全称,是由 JetBrains 公司开发的一款主流 Java 集成开发环境(IDE)。它集代码编辑、编译、调试、测试、版本控制、构建管理等功能于一体,被大量 Java 开发者视为日常开发的首选工具。所谓 IDE(Integrated Development Environment,集成开发环境),就是把写代码所需的各类工具整合到同一个界面中。相比只用文本编辑器加命令行编译,IDE 能显著减少重复操作,让开发者把精力集中在业务逻辑上。

ztI10的博客 175
上一篇: 康佳试水无线K-Java技术
下一篇: Sun ONE杯网络应用程序设计大赛
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值