java常用类

Object类

java.lang.Object类是所有java类的最高层次父类,该类提供了面向对象编程技术的基本机制。

重要方法列表:

  • hashCode()方法
  • toString()方法
  • equals()方法
  • finalize()方法
  • clone()方法
  • wait()方法
  • notify()/notifyAlly()方法

hashCode()

hashcode可以更快的查询到小的内存块分割线下是网络搜集整理(在具体的java编程思想已经很清楚了)

-------------------------------------------------------------------------------->

总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set。你知道它们的区别吗?前者集合内的元素是有序的,元素可以重复;后者元素无序,但元素不可重复。那么这里就有一个比较严重的问题了:要想保证元素不重复,可两个元素是否重复应该依据什么来判断呢?这就是Object.equals方法了。但是,如果每增加一个元素就检查一次,那么当元素很多时,后添加到集合中的元素比较的次数就非常多了。也就是说,如果集合中现在已经有1000个元素,那么第1001个元素加入集合时,它就要调用1000次equals方法。这显然会大大降低效率。
    于是,Java采用了哈希表的原理。哈希(Hash)实际上是个人名,由于他提出一哈希算法的概念,所以就以他的名字命名了。哈希算法也称为散列算法,是将数据依特定算法直接指定到一个地址上。如果详细讲解哈希算法,那需要更多的文章篇幅,我在这里就不介绍了。初学者可以这样理解,hashCode方法实际上返回的就是对象存储的物理地址(实际可能并不是)。
    这样一来,当集合要添加新的元素时,先调用这个元素的hashCode方法,就一下子能定位到它应该放置的物理位置上。如果这个位置上没有元素,它就可以直接存储在这个位置上,不用再进行任何比较了;如果这个位置上已经有元素了,就调用它的equals方法与新元素进行比较,相同的话就不存了,不相同就散列其它的地址。所以这里存在一个冲突解决的问题。这样一来实际调用equals方法的次数就大大降低了,几乎只需要一两次。
    所以,Java对于eqauls方法和hashCode方法是这样规定的:
1、如果两个对象相同,那么它们的hashCode值一定要相同;
2、如果两个对象的hashCode相同,它们并不一定相同
    上面说的对象相同指的是用eqauls方法比较。

-------------------------------------------------------------------------------------------------

在举一个形象的例子

我们先通过 hashcode来判断两个类是否存放某个桶里,但这个桶里可能有很多类,那么我们就需要再通过 equals 来在这个桶里找到我们要的类。
那么。重写了equals(),为什么还要重写hashCode()呢?
想想,你要在一个桶里找东西,你必须先要找到这个桶,你不通过重写hashcode()来找到桶,光重写equals()有什么用啊

扯的有点远了-------------------------------------------言归正传

public class Person{
	private int age;
	public Person(int age){
		this.age = age;	
	}
	public void setAge(int age){
		this.age = age;	
	}	
	public int getAge(){
		return age;
	}
} 

 ------------------------------------------------------------------------------------也就是打印他的地址置是多少

public class TestHashCode{
	public static void main(String[] args){
		Person p1 = new Person(18);
		Person p2 = new Person(18);		
		
		int handle1 = p1.hashCode();
		System.out.println(handle1);
		System.out.println(Integer.toHexString(handle1));
		System.out.println(p1);
		
		System.out.println("----------------");		
		System.out.println(p2.hashCode());
	}	
}
输出-------------------
12677476
c17164
Person@c17164
----------------
33263331

 

toString()方法

  • 方法格式:public String toString(){....}
  • 方法功能:以字符串形式返回当前对象的有关信息,在Object类的原始定义中,所返回的是对象所属的类型名称及其哈希码.
  • 当使用System.out.println()方法直接打印输出引用类型变量时,println()方法中会先自动调用其toString()方法,再将所返回的字符串信息输出.
  • 在进行String与其他类型数据的链接操作时,自动调用toString()方法,基本类型数据转换为String类型时,调用了对应封装类的toString()方法。
  • 可以根据需要在用户定义类型中重新toString()方法

equals()方法

  • 方法格式:public boolean equals(Object obj){...}
  • 功能:比较引用类型数据的等价性
  • 等价标准:引用类型比较引用,基本类型比较值。
  • equals()方法与==操作的区别:
  • equals()方法只能比较引用类型数据,而"=="可以比较引用类型及基本类型数据;
  • equals()方法存在特例:对file,String,date及封装类等类型来说,是比较类型及对象的内容而不考虑引用的是否为同一实例
  • 可以根据需要,在用户定义类中重写其equals方法,改变判断标准

