- JDBC使用
晚睡早起₍˄·͈༝·͈˄*₎◞ ̑̑
javajava
7.2创建JDBC应用7.2.1创建JDBC应用程序的步骤使用JDBC操作数据库中的数据包括6个基本操作步骤:(1)载入JDBC驱动程序:首先要在应用程序中加载驱动程序driver,使用Class.forName()方法加载特定的驱动程序,每种数据库管理系统的驱动程序不同,由数据库厂商提供。(2)定义连接URL,建立数据库连接对象:通过DriverManager类的getConnection()方
- Java反射语法
精进攻城狮@
java开发语言
1.反射1.1反射的概述【理解】反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意属性和方法;这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。1.2获取Class类对象的三种方式【应用】三种方式分类类名.class属性对象名.getClass()方法Class.forName(全类名)方法示例代码publicclas
- java头歌-JDBC基础编程练习
To Shine
头歌java开发语言头歌
第1关:JDBC更新员工密码packagestep1;importjava.sql.*;publicclassUpdatePass{//修改数据publicstaticvoidupdateDB(){/*********Begin*********///第一步:加载驱动try{Class.forName("com.mysql.jdbc.Driver");}catch(ClassNotFoundExc
- effective java笔记
Mrryo
1、Java中创建(实例化)对象的五种方式:a、new一个对象。b、反射,Objecta=Class.forName("java.lang.Object").newInstance();c、通过I/O流(包括反序列化)。d、对象的clone()。e、通过工厂方法返回对象。2、抽象类,要想对其实例化,只能用getInstance().(单例模式)。3、内存泄漏:用数组、集合、缓存、监听器等时要注意释
- 一篇文章讲清楚Java中的反射
工业甲酰苯胺
javapython开发语言
介绍每个类都有一个Class对象,包含了与类有关的信息。当编译一个新类时,会产生一个同名的.class文件,该文件内容保存着Class对象。类加载相当于Class对象的加载。类在第一次使用时才动态加载到JVM中,可以使用Class.forName("com.mysql.jdbc.Driver")这种方式来控制类的加载,该方法会返回一个Class对象。反射可以提供运行时的类信息,并且这个类可以在运行
- Class.forName(“com.mysql.cj.jdbc.Driver“)
河hehe
Mysqlmysql
Class.forName("com.mysql.cj.jdbc.Driver")这行代码间接地确保了JDBC驱动程序被注册到DriverManager中的方式,主要是通过JDBC驱动程序的内部实现机制来实现的。以下是具体的解释:1.JDBC驱动程序的静态代码块许多JDBC驱动程序(包括MySQL的JDBC驱动程序)在其主类中包含了静态代码块(staticblock)。在这个静态代码块中,它们会调
- Google 广告id流程分析
Android逆向小菜鸡
安卓逆向android逆向分析
集成谷歌广告sdk导包:implementation("com.google.android.gms:play-services-ads-identifier:18.1.0")获取广告id的代码newThread(()->{try{Class.forName("com.google.android.gms.ads.identifier.AdvertisingIdClient");Advertisi
- day12 java创建对象的方法
老婆日向雏田
一、使用new关键字Useruser=newUser();二、使用反射机制使用Class类的newInstance方法创建对象//创建方法1Useruser=(User)Class.forName("根路径.User").newInstance();//创建方法2(用这个最好)Useruser=User.class.newInstance();使用Constructor类的newInstance方
- 【JVM】双亲委派机制
五敷有你
JVMjvm
个人主页:五敷有你系列专栏:JVM⛺️稳中求进,晒太阳双亲委派机制在Java中如何使用代码的方式去主动加载一个类呢?方式1:使用Class.forName方法,使用当前类的类加载器去加载指定的类。方式2:获取到类加载器,通过类加载器的loadClass方法指定某个类加载器加载在Idea中测试下面的案例:双亲委派机制:当一个类加载器接受到加载类的任务时,会自底向上查找是否加载过,在由顶向下进行加载问
- 用java来操作Access数据库
名字_都被占了
packageghg;importjava.sql.*;classCreate{publicstaticvoidmain(Stringargs[]){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundExceptionce){System.out.println("SQLException:"+ce.getM
- JDBC
骏龙ll
1、数据库连接a、加载数据库驱动程序(要把驱动加载到方法区)Class.forName("com.mysql.jdbc.Driver");b、利用驱动管理器获取数据库连接Connectionconn=DriverManager.getConnection(url,"root","root");url解释jdbc:mysql://localhost:3306:scott?useUnicode=tru
- java类加载机制
娟宝宝萌萌哒
java初始化过程双亲委派类加载器自定义类加载器
文章目录类生命周期类加载时机主动引用被动引用类加载过程加载验证准备解析初始化父类和子类的初始化顺序双亲委派模型3种系统提供的类加载器委派行为双亲委派解决的问题委派模型的破坏线程上下文类加载器OSGI热部署自定义类加载器类相等和加载器的关系常见问题分析1由不同的类加载器加载的指定类还是相同的类型吗?2在代码中直接调用Class.forName(Stringname)方法,到底会触发那个类加载器进行类
- Class.forName和classloader的区别
星期三不上班
JVM类加载如图所示,这是javaJVM类装载过程,Java是如何加载到jvm里面然后被识别的呢,其实分为三步:装载:(loading)找到class对应的字节码文件。连接:(linking)将对应的字节码文件读入到JVM中。初始化:(initializing)对class做相应的初始化动作。Java中两种加载class到JVM中的方式Class.forName("className");其实这种
- Mybatis Day01
临渊羡鱼的猫
mybatis
功能:在dao持久层操作数据库,用于简化JDBC的开发JDBC使用java语言操作关系型数据库的api各个数据库厂商提供数据库驱动jar包publicvoidtestJdbc()throwsException{//1.注册驱动Class.forName("com.mysql.cj.jdbc.Driver");//2.获取连接对象Stringurl="jdbc:mysql://localhost:3
- JDBC与Mybatis区别
shan&cen
javamybatismysqljdbc
JDBC与Mybatis1.JDBC是什么?javadatabaseconnectivityjava数据库连接,是java连接数据库的标准,由sun公司提供的一组类和一组接口,由给个数据库厂商提供实现类2.JDBC的执行流程?//贾琏欲执事try{1.加载注册驱动Class.ForName("com.mysql.jdbc.Driver")2.获取连接对象Connectioncon=DriverMa
- 私有对象字段获取和字节数组
简书家的辰颜
byteb=newbyte[2048];创建一个字节数组,再文件读取流中进行临时缓存,开辟空间之后,之后分批次进行流最后的传递完全。Classclazz=Class.forName("cn.liangqinghai.reflect.Beans1");Beans1bean=(Beans1)clazz.newInstance();//获取单个私有属性Fieldfield=bean.getClass()
- java对mysql的简单操作——删除数据
喝喝咖啡
java与数据库mysqlmysql数据库java
java连接mysql5.1教程(含代码)+查询数据相关文章推荐:java对mysql的简单操作——增加数据下面是数据删除片段的代码Connectionconn=null;Statementstmt=null;PreparedStatementps=null;try{//注册JDBC驱动Class.forName(JDBC_DRIVER);//打开链接//连接数据库conn=DriverManag
- JDBC工具类--JDBCUtil
一叶千寻
java进阶java
publicclassJDBCUtil{//1.加载驱动static{try{Class.forName("com.mysql.jdbc.Driver");}catch(ClassNotFoundExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}//2.获取连接publicstaticConnectiongetConne
- day45_maven_tomcat
师范大学通信大怨总
Java零基础学习maventomcatjava
今日内容0复习昨日1maven2tomcat3创建项目0复习昨日1单词写5遍argument参数parameter参数access访问field字段invoke调用illegal非法invalid无效column列property属性DataSource数据源2数据库连接池有啥好处3获得字节码文件的方式Class.forName(“”)Xxx.class对象.getClass()4封装隐藏实现的细
- 反射的复习
滑上又滑落 一收和一放
反射
反射就是再运行状态中,对于任意的一个类,都能够知道这个类的所有的属性以及方法,对于任意的对象都能够调用他的任意属性和昂发,在这里反射就有点类似于暴力获取五十修饰符直获取或者调用(产生过多的临时对象,影响GC的消耗)获取class对象第一种:Class类中的静态方法forName(“全类名”)Classclazz=Class.forName(“com…Student”)第二种:通过class属性来进
- Android Kotlin 反射使用笔记
水天滑稽天照八野滑稽石
前言java反射的写法,做下笔记classMyClass{privatevarname="xiao"privatevarage=18privatefungetRandom():Int{returnRandom.nextInt(0,10)}}反射用法try{////完整类名valcls=Class.forName("com.example.rbq.MyClass")//获取公开构造方法valpubl
- java 2实用教程(第五版)JDBC数据库操作
Czz-coder
上机实验javajdbc
实验1抽取样本代码如下importjava.sql.*;importjava.util.*;publicclassRandomGetRecord{publicstaticvoidmain(Stringargs[]){intwantRecordAmount=10;//随机抽取的记录数目Randomrandom=newRandom();try{Class.forName("sun.jdbc.odbc.
- 反射
ezioasche
反射机制是Java大多数框架,尤其是用到了xml来配置相关信息的框架底层实现所必不可少的东西个人认为反射机制是Java非常非常非常灵魂的东西获取字节码文件(Class类对象)全限定名:Classclazz=Class.forname("全限定名");//返回一个Class对象(字节码文件)类名:Classclazz=类名.class;//返回这个类的Class对象对象:Classclazz=对象.
- 反射&代理
开朗觉觉
javajavascript开发语言
反射反射就是:以编程的方式获取类中的各种成分(成员变量、方法、构造器等)。反射的好处使用反射创建对象(更加灵活)。无视访问修饰符操作对象的成员变量、方法、构造器等(更强大)。反射的第一步是什么?获取Class类对象获取Class类对象的三种方式方式一:Classc1=Class.forName("全类名");方式二:Classc2=类名.class;方式三:Classc3=对象.getClass(
- JDBC操作数据库
饭吃三分饱
数据库java数据库jdbc
一.jdbc连接数据步骤mysqlmysql-connector-java8.0.151.注册驱动Class.forName("com.mysql.jdbc.Driver");2.创建连接Connectionconnection=DriverManager.getConnection(url,user,password);参数说明:url:jdbc:mysql://localhost:3306/s
- JDBC(2)-- JDBC工作原理以及简单封装
秦怀杂货店
1.工作原理一般我们主要的JDBC处理流程如下:graphTDA[注册一个Driver]-->B(建立数据库连接)B-->C(创建一个Statement)C-->D(执行SQL语句,获取结果)D-->F(关闭JDBC对象)1.1加载驱动首先声明:这个阶段在1.6之后就不需要手动执行了,也就是这个代码不需要了!!!分析它有利于理解流程。Class.forName("com.mysql.jdbc.Dr
- JAVA Web 学习(一)JDBC 和 Mybatis
CDSN之父
java学习面试
一、Java连接数据库——JDBC&MybatisJDBC使用步骤①创建工程,导入驱动jar包(mysql-connector-java-5.1.48.jar)②注册驱动。Class.forName(“com.mysql.jdbc.Driver”);③获取连接。Connectionconn=DriverManager.getConnection(url,username,password);④定义
- Class.forName()用法详解
bug_tan90
javajava
1.什么是class对象类是程序的一部分,每个类都有一个class对象。换言之,每当编写并且编译了一个新类,就会产生一个class对象(更恰当的说,是被保存在一个同名的class文件中)。为了生成这个类的对象,运行这个程序的Java虚拟机(jvm)将使用被称为“类加载器”的子系统。所有的类都是在对其第一次使用的时候被加载到JVM中。如当程序创建对第一个静态成员的引用时,就会加载这个类。或者使用ne
- 获取类的运行时结构、获取类信息
真没睡465
java开发语言
//获得类信息publicclassTest08{publicstaticvoidmain(String[]args)throwsClassNotFoundException,NoSuchMethodException{Classc1=Class.forName("comm.bin.User");Useruser=newUser();//获得类的名字System.out.println(c1.ge
- 反射机制学习
真没睡465
java
因为反射java变成了动态反射Reflection(反射)是java被视为动态语言的关键,反射机制允许程序在执行期间借助于ReflectionAPI取得任何类的内部信息,并能直接操作任意对象的内部属性及方法ClassC=Class.forName("java.lang.String")加载完类之后,在堆的内存的方法区中就产生了一个Class类型的对象(一个类只有一个class对象),这个对象就包含
- web报表工具FineReport常见的数据集报错错误代码和解释
老A不折腾
web报表finereport代码可视化工具
在使用finereport制作报表,若预览发生错误,很多朋友便手忙脚乱不知所措了,其实没什么,只要看懂报错代码和含义,可以很快的排除错误,这里我就分享一下finereport的数据集报错错误代码和解释,如果有说的不准确的地方,也请各位小伙伴纠正一下。
NS-war-remote=错误代码\:1117 压缩部署不支持远程设计
NS_LayerReport_MultiDs=错误代码
- Java的WeakReference与WeakHashMap
bylijinnan
java弱引用
首先看看 WeakReference
wiki 上 Weak reference 的一个例子:
public class ReferenceTest {
public static void main(String[] args) throws InterruptedException {
WeakReference r = new Wea
- Linux——(hostname)主机名与ip的映射
eksliang
linuxhostname
一、 什么是主机名
无论在局域网还是INTERNET上,每台主机都有一个IP地址,是为了区分此台主机和彼台主机,也就是说IP地址就是主机的门牌号。但IP地址不方便记忆,所以又有了域名。域名只是在公网(INtERNET)中存在,每个域名都对应一个IP地址,但一个IP地址可有对应多个域名。域名类型 linuxsir.org 这样的;
主机名是用于什么的呢?
答:在一个局域网中,每台机器都有一个主
- oracle 常用技巧
18289753290
oracle常用技巧 ①复制表结构和数据 create table temp_clientloginUser as select distinct userid from tbusrtloginlog ②仅复制数据 如果表结构一样 insert into mytable select * &nb
- 使用c3p0数据库连接池时出现com.mchange.v2.resourcepool.TimeoutException
酷的飞上天空
exception
有一个线上环境使用的是c3p0数据库,为外部提供接口服务。最近访问压力增大后台tomcat的日志里面频繁出现
com.mchange.v2.resourcepool.TimeoutException: A client timed out while waiting to acquire a resource from com.mchange.v2.resourcepool.BasicResou
- IT系统分析师如何学习大数据
蓝儿唯美
大数据
我是一名从事大数据项目的IT系统分析师。在深入这个项目前需要了解些什么呢?学习大数据的最佳方法就是先从了解信息系统是如何工作着手,尤其是数据库和基础设施。同样在开始前还需要了解大数据工具,如Cloudera、Hadoop、Spark、Hive、Pig、Flume、Sqoop与Mesos。系 统分析师需要明白如何组织、管理和保护数据。在市面上有几十款数据管理产品可以用于管理数据。你的大数据数据库可能
- spring学习——简介
a-john
spring
Spring是一个开源框架,是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只能由EJB完成的事情。然而Spring的用途不仅限于服务器端的开发,从简单性,可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。其主要特征是依赖注入、AOP、持久化、事务、SpringMVC以及Acegi Security
为了降低Java开发的复杂性,
- 自定义颜色的xml文件
aijuans
xml
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="white">#FFFFFF</color> <color name="black">#000000</color> &
- 运营到底是做什么的?
aoyouzi
运营到底是做什么的?
文章来源:夏叔叔(微信号:woshixiashushu),欢迎大家关注!很久没有动笔写点东西,近些日子,由于爱狗团产品上线,不断面试,经常会被问道一个问题。问:爱狗团的运营主要做什么?答:带着用户一起嗨。为什么是带着用户玩起来呢?究竟什么是运营?运营到底是做什么的?那么,我们先来回答一个更简单的问题——互联网公司对运营考核什么?以爱狗团为例,绝大部分的移动互联网公司,对运营部门的考核分为三块——用
- js面向对象类和对象
百合不是茶
js面向对象函数创建类和对象
接触js已经有几个月了,但是对js的面向对象的一些概念根本就是模糊的,js是一种面向对象的语言 但又不像java一样有class,js不是严格的面向对象语言 ,js在java web开发的地位和java不相上下 ,其中web的数据的反馈现在主流的使用json,json的语法和js的类和属性的创建相似
下面介绍一些js的类和对象的创建的技术
一:类和对
- web.xml之资源管理对象配置 resource-env-ref
bijian1013
javaweb.xmlservlet
resource-env-ref元素来指定对管理对象的servlet引用的声明,该对象与servlet环境中的资源相关联
<resource-env-ref>
<resource-env-ref-name>资源名</resource-env-ref-name>
<resource-env-ref-type>查找资源时返回的资源类
- Create a composite component with a custom namespace
sunjing
https://weblogs.java.net/blog/mriem/archive/2013/11/22/jsf-tip-45-create-composite-component-custom-namespace
When you developed a composite component the namespace you would be seeing would
- 【MongoDB学习笔记十二】Mongo副本集服务器角色之Arbiter
bit1129
mongodb
一、复本集为什么要加入Arbiter这个角色 回答这个问题,要从复本集的存活条件和Aribter服务器的特性两方面来说。 什么是Artiber? An arbiter does
not have a copy of data set and
cannot become a primary. Replica sets may have arbiters to add a
- Javascript开发笔记
白糖_
JavaScript
获取iframe内的元素
通常我们使用window.frames["frameId"].document.getElementById("divId").innerHTML这样的形式来获取iframe内的元素,这种写法在IE、safari、chrome下都是通过的,唯独在fireforx下不通过。其实jquery的contents方法提供了对if
- Web浏览器Chrome打开一段时间后,运行alert无效
bozch
Webchormealert无效
今天在开发的时候,突然间发现alert在chrome浏览器就没法弹出了,很是怪异。
试了试其他浏览器,发现都是没有问题的。
开始想以为是chorme浏览器有啥机制导致的,就开始尝试各种代码让alert出来。尝试结果是仍然没有显示出来。
这样开发的结果,如果客户在使用的时候没有提示,那会带来致命的体验。哎,没啥办法了 就关闭浏览器重启。
结果就好了,这也太怪异了。难道是cho
- 编程之美-高效地安排会议 图着色问题 贪心算法
bylijinnan
编程之美
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
public class GraphColoringProblem {
/**编程之美 高效地安排会议 图着色问题 贪心算法
* 假设要用很多个教室对一组
- 机器学习相关概念和开发工具
chenbowen00
算法matlab机器学习
基本概念:
机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。
开发工具
M
- [宇宙经济学]关于在太空建立永久定居点的可能性
comsci
经济
大家都知道,地球上的房地产都比较昂贵,而且土地证经常会因为新的政府的意志而变幻文本格式........
所以,在地球议会尚不具有在太空行使法律和权力的力量之前,我们外太阳系统的友好联盟可以考虑在地月系的某些引力平衡点上面,修建规模较大的定居点
- oracle 11g database control 证书错误
daizj
oracle证书错误oracle 11G 安装
oracle 11g database control 证书错误
win7 安装完oracle11后打开 Database control 后,会打开em管理页面,提示证书错误,点“继续浏览此网站”,还是会继续停留在证书错误页面
解决办法:
是 KB2661254 这个更新补丁引起的,它限制了 RSA 密钥位长度少于 1024 位的证书的使用。具体可以看微软官方公告:
- Java I/O之用FilenameFilter实现根据文件扩展名删除文件
游其是你
FilenameFilter
在Java中,你可以通过实现FilenameFilter类并重写accept(File dir, String name) 方法实现文件过滤功能。
在这个例子中,我们向你展示在“c:\\folder”路径下列出所有“.txt”格式的文件并删除。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
- C语言数组的简单以及一维数组的简单排序算法示例,二维数组简单示例
dcj3sjt126com
carray
# include <stdio.h>
int main(void)
{
int a[5] = {1, 2, 3, 4, 5};
//a 是数组的名字 5是表示数组元素的个数,并且这五个元素分别用a[0], a[1]...a[4]
int i;
for (i=0; i<5; ++i)
printf("%d\n",
- PRIMARY, INDEX, UNIQUE 这3种是一类 PRIMARY 主键。 就是 唯一 且 不能为空。 INDEX 索引,普通的 UNIQUE 唯一索引
dcj3sjt126com
primary
PRIMARY, INDEX, UNIQUE 这3种是一类PRIMARY 主键。 就是 唯一 且 不能为空。INDEX 索引,普通的UNIQUE 唯一索引。 不允许有重复。FULLTEXT 是全文索引,用于在一篇文章中,检索文本信息的。举个例子来说,比如你在为某商场做一个会员卡的系统。这个系统有一个会员表有下列字段:会员编号 INT会员姓名
- java集合辅助类 Collections、Arrays
shuizhaosi888
CollectionsArraysHashCode
Arrays、Collections
1 )数组集合之间转换
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}
a)Arrays.asL
- Spring Security(10)——退出登录logout
234390216
logoutSpring Security退出登录logout-urlLogoutFilter
要实现退出登录的功能我们需要在http元素下定义logout元素,这样Spring Security将自动为我们添加用于处理退出登录的过滤器LogoutFilter到FilterChain。当我们指定了http元素的auto-config属性为true时logout定义是会自动配置的,此时我们默认退出登录的URL为“/j_spring_secu
- 透过源码学前端 之 Backbone 三 Model
逐行分析JS源代码
backbone源码分析js学习
Backbone 分析第三部分 Model
概述: Model 提供了数据存储,将数据以JSON的形式保存在 Model的 attributes里,
但重点功能在于其提供了一套功能强大,使用简单的存、取、删、改数据方法,并在不同的操作里加了相应的监听事件,
如每次修改添加里都会触发 change,这在据模型变动来修改视图时很常用,并且与collection建立了关联。
- SpringMVC源码总结(七)mvc:annotation-driven中的HttpMessageConverter
乒乓狂魔
springMVC
这一篇文章主要介绍下HttpMessageConverter整个注册过程包含自定义的HttpMessageConverter,然后对一些HttpMessageConverter进行具体介绍。
HttpMessageConverter接口介绍:
public interface HttpMessageConverter<T> {
/**
* Indicate
- 分布式基础知识和算法理论
bluky999
算法zookeeper分布式一致性哈希paxos
分布式基础知识和算法理论
BY
[email protected]
本文永久链接:http://nodex.iteye.com/blog/2103218
在大数据的背景下,不管是做存储,做搜索,做数据分析,或者做产品或服务本身,面向互联网和移动互联网用户,已经不可避免地要面对分布式环境。笔者在此收录一些分布式相关的基础知识和算法理论介绍,在完善自我知识体系的同
- Android Studio的.gitignore以及gitignore无效的解决
bell0901
androidgitignore
github上.gitignore模板合集,里面有各种.gitignore : https://github.com/github/gitignore
自己用的Android Studio下项目的.gitignore文件,对github上的android.gitignore添加了
# OSX files //mac os下 .DS_Store
- 成为高级程序员的10个步骤
tomcat_oracle
编程
What
软件工程师的职业生涯要历经以下几个阶段:初级、中级,最后才是高级。这篇文章主要是讲如何通过 10 个步骤助你成为一名高级软件工程师。
Why
得到更多的报酬!因为你的薪水会随着你水平的提高而增加
提升你的职业生涯。成为了高级软件工程师之后,就可以朝着架构师、团队负责人、CTO 等职位前进
历经更大的挑战。随着你的成长,各种影响力也会提高。
- mongdb在linux下的安装
xtuhcy
mongodblinux
一、查询linux版本号:
lsb_release -a
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noa