Java梗概】的更多相关文章

Java平台:J2SE(桌面).J2ME(逐渐被android取代).J2EE(企业级针对web程序) Java是在JVM虚拟机上运行,跨平台本质是在不同平台上运行JVM虚拟机 JRE = JVM+核心类库 JDK是Java开发使用的,包含java的开发工具 JDK=JRE+JAVA开发工具 通过文本编辑器运行java程序 1.Java的主方法 public class 类名{ public static void main(String[] args){ System.out.println(…
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /** * 需求:计算网页访问量前三名 * 用户:喜欢视频 直播 * 帮助企业做经营和决策 * * 看数据 */ object UrlCount { def main(args: Array[String]): Unit = { //1.加载数据 val conf:SparkConf = new Spa…
经历了2018年末的阵痛,大家都积攒着一股暗劲蠢蠢欲动. 3月初即将迎来2019年互联网行业换工作的大潮,技术工程师的升级换位对于一家互联网公司来说无疑是命脉般的存在——技术强则公司强! 如何做一个抢手的技术工程师呢? 按部就班996.完成项目.清理Bug.储备技能,这些就够了吗? 我邀请到新浪资深架构师张雷,相信他数十年经验也许能给正在找工作的你一些启发. 嘉宾介绍 个人介绍 张雷,2013年加入新浪微博,作为核心技术成员参与了微博服务化.混合云等多个重点项目,是Weibo开源RPC框架Mot…
Java Applet基础 applet是一种Java程序.它一般运行在支持Java的Web浏览器内.因为它有完整的Java API支持,所以applet是一个全功能的Java应用程序. 如下所示是独立的Java应用程序和applet程序之间重要的不同: Java中applet类继承了 java.applet.Applet类 Applet类没有定义main(),所以一个 Applet程序不会调用main()方法, Applets被设计为嵌入在一个HTML页面. 当用户浏览包含Applet的HTM…
o( ̄▽ ̄)d 小伙伴们在上网或者搞程序设计的时候,总是会听到关于“哈希(hash)”的一些东西.比如哈希算法.哈希表等等的名词,那么什么是hash呢? 一.相关概念 1.hash算法:一类特殊的算法(注意哦,hash算法并不是某个固定的算法,而是一类特殊功能算法的统称). 2.哈希表(hash table).哈希映射(hash map).哈希集合(hash set):一种基于hash算法的数据结构. 3.哈希函数:在hash算法中的核心函数. 4.map:译为“映射”,是一种从键(key)到值…
女娲补天的故事大家都听说过吧,今天不说这个,说女娲创造人的故事,可不是“造人”的工作,这个词被现代人滥用了.这个故事是说,女娲在补了天后,下到凡间一看,哇塞,风景太优美了,天空是湛蓝的,水是清澈的,空气是清新的,太美丽了,然后就待时间长了就有点寂寞了,没有动物,这些看的到都是静态的东西呀,怎么办?别忘了是神仙呀,没有办不到的事情,于是女娲就架起了八卦炉(技术术语:建立工厂)开始创建人,具体过程是这样的:先是泥巴捏,然后放八卦炉里烤,再扔到地上成长,但是意外总是会产生的:    第一次烤泥人,兹兹…
Map是键值对.也是经常使用的数据结构. Map接口定义了map的基本行为.包含最核心的get和put操作,此接口的定义的方法见下图: JDK中有不同的的map实现,分别适用于不同的应用场景.如线程安全的hashTable和非线程安全的hashMap. 例如以下图是JDK中map接口的子类UML类图,当中有个特例Dictionary已经不建议使用: Map接口中的方法我们须要关注的就是get.put 和迭代器相关的方法如entrySet().keySet().values()方法. Entry…
Java 项目思考总结 前言 今天是2017年3月25日,笔者已经毕业半年,工作经验一年. 正好有心思写这个总结. 持续开发 对于Java项目,我所接触的一般就是JavaWeb项目和 Java Jar后台进程项目. 一个项目要想健康持续开发和维护,那么就要尽早设计好,编码按照规范,切忌不要偷懒图便利,先完成功能再后续优化这种思想要尽量避免. 当你做这个项目完成的时候,会切换到别的项目开发,当这个项目有新的开发需求的时候,再回头看自己的代码,可能有两种感受: 1. 我擦,这个居然是我写的代码,这么…
流行框架: 框架就是开发人员定义好的一套模板,程序员只需要往模板中添加响应的代码即可,填完代码,项目就完成了.所以框架存在的意义以及我们学习框架的目的就是想办法能够让程序员快速的完成整个项目的开发.理解框架的思路可以看昨天写的博客<致Java程序员的一封信>,下面我来对各大流行框架做个梗概: Struts 先说第一个框架Struts,它是干嘛的,原来我们写Servlet的时候不停的用Request,Response进行读取数据传输数据这样的操作,那么Struts可以让我们能够快速的完成数据的交…
Java 菜鸟,会把可变的配置信息写死在代码里:Java 老鸟,会把可变的配置信息提取到配置文件中.坊间流传这么一句非科学的衡量标准,来评判程序员的级别. 那么,项目中的配置信息,你平时都是怎样来实现的呢?你项目中用过哪些配置文件呢? 近期将结合实际项目或源码,说说这些年用过的那些有关配置的奇技淫巧,看看能否帮你提高研发能力(那怕是提高一丢丢,就算成功). 1. 后缀为 .ini 的文件,你用过没? 后缀为 .ini 的文件,是 Initialization File 的缩写,主要用于程序的初始…
各位坐稳扶好,我们要开车了.不过在开车之前,我们还是例行回顾一下上期分享的要点. 上期我们抛了一个砖:“如何实现 Java 应用进程的状态监控,如果被监控的进程 down 掉,是否有机制能启动起来?”并结合 Resin 应用服务器背后启动的进程,更详细的阐述了一下问题. 我们依然不考虑自己怎么去实现,而是先看看 Resin 这款技术轮子,是不是按照我们的猜想设计的呢?是不是可以模仿一二? 好了,熟读唐诗三百首,不会作诗也会吟,抱着疑问,我们再深入一次 Resin 的源码,如果不感兴趣,或者脑仁疼…
各位坐稳扶好,我们要开车了.不过在开车之前,我们还是例行回顾一下上期分享的要点. 上期由于架不住来自于程序员内心的灵魂的拷问,于是我们潜心修炼,与 Java 应用监控利器 JMX 正式打了个照面. JMX 在我看来可谓是如陈年老酒般越品越有味,通过品这款老酒,我们认识了 Java 中你可能从未相识的名词 JCP.JSR:又耍了一把 JDK 内置的两款基于 JMX 的可视化监控.管理工具 JConsole 以及漂亮的 jvisualvm :同时我们又感受了一下长得虽然不咋滴,但是功能还算可以的 j…
最近在写一些关于java基础的文章,但是我又不想按照教科书的方式去写知识点的文章,因为意义不大.基础知识太多了,如何将这些知识归纳总结,总结出优缺点或者是使用场景才是对知识的升华.所以我更想把java相关的基础知识进行穿针引线,进行整体上的总结. 总结java中创建并写文件的5种方式 总结java从文件中读取数据的6种方法 总结java创建文件夹的4种方法及其优缺点 总结java中删除文件或文件夹的7种方法 总结java中文件拷贝剪切的5种方式 比如之前我已经写了上面的这些内容,如果对java基…
背景起因: 记起以前的另一次也是关于内存的调优分享下   有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如下代码耗时统计进行压测:   long startTime = System.currentTimeMillis();  callRpc();   //这里比如调用RPC伪代码,当然还在插入数据库,中间件地方都加入统计  long costTime = (System.currentTimeMill…
摘要   接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得都不是很全面.因此就有了写ElasticSearch开发教程的想法,将学习到的技术经验分享出来,帮助更多需要的朋友,也希望借此认识同行的朋友,共同交流,共同进步! 系列文章的总括 下面将对即将推出的ElasticSearch开发系列连载教程做简单的说明.教程主要是面向有一定Java编程基础的朋友,不…
比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化.尤其是它的"云优先,移动优先"的战略,这才是符合新时代潮流的大势. 今天,既然我们重点是来讨论Java与.NET领域的,那关于微软的是是非非且放置脑后.我说.NET看起来更新很快,目前只是在弥补曾经犯下的错. 那.NET之前究竟错在哪里..NET既然是微软实现跨平台与Java竞争的利器,那…
背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This output file may be truncated or incomplete. # # Out of Memory Error (os_linux.cpp:2673), pid=28610, tid=139813184919296  日志分析原因很简单,服务器的内存不够用,导致进程崩溃 JA…
运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] args) { System.out.println("sleep .."); try { Thread.sleep(10000000); } catch (InterruptedException e) { e.printStackTrace(); } } }   java -Xmx10…
有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个文件占用了内存太大了. 使用例子如下,用JAVA 运行Sort 1, 输入你要排序的文件路径 , 如 例子是对H:\下的文件和它所有子文件夹下的文件进行排序 2, 输入需要进行排序显示的最新大小,如 例子是对10M 大小 以上的文件进行排序 3,从大到小排序后按 文件路径\文件名-------大小…
9. 线程安全/共享变量——同步 当多个线程用到同一个变量时,在修改值时存在同时修改的可能性,而此时该变量只能被赋值一次.这就会导致出现“线程安全”问题,这个被多个线程共用的变量称之为“共享变量”. 为了解决线程安全的问题,我们可以使用“同步”来控制线程访问.当一个线程在使用这个共享资源(不仅仅是变量,还可以是集合.对象等)的时候,其他线程就无法访问. package threadStudy; public class ThreadSynchronizedTest { public static…
1. 创建线程    1.1 通过构造函数:public Thread(Runnable target, String name){}  或:public Thread(Runnable target){} 示例: Thread thread1 = new Thread(new MyThread(), "mythread"); class MyThread extends Thread(){ public void run(){ System.out.println("My…
经常有人问这种问题,用了些时间java之后,发现这俩玩意除了一小部分壳子长的还有能稍微凑合上,基本上没什么相似之处,可以说也就是马甲层面上的相似吧,还是比较短的马甲... 一般C#多用于业务系统的开发,快速实现,微软官方的各种封装,各种语法糖,使得c#在语义语法层面上更人性化,开发思路更专注于业务逻辑,对技术的实现并不需要关心的很细(当然这是指初级的入门程度),不过也带来的一些缺陷,当表面上的功夫不能满足的时候,.net程序员就不得不去了解微软封装起来的东西,所以我认识的.net程序员几乎人手一…
高并发,听起来高大上的一个词汇,在身处于互联网潮的社会大趋势下,高并发赋予了更多的传奇色彩.首先,我们可以看到很多招聘中,会提到有高并发项目者优先.高并发,意味着,你的前雇主,有很大的业务层面的需求,而且也能怎么你在整个项目中的一个处理逻辑的能力体现.那么,你真的知道什么是高并发吗?这不是一个很简单的话题.高并发,往往会牵扯到很多的问题,如何才能快速响应,如何处理各个线程之间的交互,如何完成逻辑之间的高负载运转,甚至,一个系统,如果没有做好前期高并发的合理配置,整个产品会遇到瓶颈,以及不可预期的…
Java是最早开始有并发的语言之一,再过去传统多任务的模式下,人们发现很难解决一些更为复杂的问题,这个时候我们就有了并发. 引用 多线程比多任务更加有挑战.多线程是在同一个程序内部并行执行,因此会对相同的内存空间进行并发读写操作.这可能是在单线程程序中从来不会遇到的问题.其中的一些错误也未必会在单CPU机器上出现,因为两个线程从来不会得到真正的并行执行.然而,更现代的计算机伴随着多核CPU的出现,也就意味着不同的线程能被不同的CPU核得到真正意义的并行执行. 那么,要开始Java并发之路,就要开…
一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个层次. 实现(类):是集合接口的具体实现.从本质上讲,它们是可重复使用的数据结构. 算法:是实现集合接口的对象里的方法执行的一些有用的计算,例如:搜索和排序.这些算法被称为多态,那是因为相同的方法可以在相似的接口上有着不同的实现. 集合接口 序号 name 接口描述 1 Collection Col…
最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记. 类似下面这段代码一样获取插入后的主键 User user = new User(); user.setUserName("chenzhou"); user.setPassword("xxxx"); user.setComment("测试插入数据返回主键功能"); System.out.println("插入前主键为:…
建议75:集合中的元素必须做到compareTo和equals同步 实现了Comparable接口的元素就可以排序,compareTo方法是Comparable接口要求必须实现的,它与equals方法有关系吗?有关系,在compareTo的返回为0时,它表示的是 进行比较的两个元素时相等的.equals是不是也应该对此作出相应的动作呢?我们看如下代码: class City implements Comparable<City> { private String code; private S…
一:进程与线程 概述:几乎任何的操作系统都支持运行多个任务,通常一个任务就是一个程序,而一个程序就是一个进程.当一个进程运行时,内部可能包括多个顺序执行流,每个顺序执行流就是一个线程.   进程:进程是指处于运行过程中的程序,并且具有一定的独立功能.进程是系统进行资源分配和调度的一个单位.当程序进入内存运行时,即为进程.   进程的三个特点: 1:独立性:进程是系统中独立存在的实体,它可以独立拥有资源,每一个进程都有自己独立的地址空间,没有进程本身的运行,用户进程不可以直接访问其他进程的地址空间…
线程:线程是进程的组成部分,一个进程可以拥有多个线程,而一个线程必须拥有一个父进程.线程可以拥有自己的堆栈,自己的程序计数器和自己的局部变量,但不能拥有系统资源.它与父进程的其他线程共享该进程的所有资源. 线程的特点: 线程可以完成一定任务,可以和其它线程共享父进程的共享变量和部分环境,相互协作来完成任务. 线程是独立运行的,其不知道进程中是否还有其他线程存在. 线程的执行是抢占式的,也就是说,当前执行的线程随时可能被挂起,以便运行另一个线程. 一个线程可以创建或撤销另一个线程,一个进程中的多个…
前面有一篇讲解如何在spring mvc web应用中一启动就执行某些逻辑,今天无意发现如果使用不当,很容易引起内存泄露,测试代码如下: 1.定义一个类App package com.cnblogs.yjmyzz.web.controller; import java.util.Date; public class App { boolean isRun = false; public App() { isRun = true; } public void start() { while (is…