finalize()方法

  • 方法格式:protected void finalize() throws Throwable{...}
  • 方法功能:java运行时环境中的垃圾收集器在销毁一个对象之前,会自动调用该对象的finalize()方法,然后才释放对象的内存空间
  • 方法用途:是在子类中重写,以加入所需的逻辑代码来配置系统资源或执行其他清除操作

clone()方法

  • 方法格式:protected native Object clone() throws CloneNotSupportedException;
  • 方法功能:对象拷贝.
  • 要进行"克隆"的对象所属的类必须实现java.lang.Cloneable接口
  • 浅度拷贝和深度拷贝

字符串相关类型

String类

  • java.lang.String类对象表示不可修改的Unicode编码字符串.
  • 方法说明:构造方法
  • 字符串、连接、转换和截断:concat()、replace()、substring()、toLowerCase()、toUpperCase()、trim()
  • 检索和查找功能:charAt()、startWith()、indexOf()、lastIndexOf()、length();
  • 内容比较:equals()、equalslgnoreCase()、compareTo()

StringBuffer类

StringBuffer类对象保存可修改的Unicode字符序列

构造方法:

  • StringBuffer()
  • StringBuffer(int capacity)
  • StringBuffer(String initialString)

主要功能方法:

  • append()
  • insert()
  • reverse()
  • setCharAt()

 

StringBuilder类

JDK5.0以后引入,该类能过提供与StringBuffer相同的功能,二者区别:

  • StringBuffer类是线程安全的,而StringBuilder则不是,即不保证其对象的同步性,在多线程环境中是不安全的
  • StringBuilder在性能上要比StringBuffer好一些

StringTokenizer类

java.util.StringTokenizer类的功能是将当前字符串按照默认或指定的分隔符分解为多个片段

构造方法:

  • public StringTokenizer(String str)
  • public StringTokenizer(String str,String delim)
  • public StringTokenizer(String str,String delim,boolean returnDelims)

主要功能方法:

  • public boolean hasMoreTokens()
  • public String nextToken()

分解字符串的新方法

从JDK1.4开始,sun公司推荐开发者使用一种新的字符串的分解方式

public class TestStringSplit{
	public static void main(String args[]){
		String s = "阳光:沙滩:海浪:仙人掌";
		String[] results = s.split(":");
		for(String each: results) {
			System.out.println(each);
     	}     	
	}
}
输出------------------------------>
阳关
沙滩
海浪
仙人掌

 日期相关类型

Date类

java.util.Date类用于表示特定的时间点,精确到毫秒,但不支持日期的国际化和分时区显示。

构造方法:

  • public Date()
  • public Date(long date)

主要功能方法:

  • public int compart To(Date anotherDate)
  • public boolean equals(Object obj)
  • public long getTime()
  • public String toString()

Calendar类

抽象类java.util.Calendar类提供了常规的日期修改功能和国际化支持

主要方法:

  • public static Calendar getInstance()
  • public int get(int field)
  • public final set(int field,int value)
  • public final void set(int year,int month,int date,int hourOfDay,int minute,int second)
  • public abstract void add(int field,int amount)

Locale类

java.util.Locale类描述特定的地理,政治/文化上的地区,Locale对象主要封装了"地区"和"语言种类"两方面的信息,通常用于在国际化/本地化程序中以地区/语言相关的方式显示日期、数字或文本信息等.

主要方法:

  • public Locale(String language)
  • public Locale(String language,String country)
  • public static Locale getDefault()
  • public String getLanguage()
  • public final String getDisplayName()
  • public static Locale[] getAvailableLocales()

TimeZone类

java.util.TimeZone类描述时区信息

TimeZone被定义为抽象类,可以调用其静态方法getDefault()已获得类的实例。

  • public static TimeZone getDefault()
  • public static TimeZone getTimeZone(String ID)

其他方法:

  • public static String[] getAvailablelDs()

GregorianCalendar类

Java.util.GregorianCalendar是Calendar的子类,该类提供了世界上大多数国家/地区使用的标准日历系统,并添加判断闰年的功能

主要方法:

  • public GregorianCalendar()
  • public GregorianCalendar(TimeZone zone)
  • public GregorianCalendar(Locale aLocale)
  • public GregorianCalendar(TimeZone zone,Locale aLocale)
  • public GregorianCalendar(int year,int month,int dayOfMonth)
  • public GregorianCalendar(int year,int month,int dayOfMonth,int  hourOfDay,int minute,int second)
  • public boolean isLeapYear(int year)

DateFormat类

java.text.DateFormat类提供了将日期/时间信息进行格式化处理的功能..

