checkedlistbox(安卓item用法)

伏羲号

<selector> 的根节点必须是<item>、可以包含一个或多个<item>元素

checkedlistbox(安卓item用法)

xmlns:android String、必须、定义XML的命名空间、必须是 “http://schemas.android.com/apk/res/android”

下面就来了解一下所有的<item>吧

android:state_pressed

Boolean、“true”表示按下状态使用(例如按钮按下)、“false”表示非按下状态使用

android:state_focused

Boolean、“true”表示聚焦状态使用(例如使用滚动球/D-pad聚焦Button);“false”表示非聚焦状态使用

android:state_selected

Boolean、“true”表示选中状态使用(例如Tab 打开);“false” 表示非选中状态使用

android:state_checkable

Boolean、“true”表示可勾选状态时使用;“false”表示非可 勾选状态使用、(只对能切换可勾选—非可勾选的构件有用、)

android:state_checked

Boolean、“true”表示勾选状态使用;“false”表示非勾选状态使用

android:state_enabled

Boolean、“true”表示可用状态使用(能接收触摸/点击事件)、“false”表示不可用状态使用

android:window_focused

Boolean、“true”表示应用程序窗口有焦点时使用(应用程序在前台)、“false”表示无焦点时使用(例如Notification栏拉 下或对话框显示)

注意:记住一点,StateList中第一个匹配当前状态的item会被使用、因此,如果第一个item没有任何状态特性的话

那么它将每次都被使用,这也是为什么默认的值必须总是在最后

ListView item使用实例 drawable/list_item_bg.xml

