关于C++模板参数省略的问题

麻烦各位大神看一下这道题,我看不懂这道题的解析,C++ Primer Plus里面也没有讲相关的内容,我需要一些例子来理解这道题,谢谢。
图片说明

图片说明

c++

1个回答

比如说
#include <iostream>
using namespace std;

template <typename T>
void foo(T a)
{
cout << a << endl;
}

int main()
{
   foo<int>(123);
   return 0;
}
因为可以根据123推断出来T是int
所以也可以写
foo<>(123);
又因为<>是空的,连<>都可以不要
foo(123);
就可以了。
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于C++模板参数省略的问题
麻烦各位大神看一下这道题,我看不懂这道题的解析,C++ Primer Plus里面也没有讲相关的内容,我需要一些例子来理解这道题,谢谢。 ![图片说明](https://img-ask.csdn.net/upload/201906/27/1561612996_697588.jpg) ![图片说明](https://img-ask.csdn.net/upload/201906/27/1561613033_497789.jpg)
模板实例化的时候,尖括号可以省略吗?
1.为什么有些地方我看见省略了,有些地方不能省略 2.函数模板的非类型参数可以当做形参,传入函数吗,这样实例的时候直接在参数列表中赋值 如图 ![图片说明](https://img-ask.csdn.net/upload/201604/13/1460484193_164229.jpg) ![图片说明](https://img-ask.csdn.net/upload/201604/13/1460484203_960827.jpg)
Xcode省略block的参数名
有一个block property: @property (nonatomic, copy) void (^indexChangeBlock)(NSInteger index); 我为这个property设置值的时候,xcode自动设置就会省略参数名,然后成为这样: [self.segmentedControl3 setIndexChangeBlock:^(NSInteger) { code }]; 然后Xcode就会显示一个 **Parameter name omitted** 错误,我知道可以通过手动添加参数名来解决这个问题: [self.segmentedControl3 setIndexChangeBlock:^(NSInteger index) { code }] 但是我想问有没有方法让Xcode自动添加参数名,也就是不让系统删除参数名。请前辈赐教,谢谢。
这是一个关于链表结点的指针问题
``` #include<iostream> #include<conio.h> #include<string> #include<iostream> #include<conio.h> using namespace std; #define OK 1; typedef int Status; typedef struct { string name; float price; }Book; typedef Book ElemType; typedef struct LNode { ElemType Elem; LNode *Next; }LNode,List; Status InitList(LNode *L) { L=new LNode(); return OK; } int main() { LNode *LL; InitList(LL); getch(); return 0; } ``` 上面是我的测试代码。我想测试下链表结点,结构体指针用法。发现了一个很奇怪的现象 ![图片说明](https://img-ask.csdn.net/upload/202001/02/1577950414_463276.png) InitList中的形参是结构体指针L是指针类型,也就是说L是地址。但是我调试的时候,发现L变成了值。那一堆省略号可以体现出来。这是第一个疑问。 L是子函数里的参数,调试退出子函数后,L应该消失才对,不应该有值,但调试结果显示出一堆省略号,证明它还是存在的。这是第二个疑问,求解
初学渣.关于C语言for循环的省略问题
int i=-2; for(;i++;); printf("%d\n",i) (节选,如上所示) 最后输出的结果是多少,为什么? 新人,求不喷...
spring cloud gateway 自定义负载均衡getLoadBalancer()获取的服务总是同一个服务
根据业务需求,我需要自定义负载均衡规则,获取相应的服务,然后返回; 代码如下: 继承LoadBalancerClientFilter 重写choose方法; ``` protected ServiceInstance choose(ServerWebExchange exchange) { //获取用户票据信息 String ticket= AuthTicketUtils.getBxAuthTicket(exchange.getRequest()); logger.info("=====获取用户登录票据信息:{}============",ticket); if(!StringUtils.isEmpty(ticket)){ //根据ticket获取用户信息 if (this.loadBalancer instanceof RibbonLoadBalancerClient) { RibbonLoadBalancerClient client = (RibbonLoadBalancerClient) this.loadBalancer; String userId=getUserNo(ticket); logger.info("========当前操作用户信息为:{}=============",userId); if(null == userId){ return super.choose(exchange); } //获取服务名称 String serviceId = ((URI) exchange.getAttribute(GATEWAY_REQUEST_URL_ATTR)).getHost(); logger.info("===========当前选择服务名称为:{}===========",serviceId); //这里使用服务ID 和 用户ID 做为选择服务实例的key GrayscaleProperties grayscaleProperties=new GrayscaleProperties(); grayscaleProperties.setServerId(serviceId); grayscaleProperties.setUserId(userId); return client.choose(serviceId,grayscaleProperties); } } return super.choose(exchange); } ``` 当调用client.choose(String name,Object hint)方法时,将会调用我的规则,我的自定义规则代码如下:首先继承了AbstractLoadBalancerRule类,重写choose方法 ``` public Server choose(Object o) { logger.info("=======服务选择:{}=======",o); //获取当前请求的所有服务 logger.info("============LoadBalancer:{}==============",this.getLoadBalancer().toString()); List<Server> servers = this.getLoadBalancer().getReachableServers(); //TODO 逻辑代码省略 return null; } ``` 当调用this.getLoadBalancer()时,返回的总是上一次正确的服务,举例来说我有A、B、C三个服务,当第一次请求A服务的时候正常返回,第二次B服务请求的时候,this.getLoadBalancer()返回的对象信息是A服务的信息; 附图: ![图片说明](https://img-ask.csdn.net/upload/202001/08/1578459146_182033.png) ![图片说明](https://img-ask.csdn.net/upload/202001/08/1578459161_886142.png)
关于JAVA中使用Runtime.getRuntime().exec() 调用Linux的mutt发送邮件
最近需要做一个在JAVA中监测目录下是否有新文件产生,如果有的话使用Linux指令发送邮件, 使用mutt发送邮件的指令如下 echo "14:07" | mutt -a /home/pi/test.jpg -- 1111111@qq.com 意思为发送内容为“14:07”,并且添加附件test.jpg发送到1111111@qq.com这个邮箱。 经过测试,这句话单独在Linux系统下运行没有问题,也成功发送接收到。 但是调用Runtime.getRuntime().exec() 的时候不行 经查找是因为使用了管道的原因,需要添加/bin/sh -c 作为脚本去执行,但是却无法成功发送。 系统反馈无法发送此邮件。 将上述的代码作为sh脚本写入运行,提示子进程已经结束,邮件发送失败。猜想是由于mutt发送需要时间较长,sh已经运行结束,导致进程提前结束无法发送成功 但是如果使用sleep的话,会造成休眠,在脚本后面加上wait也没用。。。。 再次提出问题,如何在java代码中调用Linux指令的mutt发送邮件(有管道) java代码中运行Linux指令代码如下: public static void executeLinuxCmd(String[] cmd) { InputStream in = null; String result = null; try { Process pro = Runtime.getRuntime().exec(cmd); pro.waitFor(); in = pro.getInputStream(); BufferedReader read = new BufferedReader(new InputStreamReader(in)); while((result = read.readLine())!=null) { System.out.println(result); } } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } 调用executeLinuxCmd的代码如下(监测部分省略,cmd指令输出过,确定正确) String path2=path + "/" + event.context() ; String cmd="echo "+"\"hello hello\""+"|mutt -a "+path2+" -- 1111111@qq.com"; String[] str={"/bin/sh","-c",cmd}; executeLinuxCmd(str); System.out.println(cmd); 监测成功创建文件,并且发送,然后显示 无法发送此信件。 echo "hello hello"|mutt -a /home/pi/this_is_test/wenjian -- 1111111@qq.com 折腾了2天了,求大佬指导一下,感激不尽
@RequestMapping(value = "/insertUser")为什么前面value可以省略,写出@RequestMapping("/insertUser")?
@RequestMapping(value = "/insertUser")为什么前面value可以省略? 写出@RequestMapping("/insertUser")? 怎么省略?
Uninitialized variable: i
使用代码工具检查的时候发现编译提示逻辑错误变量未初始化:Uninitialized variable: i ``` int i, comNum; TExtComDevice* ptExtComDev; Bool TestDone = TRUE; Int32 retVal; #if defined(_IPC6XX_) || defined(_IPC6X5_GN_) comNum = MAX_SERIAL_NUM; #elif defined(_CHEETAH1_) comNum = 1; #else comNum = 0; #endif for(i=0; i<comNum; i++) { ptExtComDev = &gtExtComDevice[i]; if(100 != ptExtComDev->eProtocolType) { TestDone = FALSE; KOSA_printf("SerialPost %d is not OK!\n", i); break; } } if(i == comNum)/*代码出错一行*/ { /*内部代码省略*/ } ``` 变量i虽然开始只是声明int i,但是后面for()循环结束后i应该已经被赋值,不应该是未初始话状态,希望大家帮忙给个答案
java中这个AdapterView<?> arg;泛型作为方法参数的时候<?>可以省略吗?
这个AdapterView<?> arg;泛型作为方法参数的时候<?>可以省略吗? <?>感觉可有可无啊,
java中方法参数和泛型参数有什么区别
java中方法参数和泛型参数有什么区别 方法是可以省略参数数据类型的 泛型可以省略吗
C#如何排查这条if语句运行时间过长的问题?
大家好!为了缩短运算时间,我通过Stopwatch类记录了几个关键步骤的运行时间,代码是这样的: 首先,以下3个变量是本次提问会用到的: ``` //定义的部分 Dictionary<string, node> AllNodes = new Dictionary<string, node>(); Dictionary<string, node> CloseList = new Dictionary<string, node>(); string nextCheckingId; ``` 然后,以下是代码V1 ``` while(条件省略) { //省略无关代码 watch1.Start();//watch1是1个Stopwatch的对象,下同 if (!AllNodes.ContainsKey(nextCheckingId) || CloseList.ContainsKey(nextCheckingId)) { continue; } watch1.Stop(); //省略无关代码 } //运行后输出watch1,经多次测算: // watch1=73ms ``` 为了缩短这一段的时延,想看看哪一句耗时多,于是改成了以下代码V2 ``` while(条件省略) { //省略无关代码 watch1.Start(); watch1_1.Start(); bool b1 = AllNodes.ContainsKey(nextCheckingId); watch1_1.Stop(); watch1_2.Start(); bool b2 = CloseList.ContainsKey(nextCheckingId); watch1_2.Stop(); watch1_3.Start(); if (!b1 || b2) continue; watch1_3.Stop(); watch1.Stop(); //省略无关代码 } //运行后输出以上几个watch,经多次测算: // watch1=80ms // watch1_1=5ms // watch1_2=4ms // watch1_3=71ms ``` 我想请问,为何if(!b1 || b2)这句会占用这么多的时间?是否我的测算方法有误?怎样才能尽量缩短这一段的运行时长呢?感谢~ (C币余额不足,无法发布悬赏了,抱歉)
java中什么情况下方法的参数可以省略数据类型而直接写数据?
比如put(int 3); 什么情况下可以写put(3); 这里的put方法也没有方法体,什么情况下可以省略方法体呢
Java 填补 省略号 麻烦
![图片说明](https://img-ask.csdn.net/upload/201911/10/1573364410_860982.png)
QT使用std::unordered_map时报错:the code model could not parse an included file, which might lead to incorrect code completion and highlighting
编译时报大量的这种错误:<br><br> ![图片说明](https://img-ask.csdn.net/upload/201912/27/1577439228_688736.png) <br> <br> 已把无关的代码注释省略了: <br> <br> ``` #ifndef APROCHDATAMODELREGISTRY_H #define APROCHDATAMODELREGISTRY_H // #include ... #include <memory> #include <utility> #include <functional> #include <QString> // 只要包含这个文件,就会报错,但不包含就无法使用unordered_map #include <unordered_map> APROCH_NAMESPACE_BEGIN class APROCH_EXPORT AprochDataModelRegistry { public: using RegisteredModelsCategoryMap = std::unordered_map<QString, QString>; // ... private: RegisteredModelsCategoryMap mRegisteredModelsCategory; // ... }; APROCH_NAMESPACE_END #endif // APROCHDATAMODELREGISTRY_H ```
python flask_sqlalchemy如何维护一个全局查询结果
在我的webapp中,每个页面都要用到同一个一般不会变化的查询结果,为避免每次访问都需查询一次这个变量,我在views.py中弄了一个全局变量ADMIN_NOTES ``` ADMIN_NOTES=Note.query.filter_by(author_id=ADMIN.id).all() ``` 而当ADMIN_NOTE会发生变化时,如此时管理员又写入了一个新note,则重新查询数据库获得最新的ADMIN_NOTE的值,尽量减少访问数据库的次数 我本想这么实现的(中间部分不重要的代码省略了) ``` #全局变量 ADMIN_NOTES=Note.query.filter_by(author_id=ADMIN.id).all() #写入新note的函数1 @app.route('/new_note',methods=['GET','POST']) def new_note(): global ADMIN_NOTES data=json.loads(request.get_data()) note=Note(title=data['note_title'],upload_time=datetime.utcnow()) db.session.add(note) db.session.commit() #若是管理员写入新note,则重新查询并修改全局变量ADMIN_NOTES if note.author.nickname=='ADMIN': ADMIN_NOTES=Note.query.filter_by(author_id=ADMIN.id).all() KAFENUT_NOTES[0].author.nickname #能正确访问ADMIN_NOTES print(len(ADMIN_NOTES)) #正确访问ADMIN_NOTES resp['success']=True resp['text']='Upload successfully!' resp['url']=url_for('note',note_id=note.id,nickname=note.author.nickname) #浏览器接受到服务器的json之后跳转到,resp[url]所指示的页面,即下面这个页面 return json.dumps(resp) #返回note页面的函数2 @app.route('/<nickname>/note/<note_id>',methods=['GET','POST']) def note(nickname,note_id): global ADMIN_NOTES user=User.query.filter_by(nickname=nickname).first() note=Note.query.filter_by(id=note_id).first() if request.method=='GET': note.view_num+=1 db.session.add(note) db.session.commit() for nnote in ADMIN_NOTES: print(nnote.author.nickname) #出错位置 return render_template('note_page.html',note=note,admin_notes=ADMIN_NOTES) ``` 然而问题也正出在这里,当管理员写入新的note之后(即ADMIN_NOTES这个全局变量发生变化之后)重新查询的语句虽然在函数1中执行了(print出的note数量是写入新note之后的数量,)。但当用户根据函数1返回的json跳转到函数2的时候,函数2内就无法正确访问ADMIN_NOTES,准确来说无法访问nnote.author.nickname,其中author是note表用author_id这个外键连接到user表得到的,错误栈如下 ``` Traceback (most recent call last): File "C:\Users\MSI-1\Anaconda3\lib\site-packages\flask\app.py", line 1997, in __call__ return self.wsgi_app(environ, start_response) File "C:\Users\MSI-1\Anaconda3\lib\site-packages\flask\app.py", line 1985, in wsgi_app response = self.handle_exception(e) File "C:\Users\MSI-1\Anaconda3\lib\site-packages\flask\app.py", line 1540, in handle_exception reraise(exc_type, exc_value, tb) File "C:\Users\MSI-1\Anaconda3\lib\site-packages\flask\_compat.py", line 33, in reraise raise value File "C:\Users\MSI-1\Anaconda3\lib\site-packages\flask\app.py", line 1982, in wsgi_app response = self.full_dispatch_request() File "C:\Users\MSI-1\Anaconda3\lib\site-packages\flask\app.py", line 1614, in full_dispatch_request rv = self.handle_user_exception(e) File "C:\Users\MSI-1\Anaconda3\lib\site-packages\flask\app.py", line 1517, in handle_user_exception reraise(exc_type, exc_value, tb) File "C:\Users\MSI-1\Anaconda3\lib\site-packages\flask\_compat.py", line 33, in reraise raise value File "C:\Users\MSI-1\Anaconda3\lib\site-packages\flask\app.py", line 1612, in full_dispatch_request rv = self.dispatch_request() File "C:\Users\MSI-1\Anaconda3\lib\site-packages\flask\app.py", line 1598, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "E:\vs\python\AwesomeWebApp\AwesomeWebApp\app\views.py", line 232, in note print(nnote.author.nickname) #let author.id be preloaded File "C:\Users\MSI-1\Anaconda3\lib\site-packages\sqlalchemy\orm\attributes.py", line 282, in __get__ return self.impl.get(instance_state(instance), dict_) File "C:\Users\MSI-1\Anaconda3\lib\site-packages\sqlalchemy\orm\attributes.py", line 710, in get value = self.callable_(state, passive) File "C:\Users\MSI-1\Anaconda3\lib\site-packages\sqlalchemy\orm\strategies.py", line 688, in _load_for_state % (orm_util.state_str(state), self.key) sqlalchemy.orm.exc.DetachedInstanceError: Parent instance <Note at 0x26de5f41198> is not bound to a Session; lazy load operation of attribute 'author' cannot proceed (Background on this error at: http://sqlalche.me/e/bhk3) ``` sqlalchemy报出detached错误 sqlalchemy.orm.exc.DetachedInstanceError: Parent instance <Note at 0x26de5f41198> is not bound to a Session; lazy load operation of attribute 'author' cannot proceed (Background on this error at: http://sqlalche.me/e/bhk3) 这该怎么解决?或者还有什么其他方法实现:在我的webapp中,每个页面都要用到同一个一般不会变化的查询结果,为避免每次访问都需查询一次这个一般不会变量,我在views.py中弄了一个全局变量ADMIN_NOTES。而当ADMIN_NOTE会发生变化时,如此时管理员又写入了一个新note,则重新查询数据库获得最新的ADMIN_NOTE的值,尽量减少访问数据库的次数
C语言怎么区分全局变量声明和全局变量定义
在学习《C程序设计》第五版唐浩强著,有几个问题: 1.书上讲声明可以省略类型说明符,比如extern int a可以写成extern a,但是我到VS2005运行却有错误,可能他用的是VC++6.0吧,是这个原因吗? 2.怎么区分全局变量声明和全局变量定义,定义肯定是在所有函数外面,但声明是可以在里面也可以在外面的,而在形式上,定义是int a,但是我看冯艳茹主编《C语言程序设计》国防科技大学出版社2017年6月第一版,这本书讲也可以加extern,extern int a等效于int a。而对于声明,形式也是extern int a(当然也可以写成extern a),也就是说定义和声明形式可能在形式上会是一样的,即都可以写成extern int a,那么在位置(即在函数里面还是外面)上定义声明都可以在外面,形式也可能一样,那么怎么区分,例如定义声明都在函数之外,形式都是extern int a,这符合上述规则,那怎么区分,有没有大神能给我讲清这里的原理? 万分感谢!
vue-router在hash模式下打包部署后通过url访问报404
希望实现的效果: http://localhost/ (访问到系统首页) http://localhost/share (直接访问到一个独立的单页面) 使用vue-router的vue-cli3的项目,使用HbuilderX开发,开发环境下已经实现我想要的效果。 下面是部分代码 ``` router配置文件router.js ...引用部分省略.. //路由定义 const routes = [ { path: '/share', name: 'share', component: share }, { path: '/web', name: 'web', component: iContainer, children: [..] }, { path: '/mobile', name: 'mobile', component: mHome, children: [..] } ] const router = new VueRouter({ mode: 'hash', routes }) export default router ``` 根据url后缀决定是进入独立的share页面还是进入普通首页 ``` app.vue <template> <div id="app"> <router-view></router-view> </div> </template> <script> ...引用部分省略.. export default { name: 'app', data: function() { return { pathName: window.document.location.pathname } }, created() { if (this.pathName == "/share") { this.$router.push('/share') } else { /** 判断是否手机端,进入对应入口 **/ if (this.$utils._isMobile()) { this.$router.push('/mobile') } else { this.$router.push('/web') } } } methods: {} } </script> ``` 打包后将dist文件夹内容拷贝到tomcat,使用tomcat启动,首页能够正常访问。但是只要使用share访问就会报404。请问是什么原因导致?为什么在开发环境下正常,但是打包后部署就404?该如何解决达到我想要的效果? 网上搜了一天了,查到的都是说history下直接输入url会404,为什么我hash模式下也是404? ============================================ 自己后面又仔细想了下,发现是生成链接那里有问题。 首先按照猜想测试了下http://localhost/#/share,果然就能加载页面,所以就修改了生成链接部分的代码,让它在地址后面上下文前面加上#就解决问题了。应该是这样的话就能保证访问的页面是/这个我们的唯一入口。然后就能进入我们想要的路由了!
Spring Security为什么LogoutHandler获取不到authentication
我想实现用户退出登录的时候进行日志记录(操作数据库中的登出记录表),然后自定义退出登录logout,自己实现了一个LogoutHandler,但LogoutHandler中logout函数的authentication始终获取不到,不知道为什么 ``` @Component public class MyLogoutHandler implements LogoutHandler { String username; @Override public void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication) { System.out.println("进入MyLogoutHandler"); if(authentication != null) { username = SecurityUtils.getUsername(authentication); System.out.println("获得当前登录用户名:"+username); //...操作数据库的代码省略 } else { System.out.println("authentication is null"); return; } } } ``` 下面是WebSecurityConfigurerAdapter中的部分代码 ``` @Override protected void configure(HttpSecurity http) throws Exception { // 禁用 csrf, 由于使用的是JWT,我们这里不需要csrf http.cors().and().csrf().disable() .authorizeRequests() // 跨域预检请求 .antMatchers(HttpMethod.OPTIONS, "/**").permitAll() // web jars .antMatchers("/webjars/**").permitAll() // 查看SQL监控(druid) .antMatchers("/druid/**").permitAll() // 首页和登录页面 .antMatchers("/").permitAll() .antMatchers("/login").permitAll() // swagger .antMatchers("/swagger-ui.html").permitAll() .antMatchers("/doc.html").permitAll() .antMatchers("/swagger-resources/**").permitAll() .antMatchers("/v2/api-docs").permitAll() .antMatchers("/webjars/springfox-swagger-ui/**").permitAll() // 验证码 .antMatchers("/captcha.jpg**").permitAll() // 服务监控 .antMatchers("/actuator/**").permitAll() // 其他所有请求需要身份认证 .anyRequest().authenticated(); http.headers().frameOptions().disable(); // 退出登录处理器 http.logout().logoutUrl("/logout").addLogoutHandler(myLogoutHandler); // token验证过滤器 http.addFilterBefore(new JwtAuthenticationFilter(authenticationManager()), UsernamePasswordAuthenticationFilter.class); } ``` 点击登录按钮之后,转跳到/logout 但控制台一直输出authentication is null,后来我又换成了继承LogoutSuccessHandler,依旧是获取不了当前用户authentication,但我在其他非退出登录的操作中获取authentication是正常的 也尝试了添加.antMatchers("/logout").permitAll() 另外我想问一下大家,还有什么比较好的办法在用户退出登录的时候记录日志,最好能做到用户主动点击退出登录和session自动失效都能记录日志
java方法参数什么时候可以省略数据类型声明
有时候我看到方法参数是一个匿名对象,那么匿名对象属于什么数据类型,是String类型吗,为什么没有数据类型的声明呢
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时想着能进去就不错了,管他哪个岗呢,就同意了面试...
开源一个功能完整的SpringBoot项目框架
福利来了,给大家带来一个福利。 最近想了解一下有关Spring Boot的开源项目,看了很多开源的框架,大多是一些demo或者是一个未成形的项目,基本功能都不完整,尤其是用户权限和菜单方面几乎没有完整的。 想到我之前做的框架,里面通用模块有:用户模块,权限模块,菜单模块,功能模块也齐全了,每一个功能都是完整的。 打算把这个框架分享出来,供大家使用和学习。 为什么用框架? 框架可以学习整体...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
Spring Boot2 系列教程(十七)SpringBoot 整合 Swagger2
前后端分离后,维护接口文档基本上是必不可少的工作。 一个理想的状态是设计好后,接口文档发给前端和后端,大伙按照既定的规则各自开发,开发好了对接上了就可以上线了。当然这是一种非常理想的状态,实际开发中却很少遇到这样的情况,接口总是在不断的变化之中,有变化就要去维护,做过的小伙伴都知道这件事有多么头大!还好,有一些工具可以减轻我们的工作量,Swagger2 就是其中之一,至于其他类似功能但是却收费的软...
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
天天学JAVA-JAVA基础(6)
如果觉得我写的还行,请关注我的博客并且点个赞哟。本文主要介绍JAVA 中最常使用字符串常量String相关知识。 1.String简介 2.创建字符串对象两种方式的区别 3.String常用的方法 4.String的不可变性 5.一道阿里面试题,你会做吗? 1.String简介 1.1String源码 首先看一段String源码,String主要实现了Serializable、Compar...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
经典算法(5)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
2020 网络课 智慧树自动刷课代码,自动跳转,自动答题并关闭弹窗,自动1.5倍速静音
刷课一时爽,一直刷课一直爽! 终于让我找到了这个黑客代码了,教程开始: 只限谷歌浏览器和火狐浏览器使用,如果第一次失败,请重新试一下次 将下面代码复制后,进入浏览器按F12键,先点击console 然后Ctrl+v复制代码 最后按回车键即可 var ti = $("body"); var video = $(".catalogue_ul1 li[id*=video-]"); var i = 1;...
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
一 说明 如果是初学者,建议去网上寻找安装Mysql的文章安装,以及使用navicat连接数据库,以后的示例基本是使用mysql数据库管理系统; 二 准备前提 需要建立一张学生表,列分别是id,名称,年龄,学生信息;本示例中文章篇幅原因SQL注释略; 建表语句: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // dosho
致 Python 初学者
文章目录1. 前言2. 明确学习目标,不急于求成,不好高骛远3. 在开始学习 Python 之前,你需要做一些准备2.1 Python 的各种发行版2.2 安装 Python2.3 选择一款趁手的开发工具3. 习惯使用IDLE,这是学习python最好的方式4. 严格遵从编码规范5. 代码的运行、调试5. 模块管理5.1 同时安装了py2/py35.2 使用Anaconda,或者通过IDE来安装模
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
羞,Java 字符串拼接竟然有这么多姿势
二哥,我今年大二,看你分享的《阿里巴巴 Java 开发手册》上有一段内容说:“循环体内,拼接字符串最好使用 StringBuilder 的 append 方法,而不是 + 号操作符。”到底为什么啊,我平常一直就用的‘+’号操作符啊!二哥有空的时候能否写一篇文章分析一下呢? 就在昨天,一位叫小菜的读者微信我说了上面这段话。 我当时看到这条微信的第一感觉是:小菜你也太菜了吧,这都不知道为啥啊!我估...
写1行代码影响1000000000人,这是个什么项目?
不带钱不带卡,只带手机出门就能畅行无阻,这已是生活的常态。益普索发布的《2019第一季度第三方移动支付用户研究》报告显示,移动支付在手机网民中的渗透率高达95.1%,截至今年1月,支付宝全球用户数已经突破10亿。你或许每天都会打开支付宝,付款购物、领取权益、享受服务……但你或许不知道的是,在这个方便、快捷、智能化的APP背后,有一群年轻的技术人,用智慧和创新让它每天都变得更“聪明”一点。 ...
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI 算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC
一点一滴记录 Java 8 stream 的使用
日常用到,一点一滴记录,不断丰富,知识积累,塑造自身价值。欢迎收藏 String 转 List String str = 1,2,3,4; List&lt;Long&gt; lists = Arrays.stream(str.split(",")).map(s -&gt; Long.parseLong(s.trim())).collect(Collectors.toList()); Lis...
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车? 某胡同口的煎饼摊一年能卖出多少个煎饼? 深圳有多少个产品经理? 一辆公交车里能装下多少个乒乓球? 一
相关热词 如何提升c#开发能力 矩阵乘法c# c#调用谷歌浏览器 c# 去空格去转义符 c#用户登录窗体代码 c# 流 c# linux 可视化 c# mvc 返回图片 c# 像素空间 c# 日期 最后一天
立即提问