主要方法:

  • public static final DateFormat getDateInstance()
  • public static final DateFormat getTimeInstance()
  • public static final DateFormat getDateTimeInstance()
  • public final String format(Date date)

SimpleDateFormat类

  • java.text.SimpleDateFormat类是DateFormat类的子类,它允许用户自定义日期/时间信息的表现格式,并提供更灵活的Date<=>String信息转换盒解析的功能.
  • 在创建SimpleDateFormat实例是应指定所转换的字符串格式,否则系统会缺省采用与所在语言环境相关的默认格式

数学相关类型

Math类

java.lang.Math类提供常用数学功能和数学常量:

  • 数据截断操作:ceil(),floor(),round()
  • 取最大,最小及绝对值:max(),min(),abs()
  • 三角函数:sin(),cos(),tan(),asin(),acos(),atan(),toDegress(),toRadians()
  • 幂运算和对数运算:pow(),exp(),sqrt(),log(),log10()
  • 其他操作:random()

Random类

java.util.Random类是基于"线性同余"算法的一种伪随机数序列生成器,其主要功能方法包括:

  • public Random()
  • public Random(long seed)
  • public int nextInt()
  • public int nextInt(int n)

BigInteger/BigDecimal

java.math包中定义的BigInteger和BigDecimal类型可以分别提供任意长度/精度的整数和浮点数运算功能。

BigInteger类主要方法:

  • public BigInteger(String val)
  • public static BigInteger valueOf(long val)
  • public BigInteger add(BigInteger val)
  • public BigInteger subtract(BigInteger val)
  • public BigInteger multiply(BigInteger val)
  • public BigInteger divide(BigInteger val)
  • public int compare To(BigInteger val)
  • public BigInteger remainder(BigInteger val)
  • public BigInteger pow(int exponent)
  • public String toString()
public class TestBigInteger{
	public static void main(String args[]){
		BigInteger a = BigInteger.valueOf(43);
		BigInteger b = new BigInteger("12345678901234560000");
		//Long c = new Long(12345678901234560000L);	//超出范围
		BigInteger c = a.add(b);
		System.out.println(c);
		System.out.println(a.multiply(b.subtract(BigInteger.valueOf(120))));
		System.out.println(b.remainder(a));
		System.out.println(b.divide(a));
		System.out.println(b.pow(2));
		System.out.println(b.compareTo(a));
	}	
}

 

java.text.NumberFormat/DecomalFormat提供了将数字格式化为语言环境相关字符串以及逆向解析字符串为数字的功能

import java.util.Locale;
import java.text.NumberFormat;
public class TestNumberFormat{
	public static void main(String args[]){
		double d = 1234.56;
	
		NumberFormat nf0 = NumberFormat.getInstance();
		NumberFormat nf1 = NumberFormat.getInstance(new Locale("zh","CN"));
		NumberFormat nf2 = NumberFormat.getInstance(new Locale("de","CH"));
		NumberFormat nf3 = NumberFormat.getInstance(new Locale("de","GE"));
		
		System.out.println("默认风格:" + nf0.format(d));
		System.out.println("中国风格:" + nf1.format(d));
		System.out.println("瑞士风格:" + nf2.format(d));
		System.out.println("德国风格:" + nf3.format(d));
	}	
}

 

import java.util.Locale;
import java.text.NumberFormat;

public class TestNumberFormat2{
	public static void main(String args[]){
		double d = 1234.56;	
		NumberFormat nf1 = NumberFormat.getCurrencyInstance(new Locale("zh","CN"));
		NumberFormat nf2 = NumberFormat.getCurrencyInstance(new Locale("en","US"));
		NumberFormat nf3 = NumberFormat.getCurrencyInstance(new Locale("zh","HK"));		
		System.out.println("中国货币:" + nf1.format(d));
		System.out.println("美国货币:" + nf2.format(d));
		System.out.println("香港货币:" + nf3.format(d));
		
		NumberFormat nf4 = NumberFormat.getPercentInstance();
		System.out.println(nf4.format(0.7483));
	}	
}

  

 

基于 Datawhale 开源量化投资学习指南(10):基于 LightGBM 的量化选股 通过本篇文章,我们深入探索了如何运用 LightGBM 机器学习模型实现量化选股。首先,我们通过获取股票的历史数据,进行特征工程和标签制作,将选股问题转化为一个分类问题。接着,我们使用 LightGBM 训练模型,并在验证集和测试集中评估了模型的表现。该选股策略的核心在于结合机器学习算法,从历史数据中寻找能够捕捉股票短期涨跌的关键特征,从而为投资者提供辅助决策支持。虽然本文的模型取得了一定的效果,但这只是量化投资领域的一小部分。 阅读详情