我的一个GridView操作文件,数据源是实体LIST,删改查功能都有了,你参考下 using System; using System.Collections; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using lwf_MVC.CTRL; using lwf_MVC.lwf_Normal; using lwf_MVC.MODEL; public partial class admin_news_edit : System.Web.UI.Page { public string icls_name = "cls_f_news"; //不同级数系列区别在于iWhere public string iWhere = " 1 = 1 and ENG = " + WEB.GQ("ENG", "0") + " and TID1 = " + WEB.GQ("SSS", "1") + " and 1 = 1"; public int getRecordCount() { cls_f_news if_news = (cls_f_news)CTRL.CreateModel(icls_name); if_news.title = soKey.Text; if_news.contents = soKey.Text; if_news.WHERE = iWhere; int i_recordcount = CTRL.getCount(if_news, "order by orderid,id desc"); return i_recordcount; } protected void Page_Load(object sender, EventArgs e) { if (WEB.getSession("userName") == null || WEB.getSession("userName") == "") JS.RD(System.Web.HttpUtility.UrlDecode("%e7%99%bb%e9%99%86%e8%b6%85%e6%97%b6%2c%e8%af%b7%e9%87%8d%e6%96%b0%e7%99%bb").Trim(), "../login.aspx"); if (!IsPostBack) { AspNetPagerBin(1); GridViewBin(); } } protected void AspNetPagerBin(int curr) { int i_recordcount = getRecordCount(); AspNetPager1.RecordCount = i_recordcount; AspNetPager1.CurrentPageIndex = curr; } protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { GridView1.EditIndex = e.NewEditIndex; GridViewBin(); } protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { GridView1.EditIndex = -1; GridViewBin(); } protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { int i_id = int.Parse(GridView1.DataKeys[e.RowIndex].Value.ToString()); cls_f_news baseTableObj = (cls_f_news)CTRL.CreateModel(icls_name, i_id); baseTableObj.title = ((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text.ToString(); baseTableObj.newfrom = ((TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[0]).Text.ToString(); baseTableObj.addTime = DateTime.Parse(((TextBox)GridView1.Rows[e.RowIndex].Cells[4].Controls[0]).Text.ToString()); baseTableObj.orderid = int.Parse(((TextBox)GridView1.Rows[e.RowIndex].FindControl("tb_orderid_b")).Text.ToString()); if (CTRL.Update(baseTableObj)) { JS.alert(System.Web.HttpUtility.UrlDecode("%e4%bf%ae%e6%94%b9%e6%88%90%e5%8a%9f").Trim()); } else { JS.alert(System.Web.HttpUtility.UrlDecode("%e7%bd%91%e7%bb%9c%e8%b6%85%e6%97%b6%ef%bc%8c%e8%af%b7%e9%87%8d%e6%96%b0%e5%86%8d%e8%af%95").Trim()); } //==================================== GridView1.EditIndex = -1; GridViewBin(); } protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { int i_id = int.Parse(GridView1.DataKeys[e.RowIndex].Value.ToString()); cls_f_news baseTableObj = (cls_f_news)CTRL.CreateModel(icls_name, i_id); if (CTRL.Delete(baseTableObj)) { JS.alert(System.Web.HttpUtility.UrlDecode("%e8%ae%b0%e5%bd%95%e5%88%a0%e9%99%a4%e6%88%90%e5%8a%9f").Trim()); } else { JS.alert(System.Web.HttpUtility.UrlDecode("%e7%bd%91%e7%bb%9c%e8%b6%85%e6%97%b6%ef%bc%8c%e8%af%b7%e9%87%8d%e6%96%b0%e5%86%8d%e8%af%95").Trim()); } //==================================== GridView1.EditIndex = -1; GridViewBin(); } protected void AspNetPager1_PageChanged(object sender, EventArgs e) { GridView1.EditIndex = -1; GridView1.PageIndex = AspNetPager1.CurrentPageIndex; GridViewBin(); } protected void CheckBox_all_CheckedChanged(object sender, EventArgs e) { CheckBox_opp.Checked = false; for (int i_i = 0; i_i <= GridView1.Rows.Count - 1; i_i++) { CheckBox ckb = (CheckBox)GridView1.Rows[i_i].FindControl("cb_selBoxs"); if (CheckBox_all.Checked) { ckb.Checked = true; } else { ckb.Checked = false; } } } protected void CheckBox_opp_CheckedChanged(object sender, EventArgs e) { CheckBox_all.Checked = false; for (int i_i = 0; i_i <= GridView1.Rows.Count - 1; i_i++) { CheckBox ckb = (CheckBox)GridView1.Rows[i_i].FindControl("cb_selBoxs"); if (ckb.Checked) { ckb.Checked = false; } else { ckb.Checked = true; } } } protected void lb_delete_Click(object sender, EventArgs e) { for (int i_i = 0; i_i <= GridView1.Rows.Count - 1; i_i++) { CheckBox ckb = (CheckBox)GridView1.Rows[i_i].FindControl("cb_selBoxs"); if (ckb.Checked) { int i_id = int.Parse(GridView1.DataKeys[i_i].Value.ToString()); cls_f_news baseTableObj = (cls_f_news)CTRL.CreateModel(icls_name, i_id); CTRL.Delete(baseTableObj); } } int i_Pcount = getRecordCount(); if (AspNetPager1.CurrentPageIndex > i_Pcount) { AspNetPagerBin(i_Pcount); } else { AspNetPagerBin(AspNetPager1.CurrentPageIndex); } GridViewBin(); } protected void lb_order_Click(object sender, EventArgs e) { for (int i_i = 0; i_i <= GridView1.Rows.Count - 1; i_i++) { TextBox tb = (TextBox)GridView1.Rows[i_i].FindControl("tb_orderid_a"); int i_id = int.Parse(GridView1.DataKeys[i_i].Value.ToString()); cls_f_news baseTableObj = (cls_f_news)CTRL.CreateModel(icls_name, i_id); baseTableObj.orderid = int.Parse(tb.Text.ToString()); CTRL.Update(baseTableObj); } GridViewBin(); } protected void bt_search_Click(object sender, EventArgs e) { AspNetPagerBin(1); GridViewBin(); } protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) { int rowNum; int id_i; } protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { } } protected void GridView1_Sorting(object sender, GridViewSortEventArgs e) { string sortExpression = e.SortExpression; ViewState["sortExpression"] = sortExpression; if (ViewState["ASC"].ToString() == "0") { ViewState["ASC"] = "1"; } else { ViewState["ASC"] = "0"; } AspNetPagerBin(1); GridViewBin(); } protected void GridViewBin() { CheckBox_all.Checked = false; cls_f_news if_news = (cls_f_news)CTRL.CreateModel(icls_name); if_news.title = soKey.Text; if_news.contents = soKey.Text; if_news.WHERE = iWhere; int RecordCount; int curP = Convert.ToInt32(AspNetPager1.CurrentPageIndex); List<cls_f_news> iList_f_news = CTRL.getPageList(if_news, "order by orderid,id desc", AspNetPager1.PageSize, curP, out RecordCount).ConvertAll<cls_f_news>(delegate(lwf_MVC.MODEL.baseTable s) { return (cls_f_news)s; }); if (ViewState["ASC"] == null) ViewState["ASC"] = "-1"; if (ViewState["sortExpression"] == null) ViewState["sortExpression"] = "orderid"; if (ViewState["ASC"].ToString() == "-1") { iList_f_news.Sort(delegate(cls_f_news a, cls_f_news b) { return (new CaseInsensitiveComparer()).Compare(a.GetType().GetProperty(ViewState["sortExpression"].ToString()).GetValue(a, null), b.GetType().GetProperty(ViewState["sortExpression"].ToString()).GetValue(b, null)); }); } else { if (ViewState["ASC"].ToString() == "1") { iList_f_news.Sort(delegate(cls_f_news a, cls_f_news b) { return (new CaseInsensitiveComparer()).Compare(a.GetType().GetProperty(ViewState["sortExpression"].ToString()).GetValue(a, null), b.GetType().GetProperty(ViewState["sortExpression"].ToString()).GetValue(b, null)); }); } else { iList_f_news.Sort(delegate(cls_f_news a, cls_f_news b) { return (new CaseInsensitiveComparer()).Compare(b.GetType().GetProperty(ViewState["sortExpression"].ToString()).GetValue(b, null), a.GetType().GetProperty(ViewState["sortExpression"].ToString()).GetValue(a, null)); }); } } GridView1.DataSource = iList_f_news; GridView1.DataKeyNames = new string[] { "id" }; GridView1.DataBind(); } }

1.. The police had to check out the call. 警方不得不追查那通电话。

2.Maybe we ought to go down to the library and check it out... 或许我们应该去趟图书馆,查个明白。

3.They packed and checked out of the hotel... 他们收拾好东西,办理了退房手续。

4. Look at the other list and see if the names check out. 查查另一张单子,看名字是否相同。

在这个IT系统动辄就是上亿流量的时代,Java作为大数据时代应用最广泛的语言,诞生了一批又一批的新技术,包括HBase、Hadoop、MQ、Netty、SpringCloud等等 。

一些独角兽公司以及腾讯、阿里、百度、网易等知名大厂对Java人才的需求量连年升级,有2年工作经验的优秀程序员能轻松达到30w+的水平,但与此同时对人才的要求也越来越高。

很多学生都会疑惑,同样是程序员吗,同样是学的Java,同样掌握了相应的技术,为什么自己就不能拿到BAT企业的Offer,不能拿到50W+的年薪?自己和年薪50W+的程序员差距在哪里?

二、工作效率

一个程序员每天写出来的有效代码(刨去自动生成和复制粘贴),大约就100~200行。我们的时间还耗费在需求讨论、思路整理、代码编译、提交、部署测试多个环节,优秀的工程师总能想到很多办法来提升自己的工作效率,所以一线互联网公司架构师,都会配置“效能平台(如阿里的云效平台)”来通过一整套的CI/CD方案来提高研发效率。

三、解决问题的能力

编程一个脑力活,如果把它做成了体力活,这就代表是时候改变一下了。现在的框架封装越来越便捷,通过springboot刚毕业都能把web开发玩的666,通过netty的相关封装,一年新手也能写出来性能不错的网络程序。架构师和普通开发的区别不在于会使用多少新潮的框架或者api,而在于对底层原理了解的程度。如果用的开源框架在生产环境出现问题,出面解决的肯定是年薪50W+的架构师。话说,来看看自己对spring框架原理知多少?

四、学习能力

Java往深往上走,下到C/C++,上到中间件、架构方式,按照IT行业技术发展的速度,不被掉队那就得不断的学习。普通程序员还在纠结业务代码怎么实现,技术领导们每天的工作就是研究各种高并发/新框架/分布式这些东西,慢慢下去差距能不大嘛,只有用很快的速度,掌握必备知识,才有一搏之力!

五、软技能

多少人努力进入大厂,但终究默默无闻进,默默无闻的出来,BAT等一线公司数十万技术人,你知道多少大牛,记住的有多少呢?平台重要,更重要的是,能在平台发展到什么程度。每个公司都有他的管理尿性,有它的企业氛围,软技能决定了能到什么职位!看到差距,才知道哪里需要改进,有了目标,更有学习动力。技术人成长不能再单打独斗,要学会与人交流,学会将别人的知识为自己所用。预祝每一位小伙伴都能拿到自己满意的工资待遇,不负韶华!

六、最火的语言还是Java?

下面是2017年7月编程语言排行榜 Top 10榜单:

Java语言在2016-2017依然占据榜首。Java作为最受欢迎的语言,在编程语言高薪行列里依然名列前茅,无疑是想进入互联网行业,拿高薪的最佳选择。

光有技术还不够

当然除了技术过关以外,还该有Java领域有丰富的经验,独到的见解。能够从前台到后台独立的搭建完成,良好的沟通能力及团队协作能力等。

一般情况下,就算不去大公司,很多小公司的技术总监年薪上也差不了多少呢。当然这些都需要一些时间沉淀,没办法速成。

七、Java程序员的职业发展有几个选择

Java程序员的职业发展有几个选择:专注于技术,成为技术专家;转型到技术型销售、技术支持等;随着技术成长,从技术性管理到高级管理。

这归根结底,都是以Java技术为基础。在扎实的技术基础上(高级软件工程师),如果有着比较强的抽象设计能力,又打算专注于技术开发,架构师是个好的选择;如果性格更适合做管理,情商能力突出,技术型管理应该是下一步的方向。这种发展规划属于‘瘸腿走路’的类型,各有侧重主攻发展的职业方向,也是目前一般程序员普遍采用的发展路线规划。

八、职业规划

已经工作两年以上的程序员可以有几种基本的职业规划:技术专家、软件架构师、实施顾问或销售。其中程序员最主要的发展方向是资深技术专家,无论是 Java、.NET还是数据库领域,都要首先成为专家,然后才可能继续发展为架构师。

尽管架构师的职位可以工作一辈子,待遇也非常好,对于科班出身的程序 员最为适合,但这种工作职位非常有限,因为在中国目前的IT行业,架构师需要的条件比较复杂,而且需求量也比较少,这也是我国软件行业走向国际并有待成熟 的因素之一。

九、管理能力和专业知识技能

目前国内缺乏的是管理能力和专业知识技能并驾齐驱的IT人才。特别是懂得运用目标管理技术的项目管理人才,既掌握核心技术又有全局掌控能力的项目管 理人才,非常难找。我建议对于大多数人来说,首先是要专,只有在技术方向上做得比较深入,才能适当做工作调整,把自己转变为某个领域的专家。

根据自己的情况,决定自己做Java架构师还是高级的顾问销售,另外一部分人可能就会走向管理,这和个人性格与情商有关。软件优秀的管理者都必须懂得技术,掌握核心技能的人才向管理岗位转型有很大的优势,因而提升管理能力成了转型的关键。

十、总之,Java程序员要根据本身的基本素质、技术能力选择开发层次,由低到高,逐步发展。也是一名程序员本身具备相应素质的循序渐进的发展轨迹,包括很强的技术背景和综合管理才能等素养,这也就是所谓‘两条腿走路’的职业规划发展路线。

不邀自来,对于java工程师成为一名架构师如何进阶学习及掌握应有的技能体系在这做出一些建议!Java架构师主要需要做哪些工作呢?负责设计和搭建软件系统架构(平台、数据库、接口和应用架构等),解决开发中各种系统架构问题。优化现有系统的性能,解决软件系统平台关键技术问题攻关、核心功能模块设计、核心代码开发。在项目需求不断细化的工程中校正整体的架构设计,以及详细模块拆分设计。营造技术学习氛围,带领团队不断完善开发开发方法及流程,提升开发效率与质量,加强技术标准及规范。带领团队攻克例如大数据量、高并发、高稳定性等带来的各种挑战及技术难关。责任心强,有团队合作精神,工作认真负责高效并具有一定抗压能力。参与讨论公司产品发展方向,完整的规划和把握产品研发架构。Java架构师要学习哪些知识呢?

希望以下的学习路线能对你有帮助

并发编程

JAVA内存模型(JMM)

java当中的线程通讯和消息传递什么是重排序和顺序一致性?Happens-Before?As-If-Serial?

Synchronized的概念和分析

同步、重量级锁以及Synchronized的原理分析自旋锁、偏向锁、轻量级锁、重量级锁的概念、使用以及如何来优化他们

Volatile和DCL的知识

Volatile的使用场景和Volatile实现机制、内存语义、内存模型DCL的单例模式,什么是DCL?如何来解决DCL的问题

并发基础之AQS的深度分析

AbstractAueuedSynchronizer同步器的概念、CLH同步队列是什么?同步状态的获取和释放、线程阻塞和唤醒

Lock和并发常用工具类

java当中的Lock、ReentrantLock、ReentrantReadWriteLock、Conditionjava当中的并发工具类CyclicBarrier、CountDownLatch、Semphorejava当中的并发集合类ConcurrentHashMap、ConcurrentLinkedQueue

原子操作常用知识讲解

基本类型的原子操作比如经典的AtomicBoolean、AtomicLnteger、AtomicLong数组类型的原子操作代表几个类AtomicIntegerArray、AtomicLongArray、AtomicReferenceArray引用类型的原子操作的典型AtomicReference、AtomicReferenceFieldUpdater......CAS的概念和知识、Compare And Swap 以及他的缺陷

线程池和并发并行

Executor、ThreadPoolExecutor、Callable &Future、ScheduledExecutorServiceThreadLocal、Fork & Join?什么是并行?线程池如何保证核心线程不被销毁?框架和源码应用

mybatis应用和源码解析

mybatis优缺点、spring 与mybatis 集成Config、Sql配置、Mapper配置、有几种注册mapper的方法,优先级如何?mybaits的一级缓存、二级缓存、mybatis的二级缓存为什么是鸡肋?通用mapper的实现、mybaits编写sql语句的三种方式@MapperScan的源码分析?mapperScan如何生效的?mybatis如何扩展spring的扫描器的、mybatis扫描完之后如何利用FactoryBean的?mybaits底层如何把一个代理对象放到spring容器中?用到了spring的哪些知识?mybaits和spring的核心接口ImportBeanDefinitionRegistrar之间千丝万缕的关系从原来来说明mybaits的一级缓存为什么会失效?spring为什么把他失效?有没有办法解决?从mybatis来分析mybatis的执行流程、mybaits的sql什么时候缓存的?缓存在哪里?mybaits当中的方法名为什么需要和mapper当中的id一致?从源码来说明

tomcat源码解析

tomat的总体概述和tomcat的启动流程源码分析tomcat当中web请求的源码分析?一个http如何请求到tomcat的?tomcat如何处理的?tomcat的协议分析,从源码来分析tomcat当中的各种详细配置的意义tomcat和apache、nginx等等主流静态服务器的搭配使用tomcat的性能调优?生成环境上如何让你的tomcat容器的性能达到最高

spring源码分析

spring的基本应用和spring源码的编译java 混乱的日志系统,Jul、jcl、log4j、slf4j.....spring4和spring在日志方面的源码对比AspectJ和springAop,aspectj的静态织入JDK动态代理的源码分析,JDK是如何操作字节码spring通过cglib完成AOP,cglib如果完成方法拦截AnnotationAwareAspectJAutoProxyCreator如何完成代理织入的BeanDefinition是什么东西,sping当中的各种BeanDefinition的作用BeanDefinition有什么作用?如果来改变一个bean的行为BeanDefinitionRegistry的作用,源码分析BeanNameGenerator如何改变beanName的生成策略BeanPostProcessor如何插手bean的实例化过程、经典的应用场景有哪些?spring内部哪里用到了这个接口BeanFactoryPostProcessor和BeanPostProcessor的区别、经典应用场景、spring内部如何把他应用起来的BeanDefinitionRegistryPostProcessor和BeanFactoryPostProcessor的关系已经区别,spring底层如何调用他们ConfigurationClassPostProcessor这个类如何完成bean的扫描,如何完成@Bean的扫描、如何完成对@Import的解析@Imoprt的三种类型,普通类、配置类、ImportSelector如何利用ImportSelector来完成对spring的扩展?@Configuration这注解为什么可以不加?加了和不加的区别,底层为什么使用cglib@Bean的方法是如何保证单例的?如果不需要单例需要这么配置?为什么需要这么配置springFacoryBean和BeanFacory的区别,有哪些经典应用场景?spring的factoryMethod的经典应用场景?ImportBeanDefinitionRegistrar这个接口的作用,其他主流框架如何利用这个类来完成和spring的结合的?spring是什么时候来执行后置处理器的?有哪些重要的后置处理器,比如CommonAnnotationBeanPostProcessorCommonAnnotationBeanPostProcessor如何来完成spring初始化方法的回调。spring内部的各种Procesor的作用分别是什么spring和springBoot当中的各种@Enablexxxx的原理是什么?如何自己实现一个?比如动态开启某某些自定义功能spring如何来完成bean的循环依赖并且实例化的,什么是spring的IOC容器,怎么通过源码来理解?其他,比如Bean的实例化过程,源码中的两次gegetSingleton的不同和相比如SpringMvc的源码分析等等微服务

Spring Cloud

Eureka的源码分析服务注册和服务发现以及心跳机制和保护机制,对比eureka与zookeeper,什么是CAP原则?Ribbon源码分析和客服端负载均衡,客户端负载均衡?服务端负载均衡? Ribbon核心组件IRule以及重写IRuleFegin源码分析和声明式服务调用,Fegin负载均衡,Fegin如何与Hystrix结合使用? 有什么问题?Hystrix实现服务限流、降级,大型分布式项目服务雪崩如何解决? 服务熔断到底是什么?一线公司的解决方案HystrixDoashboard如何实现自定义接口降级、监控数据、数据聚合等等Zuul统一网关详解、服务路由、过滤器使用等,从源头来拦截掉一些不良请求分布式配置中心Config详解,如何与github或是其他自定义的git平台结合、比如gitlab分布式链路跟踪详解,串联调用链,,让Bug无处可藏,如何厘清微服务之间的依赖关系?如何跟踪业务流的处理顺序?

Spring Boot

Spring Boot的源码分析和基本应用、利用springmvc的知识模拟和手写一个springbootspringmvc的零配置如何实现的?利用servelt3.0的哪些新知识?在springmvc中如何内嵌一个tomcat,如何把web.xml去掉springboot当中的监听器和设计模式中观察者模式的关系、模拟java当中的事件驱动编程模型springboot的启动流程分析、springboot如何初始化spring的context?如何初始化DispacterServlet的、如何启动tomcat的springboot的配置文件类型、配置文件的语法、配置文件的加载顺序、模拟springboot的自动配置springboot的日志系统、springboot如何设计他的日志系统的,有什么优势?如何做到统一日志的?

Docker

什么是Docker、为什么要使用他、和开发有什么关系?能否带来便捷、Docker简介、入门,Docker的架构是怎样的?Docker的三大核心概念:镜像(Images)、容器(Containers)、仓库服务注册器(Registry)他们分别是什么?Docker的基础用法以及Docker镜像的基本操作容器技术入门、Docker容器基本操作、容器虚拟化网络概述以及Docker的容器网络是怎样的?程序员如何利用Dockerfile格式、Dockerfile命令以及docker build构建镜像Compose和Dockerfile的区别是什么?Compose的配置文件以及使用Compose运行容器、Docker的实战应用性能调优

mysql性能调优

mysql中为什么不使用其他数据结构而就用B+树作为索引的数据结构mysql执行计划详解&mysql查询优化器详解mysql索引优化实战,包括普通查询、group by、order by

JVM性能调优

java内存模型总体概述、类加载过程和classloader、运行时数据区当中的总体内容、编译原理内存区域与内存溢出异常、虚拟机对象、程序计数器、java栈、本地方法栈、操作数、方法区、堆内存和元数据等等Classloader的知识详细、默认全盘负责机制、从JDK源码来理解双亲委派模式、如何打破双亲委派?为什么需要打破?虚拟机性能监控与故障处理、jvm基本命令,jinfo命令的使用jmap命令使用、jstak命令的使用、使用jvisualvm分析垃圾收集器与内存分配策略、垃圾回收算法与基础、串型收集器、并行收集器、内存分配与回收策略。程序编译与代码优化、运行期优化、编译期优化、JVM调优的本质是什么?什么是轻gc?什么是Full gc?如何调优JVM执行子系统、类文件结构、类加载机制、字节码执行引擎、字节码编译模式、如何改变字节码编译模式?java数据结构算法hash算法详解、java当中hashmap源码解析、手写一个hashmap从源码理解hashmapJDK7和JDK8的变化、为什么有这样的变化,Java8新特性顺序存储、双向链表、单向链表、java当中linkedList的源码分析java当中线性结构、树形结构以及图形结构分析以及应用场景和经典使用大数字运算和经典排序、二叉树红黑树排序、查找互联网工程

Maven

整体认知maven的体系结构maven核心命令maven的pom配置体系搭建Nexus私服

Git

动手搭建Git客户端与服务端Git的核心命令Git企业应用git的原理,git底层指针介绍

Linux

Linux原理、启动、目录介绍Linux运维常用命令、Linux用户与权限介绍shell脚本编写分布式

分布式协调框架(Zookeeper)

什么是分布式系统?分布式系统有何挑战?Zookeeper快速入门&集群搭建基本使用Zookeeper有哪些常用命令以及注意事项、zkclient客户端与curator框架有什么功能以及如何使用手写Zookeeper常见应用场景:分布式配置中心、分布式锁、分布式定时任务Zookeeper核心概念znode、watch机制、序列化、持久化机制讲解及其源码解析Zookeeper怎么解决分布式中的一致性问题?领导选举流程讲解及其源码解析

RPC服务框架(Dubbo)

手写RPC框架以及为什么要使用Dubbo? 传统应用系统如何演变成分布式系统详解Dubbo的六大特性是什么?对企业级开发有何好处?Dubbo的作用简要说明、快速演示Dubbo调用示例Dubbo中协议、注册中心、动态代理机制是怎么达到可扩展的?Dubbo的扩展机制源码解析Dubbo从服务提供者到注册中心到消费者调用服务中间的流程源码解析Dubbo的监控中心以及管理平台的使用,方便企业级开发与管理

分布式数据缓存(Redis)

关系型数据库瓶颈与优化、ehcache和redis的对比?nosql的使用场景Redis基本数据类型、比如map的使用场景?有什么优缺点?什么时候用map等等Redis高级特性、如何来理解redis的单线程但是高性能?如何理解redis和epollRedis持久化、什么情况下需要持久化?方案是什么?有什么优缺点?如何优雅的选择持久化方案Redis项目中应用、reids的高级命令mget、scan?为什么有scan这条命令,如何理解redis的游标?单机版redis的安装以及redis生产环境启动方案redis持久化机对于生产环境中的灾难恢复的意义redis主从架构下如何才能做到99.99%的高可用性在项目中重新搭建一套主从复制+高可用+多master的redis cluster集群redis在实践中的一些常见问题以及优化思路(包含linux内核参数优化)redis的RDB持久化配置以及数据恢复实验redis的RDB和AOF两种持久化机制的优劣势对比

分布式数据存储(mycat)

分库分表场景介绍Mycat原理解析分库分表实战

分布式Rabbitmq

RabbitMQ环境安装&RabbitMQ整体架构与消息流转&交换机详解消息如何保障 100% 的投递成功方案&企业消息幂等性概念及业界主流解决方案Confirm确认消息详解&Return返回消息详解&消费端的限流策略&消费端ACK与重回队列机制SpringAMQP用户管理组件-RabbitAdmin应用&SpringAMQP消息模板组件-RabbitTemplate实战SpringAMQP消息容器-SimpleMessageListenerContainer详解&SpringAMQP消息适配器-MessageListenerAdapter使用RabbitMQ与SpringBoot2.0整合实战&RabbitMQ与Spring Cloud Stream整合实战RabbitMQ集群架构模式&RabbitMQ集群镜像队列构建实现可靠性存储&RabbitMQ集群整合负载均衡基础组件HaProxy项目实战大型互联网电商项目面试题详解,offer选择简历技术优化、项目优化面试问题剖析职业生涯规划总结

不管是学什么技术,最终都需要你进行归纳、整理,才能把所学的东西变为自己的。工作为什么要写日志,平时学习为什么要写博客,其实就是在构建自己的知识体系。在学习的过程中多做笔记,多做总结,习惯一旦形成,久而久之,便会印在你的脑海里,你下次再被问到这一问题时,你就可以用自己之前总结过的内容来回答。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
评论列表 (暂无评论,98人围观)

还没有评论,来说两句吧...