错过,不是错了,而是过了 ——龙族 安卓写了一上午,感觉到自己的java基础真的不好.跑过来不基础.参考图书"疯狂Java"~ 写一下环境变量的设置....---- 这两个jar文件的Java类会在编译与运行java程序时使用 看到openJDK的里面也有 ---- 为什么突然说这个,相必所有人在学习之初都要接触PLASSPATH这个东西。...java java类名。运行这个东西的时候,java类是哪里找的?你可能会说,当前路径。是,没错,但是你是直觉回答。但是1.4之前没有设计这个东西。只能你手动.来指定路径。...win平台用; Liunx平台用: ---- java是一种面向对象的语言,不和c一样,最小程序单位是函数,Java是类(class) 我们可以看到,一个最简单的java程序出现了 此时报错了 无论多复杂都有一个...用notepad写会出现 xxx.java,txt
] args) { Calendar calendar = Calendar.getInstance(); // 时 calendar.set(Calendar.HOUR_OF_DAY, 0)...; // 分 calendar.set(Calendar.MINUTE, 0); // 秒 calendar.set(Calendar.SECOND, 0); // 毫秒 calendar.set...(Calendar.MILLISECOND, 0); Date time = calendar.getTime(); SimpleDateFormat df = new SimpleDateFormat
byte b = 0xff; 这样无法通过编译。...因为这时的0xff,是作为int类型的,其值为255, 二进制记作0000 0000 0000 0000 0000 0000 1111 1111,另外,JAVA这里的二进制是用补码的。...如果要想通过编译,应该如下: byte b = (byte) 0xff; 这时0xff,是作为byte类型的,其值为-1, 二进制记作1111 1111,是补码形式的。...如果写做如下写法也都是可以的 int c = 0xff; int d = 0xffffffff; byte b = 0xffffffff; 0xff实际上是int类型的,值为255,在int的范围内,所以第一行通过编译...同理,第三行的0xffffffff也是是int类型的,值为-1,在byte的 -127~128范围内,通过编译。
教程 本系列笔记来自于http://tutorials.jenkov.com/java-nio/index.html 边翻译边学习。...---- Java Nio 可以用来替代标准Java IO和Java Networking API。...Java NIO提供了和标准IO不同的IO方式 Java NIO:Channels 和 Buffers 标准IO API是基于字节流和字符流工作的,NIO则基于通道(channels)和缓冲区(buffers...),数据总是从通道读到缓冲区,或者从缓冲区写到通道 Java NIO:Non-blocking IO Java NIO允许非阻塞地使用IO。...Java NIO:Selectors Java NIO保留了“选择器(selector)”的概念。选择器用于监听多个通路的事件(例如打开连接,数据到达)。这样一个线程就能够监听多个通路的数据了。
学习资源推荐Oracle Java官方网站:官方网站提供了Java的下载和开发资源,你可以从这里获取Java的最新版本并了解官方文档。...菜鸟教程 - Java教程:菜鸟教程提供了Java的入门教程,通过简单的实例让你更好地了解Java编程语言。...我要自学网:这是一个提供免费视频教程的网站,你可以在这里找到Java相关的教学视频,帮助你更好地学习和理解Java。2....学习核心知识点在掌握了基础的Java语法后,你需要深入学习一些核心知识点,掌握Java编程的基本技能。...结语Java是一门功能强大的编程语言,通过自学可以掌握Java的基本技能并开发出各种实用的应用程序。遵循合理的学习路线和学习建议,相信你能够成为一名优秀的Java开发者。加油!
List是有序的队列,List中的每一个元素都有一个索引;第一个元素的索引值是0,往后的元素的索引值依次+1。
CPU缓存 我们搞java的,平时写业务代码,会很少涉及到这方面的知识。但是如果要写出高性能的java代码,对于CPU Cache一块还是要有所了解的。...在Java程序中,数组的成员在缓存中也是连续的。Java对象的相邻成员变量也会加载到同一缓存行中。如果多个线程操作不同的成员变量,且这几个成员变量处于同一缓存行,那么为伪共享的问题就发生了。...最后,某些java编译器会将没有使用到的补齐数据在编译时优化掉,可以加入以下代码防止在编译器被优化到。...内存模型(Java Memory Model) JVM定义了内存模型,规范了Java虚拟机与计算机内存是怎么样协同工作的。...Java内存模型要记住以下同步规则: 1.如果再把一个变量从主内存中复制到工作内存中,就需要按顺序的执行read和load操作。
1^0=0,由此可以判断a中为1的位数是奇数还是偶数,是一个便捷的操作。...二进制数转格雷码 (假设以二进制为0的值做为格雷码的0) 格雷码第n位 = 二进制码第(n+1)位+二进制码第n位。不必理会进制。...因为二进制码和格雷码皆有相同位数,所以二进制码可从最高位的左边位元取0,以进行计算。...rstn = 0; #100 rstn = 1; forever begin #10 clk = !...rstn) begin counter_binary_reg <= ‘b0; counter_gray_reg <= ‘b0; end else begin
static void main(String[] args) { Scanner in=new Scanner(System.in); int x; double sum=0;...int cnt=0; int[]numbers = new int[100]; x= in.nextInt(); while(x!...=-1) { numbers[cnt]=x; sum += x; cnt ++; x= in.nextInt(); } if(cnt>0)...{ double average = sum/cnt; for(int i=0;i<cnt;i++) { if(numbers[i]>average) {...有效下标:最小的下标是0,最大的下标是数组的元素个数-1;可是编译器不会检查看你是不是有效下标;但是如果运行的时候出现无效的下标,可能会导致程序终止 如果在刚刚那个程序上写入: numbers
for循环像一个计数循环:设定一个计数器,初始化它,然后在计数器到达某值之前,重复执行循环体,而每执行一轮循环,计数器值以一定步进行调整,比如加1或者减一。
java技术 java源代码是.java为扩展名的文本文件,源文件可以被编译器(javac)编译为.class文件。class文件中包含字节码,字节码是Java虚拟机(JVM)的机器语言。...java平台 JVM Java API JVM是Java平台的基础,而Java API是大量现有的软件集合,它被分组到相关的类和接口库中,这些库称为包。...; } } java注释 除了支持C/C++的单行注释和多行注释之外,java还支持文档注释,例如上面HelloWorld程序中的注释就是一个文档注释。...java用类来实现OOP,对于C/C++程序员而言,需要注意下面几点。 在 Java 中,每个类最多只能有一个父类; 在 Java 中,虚基类(虚函数)变成了接口,可以使用类来实现接口。...参考资料:Java8官方教程
static void main(String[] args) { Publish publish = new Publish(); publish.getStates()[0]...= "a"; publish.getStates()[0] = "b"; } } 对象逸出:一种错误的发布。
HelloWorld hello world 和Java整合 预加载所有java.lang下的类,其他类需要显式引入。 例如Date和DateFormat import java.util....{Date, Locale} import java.text.DateFormat._ object FrenchDate { def main(args: Array[String]): Unit...Date val df = getDateInstance(LONG,Locale.FRANCE) println(df format now) } } Scala的import的语句比Java...也就是说,表达式: df format now 就是另一个,略显冗长的表达式: df.format(now) 可以从Java类继承并直接在Scala中实现Java接口。...和Java不同,Java会区别原始类型(例如布尔和int)和引用类型。 数字是对象 既然数字是对象,那么他就有方法了。事实上。一个如下的算数表达式: 1 + 2 * 3 / x 完全由方法组成。
Java是一门纯粹的面向对象的高级的平台无关的编程语言 官网介绍: 了解 Java 技术 https://www.java.com/zh_CN/about/ 推荐词条: https://zh.wikipedia.org...这些绝大多数的需要被解决的问题是已知的 注意,我指的是目前需求应用场景中的大多数问题 java语言,不过是用java的方式去解决这些问题而已 用java的语调,用java的方言去描绘这件事情 关键字的集合构成了所有的语句集合...JDK 可以把 java程序设计语言/java虚拟机/java API类库 三部分统称为JDK Java Development Kit java开发工具包 提供给Java开发人员使用的,其中包含了...所以安装了JDK,就不用在单独安装JRE了 JRE JRE是Java Runtime Environment java运行环境 包括Java虚拟机(JVM Java Virtual Machine)和Java...:jstat守护进程 jinfo:获取正在运行或崩溃的java程序配置信息 jmap:获取java进程内存映射信息 idlj:IDL-to-Java编译器。
Scanner in = new Scanner(System.in); //读入投币金额 System.out.println("请投币:"); int balance = 0;
如果再进行put操作,会抛出java.lang.UnsupportedOperationException异常。...// format System.out.println(LocalDateTime.now().format(dateTimeFormatter)); } } Java...Vector(); public static void main(String[] args) { for (;;) { for (int i = 0;...() { @Override public void run() { for (int i = 0;...() { @Override public void run() { for (int i = 0
锁被释放时,计数自减,当计数等于0时,表示锁已经成功释放。 锁降级:写线程获取写入锁后可以获取读取锁,然后释放写入锁。这样就从写入锁变成了读取锁,从而完成了锁降级。...如果当前节点处于CONDITION,则将waitStatus CAS为0准备加入到同步队列,如果当前状态不为CONDITION,说明该节点等待已被中断会返回false。...在Java中,sun.misc.Unsafe类提供了硬件级别的原子操作来实现这个CAS。java.util.concurrent.atomic包下的类大多是使用CAS操作来实现。...再说一下StampedLock是Java8引入的一种新机制。它是读写锁的一个改进版本,读写锁虽然分离了读和写的功能,使得读与读之间可以完全并发,但是读和写之间依然是冲突的。...Fork/Join框架是Java7提供的一个用于并行执行任务的框架,是一个把大人物分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。
在我们想要谈论Java并发包(java.util.concurrent)的时候,这是一个头疼的问题,却又是每个Java工程师不得不掌握的一项技能。...一直以来都想写一个Java并发包系列,无奈迟迟没有动手动脑。最近重新思考规划了自己的学习路线,决定从Java并发包开始把每个技术、原理、源码做成一个一个系列,由浅入深,由表及里。 ...这是Java并发包的开篇,我将大致介绍从一个较为宏观的角度来窥探Java并发包,以及这个系列的一些大致思路。 ...java.util.concurrent从jdk1.5开始新加入的一个包,致力于解决并发编程的线程安全问题,使用户更够更为快捷方便的编写多线程情况下的并发程序。...最后会对Java并发包做一个总结性的概述。 以上就是Java并发包系列的开篇。如有错误,请留下评论批评指正。
今天去看了一下关于Java方面比较权威的两本儿书,一本《Thinking in Java》、《Java核心技术 卷Ⅰ》,觉得写得特别棒,也产生了一些自己的想法,想要分享。...Java的简单描述 以下大内容部分提炼自Java核心技术 卷Ⅰ 。 Java最初的设计初衷是: 能够用于像有线电视转换盒一类处理能力和内存都很有限,并且CPU厂商各不相同的一些消费设备上。...Java与其他语言的区别 Java是由c++发展而来的,因为最初开发Java的是Sun公司那一批拥有UNIX应用背景的人,Java更像是C++语法的一个“纯净”版本。...例如,switch语法的语法在Java中就没有改变。事实上,Java还有许多奇怪的语法,后面也会提到。 JavaScript和Java除了语法类似,名字类似 ,其他再无什么关系。...关于Java applet 其实很简单,网页中运行的Java程序就是applet,只不过需要一些特别的语法来说明。
临界区表示被多个线程使用的公共资源,但是每一次只能有一个线程使用它。 比如打印机资源。
领取专属 10元无门槛券
手把手带您无忧上云