相关推荐

Android Camera性能优化概述

做camera性能优化方面的工作有几年了,想写一篇文章简单介绍一下其中涉及到的具体技术,这篇文章会大概介绍一下涉及到的技术。

weixin_42136255的博客 4023

【关于Java的常用类】

本文系统梳理了Java常用核心类的特性和最佳实践。重点包括:1)String的不可变性及高效拼接方法;2)集合框架中ArrayList、HashMap等数据结构的选型策略;3)日期处理推荐使用线程安全的java.time包;4)精确计算必用BigDecimal;5)工具类Objects的安全用法。针对常见面试问题,如String设计原理、HashMap底层机制等给出了专业解答。文章强调根据业务场景选择合适类库,如单线程用StringBuilder、高并发用ConcurrentHashMap、金融计算用Big

weixin_64178283的博客 1600

vivado下ECO操作-不重新综合实现修改属性并生成.bit

ECO即engineer change order,即工程变更指令,可以对设计做局部小改动并只对改动部分重新布局布线并生成.bit。在一个工程动辄编译几个小时情况下,可以在调试中节省大量时间。比如我们在调试中,需要改变时钟占空比或者相位,需要改变寄存器初值等等,此时用ECO暂时改动,待验证后在重新编译无疑是最有效率的方法。 实现ECO通常有两种方式,一是通过vivado界面完成,另一种方法就是tcl脚本。所有的ECO操作都可以通过tcl操作完成,有的操作用vivado界面无法完成,只能通过tcl。以下主要

4657

Java常用类

返回引用中存储的实际对象类型常用于判断两个引用中实际存储对象类型是否为同一类型//判断s1和s2是不是同一类型 getClass()返回引用中存储的实际对象类型}else {​。

Gjj_2003的博客 1007

初识YUV,实战NV21格式数据转换为Bitmap

初识YUV,并使用YUV数据生成Bitmap图像一、初识YUV二、采样方式2.1、YUV 4:4:42.2、YUV 4:2:22.2、YUV 4:2:2 一、初识YUV 说到YUV我们就必须先从RGB说起了,如下图所示,请各位把每个色块当成一个像素点。通常一个像素点由RGB(Alpha我们先不考虑)三原色组成。 如下图中第一个像素点,其RGB值分别为(236,102,93),而这三个值就组成了我们看到的 红色 。 然而上图中除了RGB值外,我还标出了每个像素点的YUV的值,YUV的值是怎么来的呢?直接给公

乐翁龙 7125

STM32 ST-LINK Utility 无法烧录程序的解决方法

当你打开STM32 ST-LINK Utility,硬件连接好st-link V2,打开了要烧写的文件,点那个Program verify烧录时, 如果出错了: Programming error @ 0x08000000! 我的方法是: 点你想要烧录那个HEX文件的小格,复制 然后去到你前面的文件的格子里,点粘贴: 成功! ...

wocute的博客 9521

Java08 API常用类

String.format(要格式化输出的数组,动态参数),动态参数指的是原字符串中被占位符占用位置的真正参数----------------------静态方法---------------------------------返回值为String型字符串。str.getByte(“编码格式”),UTF-8:一个汉字占三个字节,GBK:一个汉字占两个字节---------------------------------------------------------------返回值为byte型数组。

Stringzhua的博客 1311

别再乱点U盘里的.exe了!手把手教你彻底清除那个伪装成Usb Disk的蠕虫病毒

本文详细介绍了如何识别、清除和预防伪装成Usb Disk的蠕虫病毒。从识别感染迹象到安全备份文件,再到深度清理病毒残留和构建防护策略,提供了一套完整的U盘病毒解决方案。特别提醒用户注意U盘病毒的风险,并养成良好的使用习惯。

weixin_30496999的博客 669

Java(3)常用类

@目录Java常用类一、字符串相关的类1、String类2、StringBuffer类3、StringBuilder类二、JDK8以前的日期时间API1、java.lang.System类2、java.util.Date类3、java.text.SimpleDateFormate类4、java.util.Calendar类三、JDK8中新的日期时间API1、LocalDate、Local...

刘志先的博客 649

中国高精度年度平均气温栅格数据集(1901-2024)

