一、什么是java?
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等
二、java有哪些分类?
java 基础知识: java数据类型、流程控制(if,while,for等)、面向对象基础(类、接口、抽象类、访问修饰符、final关键字、static关键字等)、集合(Map、List、Set、Collections工具类)、java基础类库(String,Object ,System等)、java8。
高级知识: 泛型、java反射、内部类、枚举、注解、异常、IO流、java虚拟机、java并发编程、网络编程(BIO/NIO/AIO)等。
框架知识:Spring/SpringMVC/Mybatis/springBoot
项目管理工具:Git/SVN--Maven/Gradle/Linux/Jenkins
java 设计模式,设计原则(开闭原则、依赖倒置原则、单一职责原则、接口隔离原则、迪米特法则、里氏替换原则、合成复用原则)、创建型(简单工厂、工厂方法、抽象工厂、建造者模式、单例模式、原型模式)、行为型(策略模式、模板方法模式、迭代器模式、委派模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式)、结构型模式(适配器模式、门面模式、装饰器模式、代理模式、享元模式、组合模式、桥接模式)
三、Java工程师需要具备哪些技能吗?
1、一种主流后端语言编程经验:Java,或Scala,或Node.js,或Python
2、精通主流Web应用开发框架(Spring,Play!,Express,Django,等等);熟悉SOA和Web Services(REST,SOAP)系统框架;熟悉主流应用服务器(Tomcat,JBoss,Apache,Nginx,等)
3、精通数据库设计和性能优化;熟悉主流RDBMS和NoSQL数据库(MySQL,MongoDB,Memcached,Redis等),以及数据库编程(SQL, JDBC, iBatis,OpenJPA, 等)
4、熟悉常用工程工具:Jenkins, Maven/Sbt/Npm/Ant,Git/SVN,Eclipse/IntelliJ,等等
5、熟悉设计模式,熟练掌握面向对象编程和事件驱动编程风格
6、有热情,酷爱技术,有良好的计划、沟通、组织协调能力、语言表达能力;较强的逻辑分析能力和应变能力;良好的团队合作精神。