精华内容
下载资源
问答
  • 更新:我下面的原始答案很不充分,因为我花了三年的时间开发FastClasspathScanner,并提交了大量关于某些类路径环境无法使用该库的错误报告。 FastClasspathScanner现在可以处理许多复杂的类路径规范机制。 在一般...

    更新:我下面的原始答案很不充分,因为我花了三年的时间开发FastClasspathScanner,并提交了大量关于某些类路径环境无法使用该库的错误报告。 FastClasspathScanner现在可以处理许多复杂的类路径规范机制。 在一般情况下(即使扫描它),即使只是找到类路径也可能会变得异常复杂,因为有很多方法可以将jar和目录添加到类路径。

    一方面,我在下面提供的代码只能处理URLClassLoader,并且许多主要的运行时环境和容器都没有对此进行扩展,它们从头实现了自己的类加载器。 但是,在Java 9+的情况下,它变得比这复杂得多,因为即使传统的类路径仍然存在,未来的一切都将朝着使用模块路径而非类路径发展。 模块具有URL,但它们是"jrt:/" URL,而不是"file:/" URL,并且模块URL实际上不包括文件路径,仅包含模块名称-因此,您甚至不能在磁盘上找到该模块。 您唯一的选择是使用(高度封装的)模块系统来处理模块。 我在这里写了有关如何扫描模块路径的文章。

    FastClasspathScanner处理许多复杂的类路径规范机制,因此您无需重新发明轮子。 您可以从FastClasspathScanner中获取类路径条目的列表-这将为您省去尝试与在野外发现的所有各种类路径规范机制一起使用的麻烦。 (如果最后一个链接断开,我们深表歉意– FCS的API和文档将很快更改。)

    --

    [旧答案-已过时:]

    其他答案在大多数情况下都是正确的,但比某些情况下要复杂得多。 Maven,Tomcat和JUnit具有自己的类路径支持,并且不使用系统类路径。

    到目前为止,这是我设法提供的最完整的系统(此代码来自我的Fast Classpath Scanner项目):

    /** The unique elements of the classpath, as an ordered list. */

    private final ArrayList classpathElements = new ArrayList<>();

    /** The unique elements of the classpath, as a set. */

    private final HashSet classpathElementsSet = new HashSet<>();

    /** Clear the classpath. */

    private void clearClasspath() {

    classpathElements.clear();

    classpathElementsSet.clear();

    }

    /** Add a classpath element. */

    private void addClasspathElement(String pathElement) {

    if (classpathElementsSet.add(pathElement)) {

    final File file = new File(pathElement);

    if (file.exists()) {

    classpathElements.add(file);

    }

    }

    }

    /** Parse the system classpath. */

    private void parseSystemClasspath() {

    // Look for all unique classloaders.

    // Keep them in an order that (hopefully) reflects the order in which class resolution occurs.

    ArrayList classLoaders = new ArrayList<>();

    HashSet classLoadersSet = new HashSet<>();

    classLoadersSet.add(ClassLoader.getSystemClassLoader());

    classLoaders.add(ClassLoader.getSystemClassLoader());

    if (classLoadersSet.add(Thread.currentThread().getContextClassLoader())) {

    classLoaders.add(Thread.currentThread().getContextClassLoader());

    }

    // Dirty method for looking for any other classloaders on the call stack

    try {

    // Generate stacktrace

    throw new Exception();

    } catch (Exception e) {

    StackTraceElement[] stacktrace = e.getStackTrace();

    for (StackTraceElement elt : stacktrace) {

    try {

    ClassLoader cl = Class.forName(elt.getClassName()).getClassLoader();

    if (classLoadersSet.add(cl)) {

    classLoaders.add(cl);

    }

    } catch (ClassNotFoundException e1) {

    }

    }

    }

    // Get file paths for URLs of each classloader.

    clearClasspath();

    for (ClassLoader cl : classLoaders) {

    if (cl != null) {

    for (URL url : ((URLClassLoader) cl).getURLs()) {

    if ("file".equals(url.getProtocol())) {

    addClasspathElement(url.getFile());

    }

    }

    }

    }

    }

    /** Override the system classpath with a custom classpath to search. */

    public FastClasspathScanner overrideClasspath(String classpath) {

    clearClasspath();

    for (String pathElement : classpath.split(File.pathSeparator)) {

    addClasspathElement(pathElement);

    }

    return this;

    }

    /**

    * Get a list of unique elements on the classpath (directories and files) as File objects, preserving order.

    * Classpath elements that do not exist are not included in the list.

    */

    public ArrayList getUniqueClasspathElements() {

    return classpathElements;

    }

    展开全文
  • 时间java_Java时间

    2021-03-05 22:38:06
    好的,这是功课,我有点挣扎,我无法弄清楚要传递给toString方法,我不太确定我获取当前和经过时间的方法是正确的 . 然后我必须将它传递给main方法并在输出语句中显示时间 . 这不是我真正的问题,我只能有3个变量,...

    好的,这是功课,我有点挣扎,我无法弄清楚要传递给toString方法,我不太确定我获取当前和经过时间的方法是正确的 . 然后我必须将它传递给main方法并在输出语句中显示时间 . 这不是我真正的问题,我只能有3个变量,我怎样才能算出从当前时间开始经过的时间并且仍然保持原始的小时,秒,分钟变量而不改变它们所以来自两个时间构造函数的所有数据都保存在那些变数?我希望我有意义 . 谢谢你的任何意见

    package chapter_10;

    public class Time {

    private long hour;

    private long minute;

    private long second;

    public void time() {

    long second = System.currentTimeMillis();

    long minute = System.currentTimeMillis();

    long hour = System.currentTimeMillis();

    }

    public void setTime(long elapsedTime){

    long millisecond = System.currentTimeMillis();

    long second = millisecond / 1000;

    long minute = second / 60;

    long hour = minute /60;

    }

    public long getHour() {

    return hour;

    }

    public long getMinute() {

    return minute;

    }

    public long getSecond() {

    return second;

    }

    public String toString(){

    return // what should i return here, String.towhat?

    }

    }

    这是作业,只是为了澄清 . 时间等级:

    为小时,分钟和秒提供3个私人数据成员 . 使用long或int类型 . 如果你使用int,你必须在ctors内部进行投射 . 添加一个使用类似于代码清单2.6中的代码的no-arg ctor,将值分配给当前时间的小时,分钟和秒 . 添加另一个ctor,它将采用名为elapseTime的单个长参数(更好的是elapsedTime),这是自Unix纪元日期以来的毫秒数 . 第二个ctor还将使用代码清单2.6中的代码来设置自纪元以来经过的时间的数据成员 . 第三个ctor没有必要 . 为每个数据成员添加一个getter . 每个getter只需要一个语句 . 需要getter,因为数据成员是私有的 . 添加一个toString方法,该方法返回Time对象的小时,分钟和秒 . 主要课程:

    在main方法中创建一个带有no-arg ctor的Time对象 . 用另一个ctor创建一些时间对象 . 显示您实例化的每个对象的时间 .

    展开全文
  • 大一新生,看到相关书籍有这道题,要用System.currentTimeMillis() 获取当前时间 网上似乎都是创建Date或者Calender对象 我想了想还是用最原始的方法写吧~ 代码如下,大神有问题可以指出~

    大一新生,看到相关书籍有这道题,要用System.currentTimeMillis() 获取当前时间

    网上似乎都是创建Date或者Calender对象

    我想了想还是用最原始的方法写吧~

    代码如下,大神有问题可以指出~

    public class Time {

      public static void main(String[] args) { 
        long seconds = System.currentTimeMillis() / 1000;               //获取的时间为毫秒(1s = 1000ms)
        long currentSecond = seconds % 60;
        long minutes = seconds / 60;
        long currentMinute = minutes % 60;
        long hours = minutes / 60;
        long currentHour = hours % 24;
        long days = hours / 24 + 1;                                                        // 加上一天
        
        // 获取年份
        int year = 1970;                                                                          //System.currentTimeMillis() 是从1970年1月1日0时开始计算
        while (days >= (isLeapYear(year) ? 366 : 365)) {
          days = days - (isLeapYear(year) ? 366 : 365);
          year++;      
        }
        
        // 获取月份   
        int month = 1;
        while (days >= getNumberOfDaysInMonth(year, month)) {
          days = days - getNumberOfDaysInMonth(year, month);     
          month++;
        }
        System.out.println("当前时间为 " 
          + year + "年" +month + "月" + days + "日 "
          + (currentHour+8) + ":" + currentMinute + ":" + currentSecond);                   //currentHour+8是因为算的是0时区,而中国是东八区所以加8
      }

       

      //获取具体的日数

      public static int getNumberOfDaysInMonth(int year, int month) {
        if (month == 1 || month == 3 || month == 5 || month == 7 ||
          month == 8 || month == 10 || month == 12)
          return 31;


        if (month == 4 || month == 6 || month == 9 || month == 11)
          return 30;


        if (month == 2)   return isLeapYear(year) ? 29 : 28;


        else  return 0; 
      }


      //判断是否为闰年
      public static boolean isLeapYear(int year) {
        return year % 400 == 0 || (year % 4 == 0 && year % 100 != 0);
      }
    }
    展开全文
  • 环境搭建使用Maven工程的依赖项,如果普通工程就点注释的地址下载jar包即可mysqlmysql-connector-java8.0.19junitjunit4.13test原始JDBC链接@Testpublic void connectionTest1() throwsSQLException {//获取驱动对象...

    7f419d4cf12e180ec315b2c3005cb646.png

    环境搭建

    使用Maven工程的依赖项,如果普通工程就点注释的地址下载jar包即可

    mysql

    mysql-connector-java

    8.0.19

    junit

    junit

    4.13

    test

    原始JDBC链接

    @Testpublic void connectionTest1() throwsSQLException {//获取驱动对象//这是8+版本的驱动,5+版本的驱动是这样的com.mysql.jdbc.Driver

    Driver driver = newcom.mysql.cj.jdbc.Driver();//注入连接信息 这也是8+的链接方式,必须声明时区,5+版本 jdbc:mysql://localhost:3306/mysql

    String url = "jdbc:mysql://localhost:3306/mysql?serverTimezone=Asia/Shanghai";//协议 jdbc:mysql://地址 localhost://MySQL端口号 3306//数据库 mysql//参数 serverTimezone=Asia/Shanghai"//配置对象封装账户信息

    Properties properties = newProperties();

    properties.setProperty("user","root");

    properties.setProperty("password","123456");//注入信息,得到链接

    Connection connection =driver.connect(url,properties);//[email protected]

    System.out.println(connection);

    }

    演变1 利用反射调取实现类创建驱动实例

    @Test //提升可移植性,面向接口编程,不要出现第三方的API

    public void connectionTest2() throwsSQLException, ClassNotFoundException, IllegalAccessException, InstantiationException {//使用反射动态,获取Driver实现类对象

    Class> driverClass = Class.forName("com.mysql.cj.jdbc.Driver");

    Driver driver=(Driver) driverClass.newInstance();

    String url= "jdbc:mysql://localhost:3306/mysql?serverTimezone=Asia/Shanghai";

    Properties properties= newProperties();

    properties.setProperty("user","root");

    properties.setProperty("password","123456");

    Connection connection=driver.connect(url,properties);

    System.out.println(connection);

    }

    演变2 利用驱动管理者实现

    @Test //用驱动管理者代替驱动对象

    public void connectionTest3() throwsSQLException, ClassNotFoundException, IllegalAccessException, InstantiationException {

    Class> driverClass = Class.forName("com.mysql.cj.jdbc.Driver");

    Driver driver=(Driver) driverClass.newInstance();//驱动注册

    java.sql.DriverManager.registerDriver(driver);

    String url= "jdbc:mysql://localhost:3306/mysql?serverTimezone=Asia/Shanghai";

    String user= "root";

    String password= "123456";//用驱动管理者配置链接信息去获取连接对象

    Connection connection =DriverManager.getConnection(url, user, password);

    System.out.println(connection);

    }

    演变3 驱动优化

    @Test //驱动再优化

    public void connectionTest4() throwsSQLException, ClassNotFoundException, IllegalAccessException, InstantiationException {//注册驱动已经不需要我们来编写了

    Class.forName("com.mysql.cj.jdbc.Driver");

    String url= "jdbc:mysql://localhost:3306/mysql?serverTimezone=Asia/Shanghai";

    String user= "root";

    String password= "123456";//用驱动管理者配置链接信息去获取连接对象

    Connection connection =DriverManager.getConnection(url, user, password);

    System.out.println(connection);

    }

    演变4 驱动完全不需要写了 jdbc5+版本支持此写法

    @Test //驱动再再优化 在5+版本已经不需要驱动这玩意儿了

    public void connectionTest4() throwsSQLException, ClassNotFoundException, IllegalAccessException, InstantiationException {

    String url= "jdbc:mysql://localhost:3306/mysql?serverTimezone=Asia/Shanghai";

    String user= "root";

    String password= "123456";//用驱动管理者配置链接信息去获取连接对象

    Connection connection =DriverManager.getConnection(url, user, password);

    System.out.println(connection);

    }

    演示5 配置信息不再使用硬编码的方式注入

    配置可随意更改,实现了数据和代码的解耦

    @Test // public void connectionTest5() throwsSQLException, ClassNotFoundException, IOException {

    InputStream inputStream= ConnectorTest.class.getClassLoader().getResourceAsStream("jdbc.properties");

    Properties properties= newProperties();

    properties.load(inputStream);

    String driverClass= properties.getProperty("driverClass");

    String url= properties.getProperty("url");

    String user= properties.getProperty("user");

    String password= properties.getProperty("password");//加载驱动

    Class.forName(driverClass);

    Connection connection=DriverManager.getConnection(url, user, password);

    System.out.println(connection);

    }

    在Maven工程,配置文件放在sources里面

    在生成打包文件时,自动生成对应的配置文件

    5331bbd18f2b05b4bca0d9d249450f91.png

    非Maven的普通项目可采用下面这两种方式读取配置文件

    @Testpublic void connectionTest6() throwsSQLException, ClassNotFoundException, IOException {//返回URL的编码 %20 类加载器读取 文件的位置默认是在当前Module或者项目的src包下

    String path = Loader.class.getClassLoader().getResource("jdbc.properties").getFile();//需要解码

    String decode = URLDecoder.decode(path, "UTF-8");

    System.out.println(path);

    System.out.println(decode);

    Properties properties= newProperties();

    properties.load(newFileInputStream(decode));

    String driverClass= properties.getProperty("driverClass");

    String url= properties.getProperty("url");

    String user= properties.getProperty("user");

    String password= properties.getProperty("password");//加载驱动

    Class.forName(driverClass);

    Connection connection=DriverManager.getConnection(url, user, password);

    System.out.println(connection);

    }

    @Test// public void connectionTest7() throwsSQLException, ClassNotFoundException, IOException {

    Properties properties= newProperties();

    properties.load(new FileInputStream("srcjdbc.properties"));

    String driverClass= properties.getProperty("driverClass");

    String url= properties.getProperty("url");

    String user= properties.getProperty("user");

    String password= properties.getProperty("password");//加载驱动

    Class.forName(driverClass);

    Connection connection=DriverManager.getConnection(url, user, password);

    System.out.println(connection);

    }

    【Java】JDBC 数据库连接的演变

    原文:https://www.cnblogs.com/mindzone/p/12762480.html

    展开全文
  • 公司人事系统比较原始,无法让各部门自行查询年假使用情况。落后就要挨打,人事妹子只有花时间每个月从系统导出然后按部分区分,再发给部门经理和文员。虽然系统破旧,但这个按部门筛选和邮件发送还是可以让Python...
  • 所以,在Java当中最原始时间表达方法是:利用long这种数据类型来存储。 获取当前时间:long now = System.currentTimeMillis(); 当然,为了更好地打印大的数字,我们可以使用格式设置类
  • 当我使用getTime()方法获取此对象的长整型值时,返回的值对应于我们的当地时间(美国中部)。 取回与原始UTC时间相对应的值的正确方法是什么?谢谢date.getTime()始终仅返回UTC时间。 但是date.toString()会将日期...
  • /**** @描述: 获取指定天数按指定格式转换后数据* @程序员* @时间 2016-6-22 下午9:06:48*/@SuppressWarnings("static-access")public static String getFormat(String day,String format){if(StringUtils.isBlank...
  • Java输出: import java.text.SimpleDateFormat; import java.util.Date;... //1,原始获取 Date date = new Date(); System.out.println(date.toString()); //2,格式获取 Date Now = new Date
  • 最近一直在学习Android,由于Xana的Java完全是半路出家,以前一直在用C#、C++和Python之类的东西,对于时间和日期的处理,一直没能弄得比较清楚。说清楚,SQLiteSQLite中,原始的存储只有以下几种(SQLite文档):NULL...
  • java

    2011-10-13 15:26:44
     在MyEclipse中启动Tomcat之后,获取系统时间比桌面显示的时间刚好慢了8小时。原始是因为JVM使用的是GTM。 解决的办法是在启动Tomcat的时候给JVM加一些参数。具体方法如下: 启动MyEclipse----windows----...
  • 因为工作一段时间之后,大部分工程师都已经完成了最原始的基础技能积累,大家的技术水平差距集中在语言、框架、工具的使用熟练度上。而这个差异不会很大,就算大,也很容易追赶。但如果一个工程师一直停留在业务开发...
  • Java DateFormat(时间日期格式转换)

    千次阅读 2013-05-21 14:03:20
    前言  欢迎大家我分享和推荐好用的代码段~~ 声明  欢迎转载,但请保留文章原始出处:  CSDN:http://www.csdn.net  雨季o莫忧离:... * 获取现在时间 * * @return 返回时间类型 yyyy-M
  • Scanner是java.util包中的一个类,用于获取原始类型的输入,如int,double等和字符串。它是在Java程序中读取输入的最简单的方法,但是如果您想要一个输入法用于其中时间是竞争性编程中的约束的情况下不是非常有效。...
  • effective-java-3rd-chinese:Effective Java 中文版(第 3 版),Java 四大名著之一,本书一共包含 90 个条目,每个条目讨论 Java 程序设计中的一条规则。这些规则反映了最有经验的优秀程序员在实践中常用的一些...
  • System类 java.lang.System类代表当前Java程序的运行平台。...|-可以获取对象的原始HashCode。(比如String类就改写了hashCode方法,不能唯一地标识一个对象) 获取时间 public class System1时间 { public sta...
  • java 线程池优先级调度

    千次阅读 2015-06-05 16:56:04
    java线程池的优先级调度可提高多线程程序的运行效率,减少处理时间。JDK缺省库不提供该项功能,需要...通过Reflection API可访问被封装的Runnable/FutureTask对象私有属性,以获取原始的Runnable/Callable对象属性。
  • Java虚拟机规范

    2012-11-13 11:21:20
    出版社: 清华大学出版社书号: ISBN:730202365发行时间: 2011年02月 地区: 大陆 语言: 简体中文 简介: 内容简介 《Java虚拟机规范 (Java SE 7 中文版)》是一份根据《Java Virtual Machine Specification ...
  • Java2游戏编程.pdf

    热门讨论 2013-01-31 15:20:46
    2.2 比特和字节:原始Java类型 2.2.1 基本的整数类型 2.2.2 浮点类型 2.2.3 Char类型 2.2.4 布尔型 2.2.5 String类型 2.2.6 强制转换变量类型 2.2.7 Java数据类型、数组和标识符需要记忆的要点 2.3 Java中的运算符...
  • java范例开发大全

    2013-03-08 20:06:54
    实例193 使用GregorianCalendar类获取系统的当前时间 326 实例194 使用SimpleDateFormat类获取系统的当前时间 329 实例195 显示某年某月某一周的信息 330 实例196 显示某年某月的信息 332 实例197 时间的设置与获取 ...
  • 主要是GUI界面获取用户设定,与当前时间比较,利用线程休眠实现类似定时器功能,每分钟检查一次,最终启动命令。第一次自己动手,遇到了很多麻烦,程序也只是一个思路,很原始,适合新手,希望继续学习。
  • Java Web开发技术大全

    2014-11-05 14:35:40
    5.1.1 实例:编写显示服务器当前时间的JSP程序 5.1.2 调试JSP程序 5.1.3 改变JSP的访问路径和扩展名 5.1.4 手动发布JSP程序 5.2 JSP的运行原理 5.2.1 Tomcat如何处理JSP页 5.2.2 分析由JSP生成的...
  • java web开发技术大全

    热门讨论 2014-01-08 15:11:52
    5.1.1 实例:编写显示服务器当前时间的JSP程序 5.1.2 调试JSP程序 5.1.3 改变JSP的访问路径和扩展名 5.1.4 手动发布JSP程序 5.2 JSP的运行原理 5.2.1 Tomcat如何处理JSP页 5.2.2 分析由JSP生成的...
  • java 面试题 总结

    2009-09-16 08:45:34
    Int是java原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型封装类 booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble ...
  • java web技术开发大全(最全最新)

    千次下载 热门讨论 2012-10-10 07:21:38
    5.1.1 实例:编写显示服务器当前时间的JSP程序 5.1.2 调试JSP程序 5.1.3 改变JSP的访问路径和扩展名 5.1.4 手动发布JSP程序 5.2 JSP的运行原理 5.2.1 Tomcat如何处理JSP页 5.2.2 分析由JSP生成的...
  • JAVA面试题最全集

    2010-03-13 13:09:10
    如何获取某个日期是当月的最后一天 如何格式化日期 5.数组和集合 6.文件和目录(I/O)操作 如何列出某个目录下的所有文件 如何列出某个目录下的所有子目录 判断一个文件或目录是否存在 如何读写文件 7.Java...
  • 公司的网站需要做SEO优化,需要生成sitemap.xml文件,我的思路使用java内置定时器,每24小时生成一次,关于url地址,考虑到使用分布式框架实现比较麻烦,就使用配置property文件的方式,获取需要的url,由于项目中使用ssh...
  • java范例开发大全源代码

    热门讨论 2011-10-30 23:31:51
     实例193 使用GregorianCalendar类获取系统的当前时间 326  实例194 使用SimpleDateFormat类获取系统的当前时间 329  实例195 显示某年某月某一周的信息 330  实例196 显示某年某月的信息 332  实例197...
  • 源/Python学习交流 假设你在网上搜索某个项目所需的原始数据,但坏消息是数据存在于网页中,并且没有可用于获取原始数据的API。所以现在你必须浪费30分钟写脚本来获取数据(最后花费 2小时)。这不难但是很浪费时间。...
  • Java范例开发大全 (源程序)

    热门讨论 2011-04-27 07:47:22
     实例193 使用GregorianCalendar类获取系统的当前时间 326  实例194 使用SimpleDateFormat类获取系统的当前时间 329  实例195 显示某年某月某一周的信息 330  实例196 显示某年某月的信息 332  实例197 ...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 138
精华内容 55
关键字:

java获取原始时间

java 订阅