本文基于中国月度平均气温栅格数据集,计算生成1901-2024年1km分辨率的年度平均气温数据集,并按中国省市行政区划进行裁剪。该数据集融合CRU全球数据和WorldClim高分辨率数据,经496个站点验证,具有高时空精度和长时间序列特点,覆盖全国(含港澳台)逾百年气温记录,为气候变化研究、生态水文分析及农业生产评估等提供重要数据支撑。数据格式为Tif,单位为0.1℃,可获取全国、各省及各市三个尺度的气温栅格数据。

PPdata_Academy的博客 1244

OpenMV模块视觉测距(避障)+颜色识别+TFT-LCD显示(实现原理与代码分析)

上图所示代码实际运行的帧率比较低,主要原因有以下两个:1.硬件问题,博主使用的版本比较低,可以尝试使用高版本OpenMV2.图像滤波问题。之前加入图像滤波是想提高色块识别的准确性,但是相应的运算速度也会下降。

ediykk的博客 1万+

Java常用类之要点总结

Java常用类之要点总结

Java仗剑走天涯 870

外向交货单批次赋值的标准姿势:用 BAPI_OUTB_DELIVERY_CHANGE 把 LIPS-CHARG 改得稳、改得干净

摘要: 外向交货单批次赋值涉及严格的业务约束,包括批次管理状态、单据状态、拆分规则等,直接更新表 LIPS 不可取。推荐使用 BAPI_OUTB_DELIVERY_CHANGE 接口,通过标准业务逻辑实现批次修改。关键点包括:区分单批次分配与批次拆分场景,正确设置 ITEM_CONTROL 控制结构,并确保单位/数量数据完整。附可直接执行的ABAP代码示例,实现安全可靠的批次更新流程。 (字数:149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 397

Java常用类总结

Object、包装类、System、Scanner、BigInteger、BigDecimal、Math、Random、File、Date、SimpleDateFormat、Calendar、Arrays、String……

https://www.hyperplasma.top 2042

深度学习工具包 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")

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

5Java常用类

Java常用类,Object,Arrays,基本类型包装,String,Math,Date类

m0_63067102的博客 1341

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

JAVA笔记(常用类)

而 StringBuffer 是可变的,可以在原有对象的基础上进行修改,这在需要频繁修改字符串的场景下可以提高效率,避免频繁创建新对象带来的性能开销。这些类包括`LocalDate`(表示日期)、`LocalTime`(表示时间)、`LocalDateTime`(表示日期和时间)、`ZonedDateTime`(表示带时区的日期和时间)等。• `replace(int start, int end, String str)`:从指定的开始位置(start)到结束位置(end)替换为新的字符串(str)。

2401_82568471的博客 917

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

JAVA 常用类

常用类

成长之路 424

Java(三)常用类

文章目录Java常用类一、字符串相关的类1、String类2、StringBuffer类3、StringBuilder类二、JDK8以前的日期时间API1、java.lang.System类2、java.util.Date类3、java.text.SimpleDateFormate类4、java.util.Calendar类三、JDK8中新的日期时间API1、LocalDate、LocalTime、LocalDateTime2、瞬时:Instant3、格式化与解析4、其他API四、Java比较器1、说明2、

刘志先的博客 1286

Java常用类思维导图

Java常用类思维导图

Kenji34的博客 686

Java语法进阶之常用类

主要讲解了java的一些常用类。比如字符串、包装类、日期时间等等

程序员大凯的博客 1583

Java中的常用类

Java中的基本类型我们应该都知道,例如,int、float、double、boolean、char 等。为了让基本类型也具有对象特性,Java为每个基本数据类型都提供了一个包装类,这样就可以像操作对象那样操作基本数据类型。包装类其实就是提供类型转换的方法。以Integer为例看一下。Integer包装类的构造方法:Integer(int value):创建一个Integer对象,表示指定的int值。

weixin_42098295的博客 1371

【java】java学习笔记之java常用类

如下图所示为笔者总结的java常用类学习笔记,其中,附带有代码示例(未展开),方便理解记忆。需要源文件的请到我的资源中下载,下载地址:https://download.csdn.net/download/guaishounan/11451504 ...

guaishounan的博客 4128

Java笔记——java常用类

java常用类1、内部类 > 内部类讲解2、Object类2.1 Object概述2.2 Object类常用方法1. getClass()方法 普通Student类 测试类 运行结果 2. hashCode()方法 3. toString()方法 没有重写toString方法之前重写过后 4. equals()方法 重写后 5. finalize()方法重写该方法 3、包装类3.1 什么是包装类 3.2 类型转换与装箱、拆箱 3.3 Integer缓冲区 > 为什么

a25847a的博客 844
上一篇: DOS命令
下一篇: 控制台应用程序设计
fehly
博客等级 码龄18年 1粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值